diff --git a/PROTOCOL.md b/PROTOCOL.md index 2d44c2136b..695a8ec631 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -7,9 +7,9 @@ Pokémon Showdown is implemented in SockJS. SockJS is a compatibility layer over raw WebSocket, so you can actually connect to Pokémon Showdown directly using WebSocket: - ws://sim.smogon.com:8000/showdown/websocket - or wss://sim3.psim.us/showdown/websocket + or + ws://sim3.psim.us:8000/showdown/websocket Client implementations you might want to look at for reference include: diff --git a/config/formats.ts b/config/formats.ts index b2fb884b51..c50c53eeae 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -238,16 +238,10 @@ export const Formats: import('../sim/dex-formats').FormatList = [ mod: 'gen9', gameType: 'doubles', + searchShow: false, bestOfDefault: true, ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Open Team Sheets'], }, - { - name: "[Gen 9] VGC 2026 Reg F (Bo3)", - - mod: 'gen9', - gameType: 'doubles', - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Force Open Team Sheets', 'Best of = 3'], - }, { name: "[Gen 9] VGC 2026 Reg I", // Change back to 2025 after removing the ladder mod: 'gen9', @@ -274,7 +268,50 @@ export const Formats: import('../sim/dex-formats').FormatList = [ ruleset: ['Team Preview', 'Cancel Mod', 'Max Team Size = 24', 'Max Move Count = 24', 'Max Level = 9999', 'Default Level = 100'], }, - // S/V Doubles + // Champions + /////////////////////////////////////////////////////////////////// + + { + section: "Champions", + }, + { + name: "[Gen 9 Champions] OU", + mod: 'champions', + ruleset: ['Standard'], + banlist: ['AG', 'Uber', 'Moody', 'Baton Pass', 'Last Respects', 'Shed Tail'], + }, + { + name: "[Gen 9 Champions] BSS Reg M-A", + mod: 'champions', + bestOfDefault: true, + ruleset: ['Flat Rules', 'VGC Timer'], + }, + { + name: "[Gen 9 Champions] VGC 2026 Reg M-A", + mod: 'champions', + gameType: 'doubles', + bestOfDefault: true, + ruleset: ['Flat Rules', 'VGC Timer', 'Open Team Sheets'], + }, + { + name: "[Gen 9 Champions] VGC 2026 Reg M-A (Bo3)", + mod: 'champions', + gameType: 'doubles', + ruleset: ['Flat Rules', 'VGC Timer', 'Force Open Team Sheets', 'Best of = 3'], + }, + { + name: "[Gen 9 Champions] Custom Game", + mod: 'champions', + searchShow: false, + debug: true, + battle: { trunc: Math.trunc }, + ruleset: ['Team Preview', 'Cancel Mod', 'Max Team Size = 24', 'Max Move Count = 24', 'Max Level = 9999', 'Default Level = 50'], + onBegin() { + this.reportPercentages = true; + }, + }, + + // Unofficial Metagames /////////////////////////////////////////////////////////////////// { @@ -313,6 +350,21 @@ export const Formats: import('../sim/dex-formats').FormatList = [ 'Zekrom', 'Commander', 'Moody', 'Focus Sash', 'King\'s Rock', 'Razor Fang', 'Ally Switch', 'Final Gambit', 'Perish Song', 'Swagger', ], }, + { + name: "[Gen 9] 4v4 Doubles UU", + desc: "VGC rules, but only Pokémon that get less than 4.52% usage on the VGC ladder are legal, as well as a few other guidelines.", + mod: 'gen9', + gameType: 'doubles', + searchShow: false, + bestOfDefault: true, + ruleset: ['[Gen 9] VGC 2026 Reg F', 'Evasion Abilities Clause', 'Evasion Moves Clause', 'OHKO Clause'], + banlist: [ + 'Amoonguss', 'Annihilape', 'Arcanine-Hisui', 'Basculegion-M', 'Chi-Yu', 'Chien-Pao', 'Cresselia', 'Dondozo', 'Dragonite', 'Enamorus-Incarnate', 'Farigiraf', 'Flutter Mane', + 'Gholdengo', 'Gouging Fire', 'Incineroar', 'Indeedee-F', 'Iron Crown', 'Landorus-Incarnate', 'Landorus-Therian', 'Ogerpon-Cornerstone', 'Ogerpon-Hearthflame', 'Ogerpon-Wellspring', + 'Porygon2', 'Raging Bolt', 'Regidrago', 'Rillaboom', 'Roaring Moon', 'Sneasler', 'Ting-Lu', 'Torkoal', 'Tornadus-Incarnate', 'Ursaluna-Base', 'Urshifu-Single-Strike', + 'Urshifu-Rapid-Strike', 'Whimsicott', 'Commander', 'Bright Powder', 'King\'s Rock', 'Razor Fang', + ], + }, { name: "[Gen 9] Anything Goes", mod: 'gen9', @@ -330,7 +382,7 @@ export const Formats: import('../sim/dex-formats').FormatList = [ gameType: 'freeforall', rated: false, tournamentShow: false, - ruleset: ['Standard', 'Sleep Moves Clause', '!Sleep Clause Mod', '!Evasion Items Clause'], + ruleset: ['Standard', 'Sleep Moves Clause', '!Sleep Clause Mod', '!Evasion Items Clause', '!Species Clause'], banlist: [ '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', @@ -347,8 +399,8 @@ export const Formats: import('../sim/dex-formats').FormatList = [ searchShow: false, ruleset: ['[Gen 9] LC'], banlist: [ - 'Chinchou', 'Diglett-Alola', 'Drifloon', 'Elekid', 'Foongus', 'Glimmet', 'Gothita', 'Grookey', 'Growlithe-Hisui', 'Koffing', 'Mareanie', 'Mienfoo', 'Mudbray', - 'Pawniard', 'Sandshrew-Alola', 'Shellos', 'Snover', 'Stunky', 'Timburr', 'Tinkatink', 'Toedscool', 'Trapinch', 'Vullaby', 'Wingull', 'Zorua-Hisui', + 'Chinchou', 'Diglett-Alola', 'Drifloon', 'Elekid', 'Foongus', 'Glimmet', 'Gothita', 'Grookey', 'Growlithe-Hisui', 'Impidimp', 'Koffing', 'Mareanie', 'Mienfoo', 'Mudbray', 'Larvesta', + 'Pawniard', 'Sandshrew-Alola', 'Shellos', 'Stunky', 'Tentacool', 'Tinkatink', 'Toedscool', 'Trapinch', 'Vullaby', 'Wingull', 'Zorua-Hisui', // LC UUBL 'Deerling', 'Minccino', 'Light Clay', ], @@ -360,9 +412,9 @@ export const Formats: import('../sim/dex-formats').FormatList = [ searchShow: false, ruleset: ['Standard OMs', 'Not Fully Evolved', 'Sleep Moves Clause', 'Terastal Clause'], banlist: [ - 'Basculin-White-Striped', 'Bisharp', 'Chansey', 'Combusken', 'Dipplin', 'Duraludon', 'Electabuzz', 'Gligar', 'Gurdurr', - 'Haunter', 'Magmar', 'Magneton', 'Misdreavus', 'Porygon2', 'Primeape', 'Qwilfish-Hisui', 'Rhydon', 'Scyther', 'Sneasel', - 'Sneasel-Hisui', 'Ursaring', 'Vigoroth', 'Vulpix-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', 'Baton Pass', + 'Basculin-White-Striped', 'Bisharp', 'Chansey', 'Combusken', 'Dipplin', 'Duraludon', 'Dusclops', 'Electabuzz', 'Gligar', 'Gurdurr', + 'Haunter', 'Magmar', 'Magneton', 'Misdreavus', 'Porygon2', 'Primeape', 'Qwilfish-Hisui', 'Rhydon', 'Scyther', 'Sneasel', 'Sneasel-Hisui', + 'Ursaring', 'Vigoroth', 'Vulpix-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', 'Baton Pass', ], }, { @@ -372,12 +424,12 @@ export const Formats: import('../sim/dex-formats').FormatList = [ ruleset: ['[Gen 9] Ubers'], banlist: [ // Ubers OU - 'Arceus-Normal', 'Arceus-Fairy', 'Arceus-Ghost', 'Arceus-Ground', 'Arceus-Water', 'Calyrex-Ice', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Speed', 'Ditto', + 'Arceus-Normal', 'Arceus-Fairy', 'Arceus-Ghost', 'Arceus-Ground', 'Arceus-Water', 'Blissey', 'Calyrex-Ice', 'Deoxys-Attack', 'Deoxys-Speed', 'Ditto', 'Dondozo', 'Eternatus', 'Flutter Mane', 'Giratina-Origin', 'Glimmora', 'Gliscor', 'Grimmsnarl', 'Groudon', 'Hatterene', 'Ho-Oh', 'Kingambit', 'Koraidon', - 'Kyogre', 'Kyurem-Black', 'Landorus-Therian', 'Lunala', 'Necrozma-Dusk-Mane', 'Rayquaza', 'Ribombee', 'Skeledirge', 'Terapagos', 'Ting-Lu', 'Zacian-Crowned', + 'Kyogre', 'Kyurem-Black', 'Landorus-Therian', 'Lunala', 'Necrozma-Dusk-Mane', 'Ribombee', 'Skeledirge', 'Terapagos', 'Ting-Lu', 'Zacian-Crowned', // Ubers UUBL + Lunala, Arceus-Ghost, Arceus-Water - 'Arceus-Dragon', 'Arceus-Electric', 'Arceus-Fire', 'Arceus-Flying', 'Arceus-Steel', 'Giratina', 'Necrozma-Dawn-Wings', 'Shaymin-Sky', 'Spectrier', 'Zacian', - 'Zekrom', + 'Arceus-Dragon', 'Arceus-Electric', 'Arceus-Fire', 'Arceus-Flying', 'Arceus-Steel', 'Giratina', 'Necrozma-Dawn-Wings', 'Rayquaza', 'Shaymin-Sky', 'Spectrier', + 'Zacian', 'Zekrom', ], }, @@ -435,6 +487,13 @@ export const Formats: import('../sim/dex-formats').FormatList = [ ruleset: ['[Gen 9] NatDex Draft', 'Item Clause = 2', 'Little Cup'], banlist: ['Dragon Rage', 'Sonic Boom'], }, + { + name: "[Gen 9 Champions] Draft", + mod: 'champions', + searchShow: false, + itemClauseDefault: true, + ruleset: ['Standard Draft'], + }, { name: "[Gen 8] Draft", mod: 'gen8', @@ -508,155 +567,228 @@ export const Formats: import('../sim/dex-formats').FormatList = [ }, }, { - name: "[Gen 9] Linked", - desc: `The first two moves in a Pokémon's moveset are used simultaneously.`, - mod: 'linked', - // searchShow: false, - ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Clause', 'Terastal Clause'], - banlist: [ - 'Annihilape', 'Arceus', 'Archaludon', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Normal', 'Dialga', 'Dialga-Origin', - 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Jirachi', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', - 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Meloetta', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', - 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', - 'Urshifu-Rapid-Strike', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Chlorophyll', 'Drought', 'Electric Surge', 'Moody', - 'Sand Rush', 'Serene Grace', 'Shadow Tag', 'Slush Rush', 'Speed Boost', 'Swift Swim', 'Unburden', 'Booster Energy', 'King\'s Rock', 'Quick Claw', 'Razor Fang', - 'Baton Pass', 'Last Respects', 'Shed Tail', - ], - restricted: [ - 'Assurance', 'Baneful Bunker', 'Bounce', 'Burning Bulwark', 'Copycat', 'Detect', 'Dig', 'Dive', 'Encore', 'Endeavor', 'Fly', 'Imprison', 'Nasty Plot', 'Phantom Force', - 'Protect', 'Ruination', 'Shadow Force', 'Shell Smash', 'Silk Trap', 'Spiky Shield', 'Sunny Day', 'Super Fang', 'Swords Dance', 'Taunt', 'Trick Room', - ], - onValidateSet(set) { - const problems = []; - for (const [i, moveid] of set.moves.entries()) { - const move = this.dex.moves.get(moveid); - if ([0, 1].includes(i) && this.ruleTable.isRestricted(`move:${move.id}`)) { - problems.push(`${set.name || set.species}'s move ${move.name} cannot be linked.`); - } - } - return problems; - }, - }, - { - name: "[Gen 9] 350 Cup", - desc: `Pokemon with a BST of 350 or lower have their stats doubled.`, + name: "[Gen 9] Alphabet Cup", + desc: `Allows Pokémon to use any move that shares the same first letter as their name or a previous evolution's name.`, mod: 'gen9', // searchShow: false, - ruleset: ['Standard OMs', 'Sleep Moves Clause', '350 Cup Mod', 'Evasion Clause'], - banlist: ['Calyrex-Shadow', 'Clefairy', 'Flittle', 'Gastly', 'Miraidon', 'Pikachu', 'Rufflet', 'Smeargle', 'Arena Trap', 'Moody', 'Shadow Tag', 'Eviolite', 'Baton Pass'], - }, - { - name: "[Gen 9] Pokebilities AAA", - desc: `Pokémon have all of their released abilities simultaneously, as well as one ability they cannot normally use.`, - mod: 'pokebilities', - // searchShow: false, - ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'AAA Restricted Abilities', 'Terastal Clause', 'Sleep Moves Clause'], + ruleset: ['Standard OMs', 'Alphabet Cup Move Legality', 'Sleep Moves Clause', 'Terastal Clause'], banlist: [ - 'Annihilape', 'Arcanine-Hisui', 'Arceus', 'Archaludon', 'Azumarill', 'Basculegion', 'Basculin', 'Baxcalibur', 'Blaziken', 'Braviary-Hisui', 'Calyrex-Ice', 'Calyrex-Shadow', - 'Ceruledge', 'Chi-Yu', 'Chien-Pao', 'Clefable', 'Cloyster', 'Conkeldurr', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Dragonite', - 'Enamorus-Incarnate', 'Espathra', 'Eternatus', 'Excadrill', 'Flutter Mane', 'Gholdengo', 'Giratina', 'Giratina-Origin', 'Gliscor', 'Gouging Fire', 'Groudon', 'Hawlucha', - 'Ho-Oh', 'Hoopa-Unbound', 'Iron Bundle', 'Iron Valiant', 'Kingambit', 'Keldeo', 'Kleavor', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', - 'Lugia', 'Lunala', 'Magearna', 'Manaphy', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Ogerpon-Hearthflame', 'Palkia', 'Palkia-Origin', - 'Porygon-Z', 'Raging Bolt', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Serperior', 'Shaymin-Sky', 'Smeargle', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna', 'Ursaluna-Bloodmoon', - 'Urshifu-Single-Strike', 'Urshifu-Rapid-Strike', 'Volcarona', 'Walking Wake', 'Weavile', 'Yanmega', 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Zoroark-Hisui', 'Arena Trap', - 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Shadow Tag', - 'Regenerator + Wimp Out', 'Regenerator + Emergency Exit', 'Regenerator > 2', 'Drizzle + Swift Swim', 'Primordial Sea + Swift Swim', 'Drought + Chlorophyll', - 'Desolate Land + Chlorophyll', 'Electric Surge + Surge Surfer', 'Hadron Engine + Surge Surfer', 'Hadron Engine + Quark Drive', 'Electric Surge + Quark Drive', - 'Drought + Protosynthesis', 'Sand Stream + Sand Rush', 'Sand Stream + Sand Veil', 'Snow Warning + Snow Cloak', 'Snow Warning + Slush Rush', - 'Bright Powder', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Revival Blessing', 'Shed Tail', 'Stored Power', + 'Annihilape', 'Arceus', 'Baxcalibur', 'Blaziken', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Normal', 'Dialga', 'Dialga-Origin', + 'Dragapult', 'Dragonite', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Kingambit', 'Koraidon', + 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Mamoswine', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', + 'Necrozma-Dusk-Mane', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Sceptile', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna', + 'Urshifu-Single-Strike', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'Heat Rock', + 'King\'s Rock', 'Light Clay', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', ], restricted: [ - 'Comatose', 'Contrary', 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Magic Bounce', 'Orichalcum Pulse', - 'Parental Bond', 'Poison Heal', 'Pure Power', 'Sand Veil', 'Simple', 'Snow Cloak', 'Speed Boost', 'Stakeout', 'Stench', 'Tinted Lens', 'Toxic Debris', 'Triage', 'Unburden', - 'Water Bubble', 'Wonder Guard', + 'Belly Drum', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Extreme Speed', 'Fillet Away', 'Glacial Lance', 'Glare', 'Lumina Crash', 'Rage Fist', 'Revival Blessing', + 'Sacred Fire', 'Salt Cure', 'Shell Smash', 'Shift Gear', 'Surging Strikes', 'Tail Glow', 'Triple Arrows', ], - onValidateSet(set) { + }, + { + 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('natdexmod') && 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 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}.`]; - } + const check = this.checkSpecies(set, species, species, {}); + if (check) return [check]; + const nonstandard = !this.ruleTable.has('natdexmod') && 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()) { - 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); + pokemon.baseSpecies = pokemon.species; } }, - onBeforeSwitchIn(pokemon) { - if (pokemon.m.innates) { - for (const innate of pokemon.m.innates) { - if (pokemon.hasAbility(innate)) continue; - const effect = 'ability:' + this.toID(innate); - pokemon.volatiles[effect] = this.initEffectState({ id: effect, target: 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] 4v4 Doubles UU", - desc: "VGC rules, but only Pokémon that get less than 4.52% usage on the VGC ladder are legal, as well as a few other guidelines.", + name: "[Gen 9] STAAABmons", + desc: `Pokémon have access to almost any ability and can use any move of their typing, in addition to the moves they can normally learn.`, mod: 'gen9', - gameType: 'doubles', - bestOfDefault: true, - ruleset: ['[Gen 9] VGC 2026 Reg F', 'Evasion Abilities Clause', 'Evasion Moves Clause', 'OHKO Clause'], + ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'Evasion Items Clause', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Terastal Clause', 'STABmons Move Legality'], banlist: [ - 'Amoonguss', 'Annihilape', 'Arcanine-Hisui', 'Basculegion-M', 'Chi-Yu', 'Chien-Pao', 'Cresselia', 'Dondozo', 'Dragonite', 'Enamorus-Incarnate', 'Farigiraf', 'Flutter Mane', - 'Gholdengo', 'Gouging Fire', 'Incineroar', 'Indeedee-F', 'Iron Crown', 'Landorus-Incarnate', 'Landorus-Therian', 'Ogerpon-Cornerstone', 'Ogerpon-Hearthflame', 'Ogerpon-Wellspring', - 'Porygon2', 'Raging Bolt', 'Regidrago', 'Rillaboom', 'Roaring Moon', 'Sneasler', 'Ting-Lu', 'Torkoal', 'Tornadus-Incarnate', 'Ursaluna-Base', 'Urshifu-Single-Strike', - 'Urshifu-Rapid-Strike', 'Whimsicott', 'Commander', 'Bright Powder', 'King\'s Rock', 'Razor Fang', + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Ceruledge', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Dragonite', + 'Enamorus-Incarnate', 'Eternatus', 'Flutter Mane', 'Garchomp', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Hoopa-Unbound', 'Ho-Oh', 'Iron Bundle', 'Iron Moth', 'Iron Valiant', + 'Keldeo', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Manaphy', 'Meloetta', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', + 'Noivern', 'Ogerpon-Cornerstone', 'Ogerpon-Hearthflame', 'Ogerpon-Wellspring', 'Palkia', 'Palkia-Origin', 'Raging Bolt', 'Rayquaza', 'Regigigas', 'Reshiram', 'Roaring Moon', 'Shaymin-Sky', + 'Slaking', 'Sneasler', 'Solgaleo', 'Spectrier', 'Thundurus', 'Thundurus-Therian', 'Ursaluna', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', 'Urshifu-Rapid-Strike', 'Volcarona', 'Walking Wake', + 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Zoroark-Hisui', 'Arena Trap', 'Comatose', 'Contrary', 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Hadron Engine', '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', 'Stench', 'Tangled Feet', 'Tinted Lens', 'Toxic Debris', 'Triage', 'Unburden', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', + 'Shed Tail', + ], + restricted: [ + 'Acupressure', 'Astral Barrage', 'Belly Drum', 'Boomburst', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Dragon Energy', 'Electro Shot', 'Eruption', 'Esper Wing', 'Extreme Speed', + 'Fillet Away', 'Final Gambit', 'Gigaton Hammer', 'Glacial Lance', 'Jet Punch', 'Lumina Crash', 'No Retreat', 'Population Bomb', 'Rage Fist', 'Revival Blessing', 'Rising Voltage', 'Shell Smash', + 'Shift Gear', 'Surging Strikes', 'Tail Glow', 'Take Heart', 'Torch Song', 'Transform', 'Triple Arrows', 'V-create', 'Victory Dance', 'Water Spout', 'Wicked Blow', 'Wicked Torque', ], }, { - name: "[Gen 9] National Dex RU", + name: "[Gen 9] Monocolor", + desc: `All Pokémon on a team must share a color.`, mod: 'gen9', - // searchShow: false, - ruleset: ['[Gen 9] National Dex UU'], - banlist: ['ND UU', 'ND RUBL', 'Slowbronite'], + ruleset: ['[Gen 9] OU', 'Same Color Clause'], + banlist: ['Ogerpon-Wellspring'], + unbanlist: ['Archaludon', 'Volcarona'], }, { - name: "[Gen 6] Megas Revisited Random Battle", - desc: `A Gen 6 metagame where every Mega Evolution was reevaluated and redesigned.`, - mod: 'gen6megasrevisited', + name: "[Gen 9] National Dex 35 Pokes", + desc: `Only 35 Pokémon are legal.`, + mod: 'gen9', + // searchShow: false, + ruleset: [ + 'Standard NatDex', + '!Species Clause', 'Forme Clause', 'Sleep Moves Clause', 'Terastal Clause', 'DryPass 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', 'Power Construct', 'Shadow Tag', 'Tangled Feet', 'Berserk Gene', 'Booster Energy', 'King\'s Rock', 'Quick Claw', + 'Razor Fang', 'Hidden Power', 'Last Respects', 'Shed Tail', 'Baton Pass + Contrary', 'Baton Pass + Rapid Spin', 'Baton Pass + Well-Baked Body', + ], + unbanlist: [ + 'Articuno-Base', 'Brute Bonnet', 'Cacturne', 'Clefable-Base', 'Cobalion', 'Drifblim', 'Dugtrio-Base', 'Gabite', 'Gogoat', 'Hariyama', 'Hippowdon', 'Krookodile', + 'Lurantis-Base', 'Lycanroc-Base', 'Mabosstiff', 'Minior', 'Munkidori', 'Passimian', 'Pawmot', 'Persian-Base', 'Raichu-Alola', 'Roserade', 'Rotom-Heat', 'Sandaconda', + 'Sceptile-Base', 'Stoutland', 'Stunfisk-Base', 'Tentacruel', 'Thwackey', 'Tinkaton', 'Toedscruel', 'Tsareena', 'Uxie', 'Vivillon', 'Whiscash', + 'Ultranecrozium Z', 'Solganium Z', 'Lunalium Z', 'Mewnium Z', 'Marshadium Z', 'Yawn', + ], + // Stupid hardcode + onValidateSet(set, format, setHas, teamHas) { + if (set.item) { + const item = this.dex.items.get(set.item); + if (item.megaStone && !(this.ruleTable.has(`+item:${item.id}`) || this.ruleTable.has(`+pokemontag:mega`))) { + return [`Mega Evolution is banned.`]; + } + if (item.zMove && !(this.ruleTable.has(`+item:${item.id}`))) { + return [`${item.name} is banned.`]; + } + } + }, + }, + { + name: "[Gen 9] ReGeneration Random Battle", + desc: `A Kanto-only Gen 9 metagame where many of the Pokemon have been redesigned with modern design philosophies.`, + mod: 'gen9regeneration', team: 'random', bestOfDefault: true, - ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod', 'Mega Data Mod'], + ruleset: ['Obtainable', 'Terastal Clause', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod', 'Data Preview'], onBegin() { - this.add(`raw|
Need help with all of the new Megas and abilities?
Then make sure to check out the spreadsheet or use /dt!
`); - this.add('-message', `Welcome to Megas Revisited!`); - this.add('-message', `This is a Generation 6 OU-based Pet Mod where every existing Mega Evolution has been redesigned.`); + this.add(`raw|
Need help with all of the new moves and abilities?
Then make sure to check out the spreadsheet or use /dt!
`); + this.add('-message', `Welcome to ReGeneration!`); + this.add('-message', `This is a Generation 9 Pet Mod where many Kanto Pokemon have been redesigned to fit the modern era!`); this.add('-message', `You can find our thread and metagame resources here:`); - this.add('-message', `https://www.smogon.com/forums/threads/3713949/`); + this.add('-message', `https://www.smogon.com/forums/threads/3718196/`); }, }, { @@ -678,18 +810,16 @@ export const Formats: import('../sim/dex-formats').FormatList = [ }, }, { - name: "[Gen 4] Ubers", - mod: 'gen4', + name: "[Gen 5] Ubers", + mod: 'gen5', // searchShow: false, - ruleset: ['Standard'], - banlist: ['AG'], + ruleset: ['Standard', 'Sleep Clause Mod'], }, { - name: "[Gen 6] NU", - mod: 'gen6', - // searchShow: false, - ruleset: ['[Gen 6] RU'], - banlist: ['RU', 'NUBL'], + name: "[Gen 3] FRLG OU", + mod: 'gen3frlg', + ruleset: ['Standard', 'One Boost Passer Clause', 'Freeze Clause Mod'], + banlist: ['Uber', 'Sand Veil', 'King\'s Rock'], }, { name: "[Gen 4] VGC 2009", @@ -765,8 +895,8 @@ export const Formats: import('../sim/dex-formats').FormatList = [ 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', 'Lucarionite Z', 'Malamarite', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Red Orb', 'Baton Pass', - 'Shed Tail', + 'Kangaskhanite', 'Lucarionite Z', 'Malamarite', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Red Orb', 'Starminite', + 'Baton Pass', 'Shed Tail', ], restricted: [ 'Arceus', 'Basculegion-M', 'Calyrex-Ice', 'Ceruledge', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Eternatus', 'Flutter Mane', @@ -826,6 +956,83 @@ export const Formats: import('../sim/dex-formats').FormatList = [ } }, }, + { + name: "[Gen 9] Pokebilities AAA", + desc: `Pokémon have all of their released abilities simultaneously, as well as one ability they cannot normally use.`, + mod: 'pokebilities', + ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'AAA Restricted Abilities', 'Terastal Clause', 'Sleep Moves Clause'], + banlist: [ + 'Annihilape', 'Arcanine-Hisui', 'Arceus', 'Archaludon', 'Azumarill', 'Basculegion', 'Basculin', 'Baxcalibur', 'Blaziken', 'Braviary-Hisui', 'Calyrex-Ice', 'Calyrex-Shadow', + 'Ceruledge', 'Chi-Yu', 'Chien-Pao', 'Clefable', 'Cloyster', 'Conkeldurr', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Dragonite', + 'Enamorus-Incarnate', 'Espathra', 'Eternatus', 'Excadrill', 'Flutter Mane', 'Gholdengo', 'Giratina', 'Giratina-Origin', 'Gliscor', 'Gouging Fire', 'Groudon', 'Hawlucha', + 'Ho-Oh', 'Hoopa-Unbound', 'Iron Bundle', 'Iron Valiant', 'Kingambit', 'Keldeo', 'Kleavor', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', + 'Lugia', 'Lunala', 'Magearna', 'Manaphy', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Ogerpon-Hearthflame', 'Palkia', 'Palkia-Origin', + 'Porygon-Z', 'Raging Bolt', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Serperior', 'Shaymin-Sky', 'Smeargle', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna', 'Ursaluna-Bloodmoon', + 'Urshifu-Single-Strike', 'Urshifu-Rapid-Strike', 'Volcarona', 'Walking Wake', 'Weavile', 'Yanmega', 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Zoroark-Hisui', 'Arena Trap', + 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Shadow Tag', + 'Regenerator + Wimp Out', 'Regenerator + Emergency Exit', 'Regenerator > 2', 'Drizzle + Swift Swim', 'Primordial Sea + Swift Swim', 'Drought + Chlorophyll', + 'Desolate Land + Chlorophyll', 'Electric Surge + Surge Surfer', 'Hadron Engine + Surge Surfer', 'Hadron Engine + Quark Drive', 'Electric Surge + Quark Drive', + 'Drought + Protosynthesis', 'Sand Stream + Sand Rush', 'Sand Stream + Sand Veil', 'Snow Warning + Snow Cloak', 'Snow Warning + Slush Rush', + 'Bright Powder', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Revival Blessing', 'Shed Tail', 'Stored Power', + ], + restricted: [ + 'Comatose', 'Contrary', 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Magic Bounce', 'Orichalcum Pulse', + 'Parental Bond', 'Poison Heal', 'Pure Power', 'Sand Veil', 'Simple', 'Snow Cloak', 'Speed Boost', 'Stakeout', 'Stench', 'Tinted Lens', 'Toxic Debris', 'Triage', 'Unburden', + 'Water Bubble', 'Wonder Guard', + ], + 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) { + if (pokemon.m.innates) { + for (const innate of pokemon.m.innates) { + if (pokemon.hasAbility(innate)) continue; + const effect = 'ability:' + this.toID(innate); + pokemon.volatiles[effect] = this.initEffectState({ id: effect, target: 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] Shared Power", desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, @@ -960,23 +1167,12 @@ export const Formats: import('../sim/dex-formats').FormatList = [ }, }, { - name: "[Gen 9] Alphabet Cup", - desc: `Allows Pokémon to use any move that shares the same first letter as their name or a previous evolution's name.`, + 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', 'Alphabet Cup Move Legality', 'Sleep Moves Clause', 'Terastal Clause'], - banlist: [ - 'Annihilape', 'Arceus', 'Baxcalibur', 'Blaziken', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Normal', 'Dialga', 'Dialga-Origin', - 'Dragapult', 'Dragonite', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Kingambit', 'Koraidon', - 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Mamoswine', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', - 'Necrozma-Dusk-Mane', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Sceptile', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna', - 'Urshifu-Single-Strike', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'Heat Rock', - 'King\'s Rock', 'Light Clay', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', - ], - restricted: [ - 'Belly Drum', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Extreme Speed', 'Fillet Away', 'Glacial Lance', 'Glare', 'Lumina Crash', 'Rage Fist', 'Revival Blessing', - 'Sacred Fire', 'Salt Cure', 'Shell Smash', 'Shift Gear', 'Surging Strikes', 'Tail Glow', 'Triple Arrows', - ], + ruleset: ['Standard OMs', 'Sleep Moves Clause', '350 Cup Mod', 'Evasion Clause'], + banlist: ['Calyrex-Shadow', 'Clefairy', 'Flittle', 'Gastly', 'Miraidon', 'Pikachu', 'Rufflet', 'Smeargle', 'Arena Trap', 'Moody', 'Shadow Tag', 'Eviolite', 'Baton Pass'], }, { name: "[Gen 9] Bad 'n Boosted", @@ -1225,16 +1421,19 @@ export const Formats: import('../sim/dex-formats').FormatList = [ for (const scrambledMove of pokemon.m.scrambled.moves) { const move = this.dex.moves.get(scrambledMove.thing); + const ppUps = move.noPPBoosts ? 0 : 3; + const basePP = this.calculatePP(move, ppUps); const newMove = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp: basePP, + maxpp: basePP, target: move.target, disabled: false, used: false, }; pokemon.baseMoveSlots.push(newMove); + pokemon.ppUps.push(ppUps); } pokemon.moveSlots = pokemon.baseMoveSlots.slice(); } @@ -1287,134 +1486,6 @@ export const Formats: import('../sim/dex-formats').FormatList = [ '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('natdexmod') && 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('natdexmod') && 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.`, @@ -1938,6 +2009,36 @@ export const Formats: import('../sim/dex-formats').FormatList = [ 'Baton Pass', 'Last Respects', 'Shed Tail', ], }, + { + name: "[Gen 9] Linked", + desc: `The first two moves in a Pokémon's moveset are used simultaneously.`, + mod: 'linked', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Clause', 'Terastal Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Archaludon', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Normal', 'Dialga', 'Dialga-Origin', + 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Jirachi', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', + 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Meloetta', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', + 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', + 'Urshifu-Rapid-Strike', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Chlorophyll', 'Drought', 'Electric Surge', 'Moody', + 'Sand Rush', 'Serene Grace', 'Shadow Tag', 'Slush Rush', 'Speed Boost', 'Swift Swim', 'Unburden', 'Booster Energy', 'King\'s Rock', 'Quick Claw', 'Razor Fang', + 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + restricted: [ + 'Assurance', 'Baneful Bunker', 'Bounce', 'Burning Bulwark', 'Copycat', 'Detect', 'Dig', 'Dive', 'Encore', 'Endeavor', 'Fake Out', 'Fly', 'Imprison', 'Nasty Plot', + 'Phantom Force', 'Protect', 'Ruination', 'Shadow Force', 'Shell Smash', 'Silk Trap', 'Spiky Shield', 'Sunny Day', 'Super Fang', 'Swords Dance', 'Taunt', 'Trick Room', + ], + onValidateSet(set) { + const problems = []; + for (const [i, moveid] of set.moves.entries()) { + const move = this.dex.moves.get(moveid); + if ([0, 1].includes(i) && this.ruleTable.isRestricted(`move:${move.id}`)) { + problems.push(`${set.name || set.species}'s move ${move.name} cannot be linked.`); + } + } + return problems; + }, + }, { name: "[Gen 9] Nature Swap", desc: `Pokémon have their stats swapped around based on their nature. A Pokémon with a Modest nature will have its Atk and Sp. Atk stats swap.`, @@ -2611,7 +2712,7 @@ export const Formats: import('../sim/dex-formats').FormatList = [ // 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) { + if (move.isZOrMaxPowered && target.getMoveHitData(move).brokeProtect) { baseDamage = this.battle.modify(baseDamage, 0.25); this.battle.add('-zbroken', target); } @@ -2935,241 +3036,15 @@ export const Formats: import('../sim/dex-formats').FormatList = [ section: "Temporary Tour Metas", }, { - name: "[Gen 9] Mix and Mega LC", - desc: `Mega evolve any Pokémon with any mega stone, or transform them with Genesect Drives, Primal orbs, Origin orbs, Rusted items, Ogerpon Masks, Arceus Plates, and Silvally Memories with no limit. Mega and Primal boosts based on form changes from gen 7.`, - mod: 'mixandmega', - searchShow: false, - ruleset: ['Standard OMs', 'Little Cup', 'Sleep Clause Mod', 'Terastal Clause'], + name: "[Gen 5] Almost Any Ability", + mod: 'gen5', + ruleset: ['Standard', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Gems Clause', 'Baton Pass Stat Clause', '!Obtainable Abilities', 'Ability Clause = 2'], banlist: [ - 'Basculin-White-Striped', 'Dunsparce', 'Duraludon', 'Meditite', 'Rufflet', 'Scyther', 'Sneasel', 'Sneasel-Hisui', 'Stantler', 'Moody', - 'Absolite Z', 'Beedrillite', 'Blazikenite', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Lucarionite Z', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Zygardite', - 'Baton Pass', 'Sticky Web', + 'Uber', 'Archeops', 'Bisharp', 'Deoxys-Defense', 'Deoxys-Speed', 'Keldeo', 'Kyurem-Black', 'Mamoswine', 'Regigigas', 'Shedinja', 'Slaking', 'Snorlax', 'Suicune', 'Terrakion', + 'Volcarona', 'Arena Trap', 'Chlorophyll', 'Contrary', 'Huge Power', 'Illusion', 'Imposter', 'Pure Power', 'Sand Rush', 'Shadow Tag', 'Simple', 'Speed Boost', 'Swift Swim', + 'Tinted Lens', 'Wonder Guard', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Assist', 'Swagger', ], - restricted: [ - 'Aipom', 'Buizel', 'Cutiefly', 'Dratini', 'Elekid', 'Gastly', 'Girafarig', 'Gligar', 'Mienfoo', - 'Misdreavus', 'Murkrow', 'Pawniard', 'Qwilfish-Hisui', 'Voltorb-Hisui', 'Wattrel', 'Yanma', - ], - onValidateTeam(team) { - const itemTable = new Set(); - for (const set of team) { - const item = this.dex.items.get(set.item); - if (!(item.forcedForme && !item.zMove) && !item.megaStone && - !item.isPrimalOrb && !item.name.startsWith('Rusted')) continue; - const natdex = this.ruleTable.has('natdexmod'); - 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.forcedForme === species.name) && - !item.megaStone && !item.isPrimalOrb) || (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/Primal Orb/Rusted item/Origin item/Ogerpon Mask/Arceus Plate/Silvally Memory.`, - `(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 originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - // Place volatiles on the Pokémon to show its mega-evolved condition and details - this.add('-start', pokemon, originalSpecies.requiredItems?.[0] || originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); - if (oSpecies.types.join('/') !== pokemon.species.types.join('/')) { - this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - } - }, - onSwitchOut(pokemon) { - const originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - this.add('-end', pokemon, originalSpecies.requiredItems?.[0] || originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - } - }, - }, - { - name: "[Gen 8] Mix and Mega", - desc: `Mega evolve any Pokémon with any mega stone with no limit. Boosts based on mega evolution from gen 7.`, - mod: 'gen8mixandmega', - searchShow: false, - ruleset: ['Standard', 'Dynamax Clause', 'Overflow Stat Mod'], - banlist: [ - 'Calyrex-Shadow', 'Eternatus', 'Kyogre', 'Zacian', 'Zacian-Crowned', 'Moody', 'Shadow Tag', 'Beedrillite', 'Blazikenite', - 'Gengarite', 'Kangaskhanite', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Baton Pass', 'Electrify', - ], - restricted: [ - 'Calyrex-Ice', 'Dialga', 'Gengar', 'Giratina', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Marshadow', 'Melmetal', 'Mewtwo', - 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Urshifu', 'Urshifu-Rapid-Strike', 'Solgaleo', - 'Xerneas', 'Yveltal', 'Zekrom', 'Power Construct', - ], - onValidateTeam(team) { - const itemTable = new Set(); - for (const set of team) { - const item = this.dex.items.get(set.item); - if (!item.megaStone) continue; - const species = this.dex.species.get(set.species); - const ability = this.dex.abilities.get(set.ability); - if (this.ruleTable.isRestricted(`item:${item.id}`) || this.ruleTable.isRestricted(`ability:${ability.id}`)) { - 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.`, - `(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 originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - // Place volatiles on the Pokémon to show its mega-evolved condition and details - this.add('-start', pokemon, originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); - if (oSpecies.types.join('/') !== pokemon.species.types.join('/')) { - this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - } - }, - onSwitchOut(pokemon) { - const originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - this.add('-end', pokemon, originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - } - }, - }, - { - name: "[Gen 7] Mix and Mega", - desc: `Mega evolve any Pokémon with any mega stone, or transform them with Primal orbs, with no limit.`, - mod: 'gen7mixandmega', - searchShow: false, - ruleset: ['Standard', 'Mega Rayquaza Clause', 'Overflow Stat Mod'], - banlist: ['Shadow Tag', 'Gengarite', 'Baton Pass', 'Electrify'], - restricted: [ - 'Beedrillite', 'Blazikenite', 'Kangaskhanite', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Ultranecrozium Z', 'Power Construct', - 'Arceus', 'Deoxys-Attack', 'Deoxys-Normal', 'Deoxys-Speed', 'Dialga', 'Dragonite', 'Giratina', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', - 'Landorus-Therian', 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', - 'Regigigas', 'Reshiram', 'Shuckle', 'Slaking', 'Solgaleo', 'Xerneas', 'Yveltal', 'Zekrom', - ], - onValidateTeam(team) { - const itemTable = new Set(); - for (const set of team) { - const item = this.dex.items.get(set.item); - if (!item.megaStone && !item.isPrimalOrb && item.id !== 'ultranecroziumz') continue; - const species = this.dex.species.get(set.species); - const ability = this.dex.abilities.get(set.ability); - if ((this.ruleTable.isRestrictedSpecies(species) || this.ruleTable.isRestricted(`item:${item.id}`) || - this.ruleTable.isRestricted(`ability:${ability.id}`)) && - !(((item.megaStone || item.isPrimalOrb) && item.itemUser?.includes(species.baseSpecies) || - (item.id === 'ultranecroziumz' && species.name.startsWith('Necrozma-'))))) { - 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/Primal Orb.`, - `(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 originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - // Place volatiles on the Pokémon to show its mega-evolved condition and details - this.add('-start', pokemon, originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); - if (oSpecies.types.join('/') !== pokemon.species.types.join('/')) { - this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - } - }, - onSwitchOut(pokemon) { - const originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - this.add('-end', pokemon, originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - } - }, - }, - { - name: "[Gen 6] Mix and Mega", - desc: `Mega evolve any Pokémon with any mega stone, or transform them with Primal orbs, with no limit.`, - mod: 'gen6mixandmega', - searchShow: false, - ruleset: ['Standard', 'Mega Rayquaza Clause', 'Overflow Stat Mod', '!Sleep Clause Mod', 'Sleep Moves Clause'], - banlist: ['Shadow Tag', 'Gengarite', 'Baton Pass', 'Electrify'], - restricted: [ - 'Beedrillite', 'Kangaskhanite', 'Mawilite', 'Medichamite', 'Arceus', 'Darkrai', 'Deoxys-Attack', 'Deoxys-Normal', 'Deoxys-Speed', - 'Dialga', 'Dragonite', 'Entei', 'Genesect', 'Giratina', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', - 'Manaphy', 'Mewtwo', 'Palkia', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shaymin-Sky', 'Slaking', 'Xerneas', 'Yveltal', 'Zekrom', - 'Swagger', - ], - onValidateTeam(team) { - const itemTable = new Set(); - for (const set of team) { - const item = this.dex.items.get(set.item); - if (!item.megaStone && !item.isPrimalOrb) continue; - const species = this.dex.species.get(set.species); - if ((this.ruleTable.isRestrictedSpecies(species) || this.ruleTable.isRestricted(`item:${item.id}`)) && - !((item.megaStone || item.isPrimalOrb) && item.itemUser?.includes(species.baseSpecies))) { - 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/Primal Orb.`, - `(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 originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - // Place volatiles on the Pokémon to show its mega-evolved condition and details - this.add('-start', pokemon, originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); - if (oSpecies.types.join('/') !== pokemon.species.types.join('/')) { - this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - } - }, - onSwitchOut(pokemon) { - const originalSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); - if (originalSpecies.exists && pokemon.m.originalSpecies !== originalSpecies.baseSpecies) { - this.add('-end', pokemon, originalSpecies.requiredItem || originalSpecies.requiredMove, '[silent]'); - } - }, + unbanlist: ['Landorus-Incarnate'], }, // National Dex @@ -3200,44 +3075,6 @@ export const Formats: import('../sim/dex-formats').FormatList = [ { 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', - '!Species Clause', 'Forme Clause', '!Sleep Clause Mod', 'Sleep Moves Clause', 'Terastal Clause', 'DryPass 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', 'Power Construct', 'Shadow Tag', 'Tangled Feet', 'Berserk Gene', 'Booster Energy', 'King\'s Rock', 'Quick Claw', - 'Razor Fang', 'Last Respects', 'Shed Tail', 'Baton Pass + Contrary', 'Baton Pass + Rapid Spin', 'Baton Pass + Well-Baked Body', - ], - unbanlist: [ - 'Aerodactyl-Base', 'Arctozolt', 'Armaldo', 'Armarouge', 'Bronzong', 'Centiskorch', 'Cherrim-Base', 'Cyclizar', 'Dhelmise', 'Dondozo', - 'Drakloak', 'Empoleon', 'Glaceon', 'Golduck', 'Gyarados-Base', 'Jellicent', 'Jumpluff', 'Kecleon', 'Kilowattrel', 'Kingdra', 'Lunatone', - 'Musharna', 'Noivern', 'Palossand', 'Pincurchin', 'Reuniclus', 'Revavroom', 'Sandslash-Alola', 'Snorlax', 'Solrock', 'Stonjourner', - 'Vaporeon', 'Virizion', 'Wigglytuff', 'Wo-Chien', 'Ultranecrozium Z', 'Solganium Z', 'Lunalium Z', 'Mewnium Z', 'Marshadium Z', 'Yawn', - ], - // Stupid hardcode - onValidateSet(set, format, setHas, teamHas) { - if (set.item) { - const item = this.dex.items.get(set.item); - if (item.megaStone && !(this.ruleTable.has(`+item:${item.id}`) || this.ruleTable.has(`+pokemontag:mega`))) { - return [`Mega Evolution is banned.`]; - } - if (item.zMove && !(this.ruleTable.has(`+item:${item.id}`))) { - return [`${item.name} 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', @@ -3250,15 +3087,22 @@ export const Formats: import('../sim/dex-formats').FormatList = [ 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', 'Slowbronite'], + }, { name: "[Gen 9] National Dex Ubers UU", mod: 'gen9', searchShow: false, ruleset: ['[Gen 9] National Dex Ubers'], banlist: [ - 'Alomomola', 'Arceus-Normal', 'Arceus-Dark', 'Arceus-Ground', 'Calyrex-Ice', 'Chansey', 'Deoxys-Attack', 'Ditto', 'Dondozo', 'Eternatus', 'Giratina-Origin', 'Groudon-Primal', - 'Hatterene', 'Ho-Oh', 'Kingambit', 'Kyogre-Primal', 'Lunala', 'Marshadow', 'Mewtwo-Mega-Y', 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', 'Salamence-Mega', 'Smeargle', 'Yveltal', - 'Zacian-Crowned', 'Zygarde-50%', + 'Alomomola', 'Arceus-Normal', 'Arceus-Dark', 'Arceus-Ground', 'Calyrex-Ice', 'Chansey', 'Deoxys-Attack', 'Deoxys-Speed', 'Ditto', 'Dondozo', 'Eternatus', + 'Giratina-Origin', 'Groudon-Primal', 'Ho-Oh', 'Kyogre-Primal', 'Lunala', 'Marshadow', 'Mewtwo-Mega-Y', 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', 'Pheromosa', + 'Salamence-Mega', 'Smeargle', 'Yveltal', 'Zacian-Crowned', 'Zygarde-50%', // UUBL 'Arceus-Dragon', 'Arceus-Fairy', 'Arceus-Fire', 'Arceus-Flying', 'Arceus-Ghost', 'Arceus-Water', 'Blaziken-Mega', 'Chi-Yu', 'Chien-Pao', 'Dracovish', 'Flutter Mane', 'Groudon', 'Kyogre', 'Kyurem-Black', 'Rayquaza', 'Shaymin-Sky', 'Zacian', 'Zekrom', 'Power Construct', 'Light Clay', 'Ultranecrozium Z', 'Last Respects', @@ -3356,7 +3200,7 @@ export const Formats: import('../sim/dex-formats').FormatList = [ searchShow: false, ruleset: [ 'Standard AG', 'NatDex Mod', '!Obtainable', - 'Forme Clause', 'Sleep Moves Clause', 'Ability Clause = 2', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'CFZ Clause', 'Terastal Clause', + 'Forme Clause', 'Sleep Moves Clause', 'Ability Clause = 2', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'CFZ Clause', 'Terastal Clause', '-Nonexistent', ], banlist: [ 'Cramorant-Gorging', 'Calyrex-Shadow', 'Darmanitan-Galar-Zen', 'Eternatus-Eternamax', 'Greninja-Ash', 'Groudon-Primal', 'Rayquaza-Mega', 'Shedinja', 'Terapagos-Stellar', 'Arena Trap', @@ -3442,7 +3286,7 @@ export const Formats: import('../sim/dex-formats').FormatList = [ { name: "[Gen 8] National Dex Doubles", mod: 'gen8', - // searchShow: false, + searchShow: false, gameType: 'doubles', ruleset: ['Standard Doubles', 'NatDex Mod', 'Evasion Abilities Clause'], banlist: [ @@ -3480,18 +3324,28 @@ export const Formats: import('../sim/dex-formats').FormatList = [ section: "Pet Mods", }, { - name: "[Gen 6] Megas Revisited", // Roomtours - desc: `A Gen 6 metagame where every Mega Evolution was reevaluated and redesigned.`, - mod: 'gen6megasrevisited', + name: "[Gen 9] ReGeneration", // Roomtours + desc: `A Kanto-only Gen 9 metagame where many of the Pokemon have been redesigned with modern design philosophies.`, + mod: 'gen9regeneration', searchShow: false, - ruleset: ['Standard', 'Mega Data Mod'], - banlist: ['Uber', 'Arena Trap', 'Shadow Tag', 'Soul Dew', 'Baton Pass', 'Swagger', 'Blaziken + Speed Boost'], + ruleset: ['Standard NatDex', 'Terastal Clause', 'Data Preview'], + banlist: [ + 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', + 'Aerodactylite', 'Alakazite', 'Beedrillite', 'Blastoisinite', 'Charizardite X', 'Charizardite Y', 'Gyaradosite', + 'Gengarite', 'Kangaskhanite', 'Mewtwonite X', 'Mewtwonite Y', 'Pidgeotite', 'Pinsirite', 'Slowbronite', 'Venusaurite', + ], onBegin() { - this.add(`raw|
Need help with all of the new Megas and abilities?
Then make sure to check out the spreadsheet or use /dt!
`); - this.add('-message', `Welcome to Megas Revisited!`); - this.add('-message', `This is a Generation 6 OU-based Pet Mod where every existing Mega Evolution has been redesigned.`); + this.add(`raw|
Need help with all of the new moves and abilities?
Then make sure to check out the spreadsheet or use /dt!
`); + this.add('-message', `Welcome to ReGeneration!`); + this.add('-message', `This is a Generation 9 Pet Mod where many Kanto Pokemon have been redesigned to fit the modern era!`); this.add('-message', `You can find our thread and metagame resources here:`); - this.add('-message', `https://www.smogon.com/forums/threads/3713949/`); + this.add('-message', `https://www.smogon.com/forums/threads/3718196/`); + }, + onValidateSet(set, format) { + const species = this.dex.species.get(set.species || set.name); + if (species.num >= 152 && !this.ruleTable.has('+' + species.id)) { + return [`${species.baseSpecies} is not in the Kanto Pokédex.`]; + } }, }, { @@ -3625,6 +3479,16 @@ export const Formats: import('../sim/dex-formats').FormatList = [ } }, }, + { + name: "[Gen 9] Live Patch Battles Ver 1.0.0", + threads: [`• https://twitter.com/pokemonpatches`], + mod: 'afd', + team: 'random', + ruleset: ['[Gen 9] Random Battle'], + onBegin() { + this.add(`raw|`); + }, + }, { name: "[Gen 9] Battle Factory", desc: `Randomized teams of Pokémon for a generated Smogon tier with sets that are competitively viable.`, @@ -4672,6 +4536,13 @@ export const Formats: import('../sim/dex-formats').FormatList = [ ruleset: ['[Gen 6] UU'], banlist: ['UU', 'RUBL'], }, + { + name: "[Gen 6] NU", + mod: 'gen6', + searchShow: false, + ruleset: ['[Gen 6] RU'], + banlist: ['RU', 'NUBL'], + }, { name: "[Gen 6] PU", mod: 'gen6', @@ -4837,12 +4708,6 @@ export const Formats: import('../sim/dex-formats').FormatList = [ section: "B2/W2 Singles", column: 4, }, - { - name: "[Gen 5] Ubers", - mod: 'gen5', - searchShow: false, - ruleset: ['Standard', 'Sleep Clause Mod'], - }, { name: "[Gen 5] UU", mod: 'gen5', @@ -5020,6 +4885,13 @@ export const Formats: import('../sim/dex-formats').FormatList = [ section: "DPP Singles", column: 4, }, + { + name: "[Gen 4] Ubers", + mod: 'gen4', + searchShow: false, + ruleset: ['Standard'], + banlist: ['AG'], + }, { name: "[Gen 4] UU", mod: 'gen4', diff --git a/data/abilities.ts b/data/abilities.ts index 2ca4dd0f42..a97b525a45 100644 --- a/data/abilities.ts +++ b/data/abilities.ts @@ -1053,7 +1053,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { flags: {}, name: "Dragonize", rating: 4, - num: 312, // TODO confirm + num: 312, }, dragonsmaw: { onModifyAtkPriority: 5, @@ -1111,7 +1111,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { } }, onWeather(target, source, effect) { - if (target.hasItem('utilityumbrella')) return; + if (target.effectiveWeather() !== effect.id) return; if (effect.id === 'raindance' || effect.id === 'primordialsea') { this.heal(target.baseMaxhp / 8); } else if (effect.id === 'sunnyday' || effect.id === 'desolateland') { @@ -1146,14 +1146,14 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { }, effectspore: { onDamagingHit(damage, target, source, move) { - if (this.checkMoveMakesContact(move, source, target) && !source.status && source.runStatusImmunity('powder')) { + if (this.checkMoveMakesContact(move, source, target) && source.runStatusImmunity('powder')) { const r = this.random(100); if (r < 11) { - source.setStatus('slp', target); + source.trySetStatus('slp', target); } else if (r < 21) { - source.setStatus('par', target); + source.trySetStatus('par', target); } else if (r < 30) { - source.setStatus('psn', target); + source.trySetStatus('psn', target); } } }, @@ -2524,7 +2524,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { flags: {}, name: "Mega Sol", rating: 3, - num: 311, // TODO confirm + num: 315, // Partially implemented in Pokemon.effectiveWeather() in sim/pokemon.ts }, merciless: { @@ -3237,6 +3237,17 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { rating: 0.5, num: 53, }, + piercingdrill: { + isNonstandard: "Future", + onModifyMove(move) { + if (move.flags['contact']) delete move.flags['protect']; + }, + // breaking protect handled in Battle#checkMoveBreaksProtect() + flags: {}, + name: "Piercing Drill", + rating: 1, + num: 311, + }, pixilate: { onModifyTypePriority: -1, onModifyType(move, pokemon) { @@ -3702,7 +3713,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { }, raindish: { onWeather(target, source, effect) { - if (target.hasItem('utilityumbrella')) return; + if (target.effectiveWeather() !== effect.id) return; if (effect.id === 'raindance' || effect.id === 'primordialsea') { this.heal(target.baseMaxhp / 16); } @@ -4145,7 +4156,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { }, sheerforce: { onModifyMove(move, pokemon) { - if (move.secondaries) { + if (move.secondaries && !move.hasSheerForceBoost) { delete move.secondaries; // Technically not a secondary effect, but it is negated delete move.self; @@ -4156,7 +4167,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { }, onBasePowerPriority: 21, onBasePower(basePower, pokemon, target, move) { - if (move.hasSheerForce) return this.chainModify([5325, 4096]); + if (move.hasSheerForce || move.hasSheerForceBoost) return this.chainModify([5325, 4096]); }, flags: {}, name: "Sheer Force", @@ -4345,7 +4356,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { } }, onWeather(target, source, effect) { - if (target.hasItem('utilityumbrella')) return; + if (target.effectiveWeather() !== effect.id) return; if (effect.id === 'sunnyday' || effect.id === 'desolateland') { this.damage(target.baseMaxhp / 8, target, target); } @@ -4407,6 +4418,16 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { rating: 4.5, num: 3, }, + spicyspray: { + isNonstandard: "Future", + onDamagingHit(damage, target, source, move) { + source.trySetStatus('brn', target); + }, + flags: {}, + name: "Spicy Spray", + rating: 3, + num: 318, + }, stakeout: { onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender) { diff --git a/data/aliases.ts b/data/aliases.ts index d5bd11694f..8f8d290bee 100644 --- a/data/aliases.ts +++ b/data/aliases.ts @@ -15,9 +15,11 @@ export const Aliases: import('../sim/dex').AliasesTable = { zeroused: "[Gen 9] ZU", mono: "[Gen 9] Monotype", ag: "[Gen 9] Anything Goes", - bss: "[Gen 9] BSS Reg J", - vgc: "[Gen 9] VGC 2026 Reg F", - bsd: "[Gen 9] VGC 2026 Reg F", + champsou: "[Gen 9 Champions] OU", + cou: "[Gen 9 Champions] OU", + bss: "[Gen 9 Champions] BSS Reg M-A", + vgc: "[Gen 9 Champions] VGC 2026 Reg M-A", + bsd: "[Gen 9 Champions] VGC 2026 Reg M-A", randdubs: "[Gen 9] Random Doubles Battle", doubles: "[Gen 9] Doubles OU", dou: "[Gen 9] Doubles OU", @@ -91,10 +93,10 @@ export const Aliases: import('../sim/dex').AliasesTable = { zaou: "[Gen 9] Legends Z-A OU", legendsou: "[Gen 9] Legends Z-A OU", plzaou: "[Gen 9] Legends Z-A OU", - omotm: "[Gen 9] Linked", - lcotm: "[Gen 9] 350 Cup", - ommotm: "[Gen 9] Pokebilities AAA", - ommspotlight: "[Gen 9] Pokebilities AAA", + omotm: "[Gen 9] Alphabet Cup", + lcotm: "[Gen 9] Cross Evolution", + ommotm: "[Gen 9] STAAABmons", + ommspotlight: "[Gen 9] STAAABmons", // mega evos --- 1st ordered alphabetically by species, 2nd by alias megasnow: "Abomasnow-Mega", diff --git a/data/conditions.ts b/data/conditions.ts index cf749e1f66..9d6ee15ca2 100644 --- a/data/conditions.ts +++ b/data/conditions.ts @@ -484,7 +484,7 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { return 5; }, onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella')) return; + if (defender.effectiveWeather() !== 'raindance') return; if (move.type === 'Water') { this.debug('rain water boost'); return this.chainModify(1.5); @@ -525,7 +525,7 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { } }, onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella')) return; + if (defender.effectiveWeather() !== 'primordialsea') return; if (move.type === 'Water') { this.debug('Rain water boost'); return this.chainModify(1.5); @@ -554,11 +554,11 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { return 5; }, onWeatherModifyDamage(damage, attacker, defender, move) { - if (move.id === 'hydrosteam' && !attacker.hasItem('utilityumbrella')) { + if (move.id === 'hydrosteam' && attacker.effectiveWeather() === 'sunnyday') { this.debug('Sunny Day Hydro Steam boost'); return this.chainModify(1.5); } - if (defender.hasItem('utilityumbrella')) return; + if (defender.effectiveWeather() !== 'sunnyday') return; if (move.type === 'Fire') { this.debug('Sunny Day fire boost'); return this.chainModify(1.5); @@ -577,7 +577,7 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { } }, onImmunity(type, pokemon) { - if (pokemon.hasItem('utilityumbrella')) return; + if (pokemon.effectiveWeather() !== 'sunnyday') return; if (type === 'frz') return false; }, onFieldResidualOrder: 1, @@ -603,9 +603,9 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { } }, onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella')) return; + if (defender.effectiveWeather() !== 'desolateland') return; if (move.type === 'Fire') { - this.debug('Sunny Day fire boost'); + this.debug('Desolate Land fire boost'); return this.chainModify(1.5); } }, @@ -613,7 +613,7 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { this.add('-weather', 'DesolateLand', '[from] ability: ' + effect.name, `[of] ${source}`); }, onImmunity(type, pokemon) { - if (pokemon.hasItem('utilityumbrella')) return; + if (pokemon.effectiveWeather() !== 'desolateland') return; if (type === 'frz') return false; }, onFieldResidualOrder: 1, @@ -894,11 +894,12 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { const ironHeadIndex = pokemon.baseMoves.indexOf('ironhead'); if (ironHeadIndex >= 0) { const move = this.dex.moves.get('behemothblade'); + const pp = this.calculatePP(move, pokemon.ppUps[ironHeadIndex]); pokemon.baseMoveSlots[ironHeadIndex] = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, disabledSource: '', @@ -923,11 +924,12 @@ export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { const ironHeadIndex = pokemon.baseMoves.indexOf('ironhead'); if (ironHeadIndex >= 0) { const move = this.dex.moves.get('behemothbash'); + const pp = this.calculatePP(move, pokemon.ppUps[ironHeadIndex]); pokemon.baseMoveSlots[ironHeadIndex] = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, disabledSource: '', diff --git a/data/formats-data.ts b/data/formats-data.ts index 499e991f05..089d1860d0 100644 --- a/data/formats-data.ts +++ b/data/formats-data.ts @@ -101,7 +101,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = beedrillmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RU", }, pidgey: { isNonstandard: "Past", @@ -381,7 +381,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "NFE", }, vileplume: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -464,7 +464,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, primeape: { - tier: "ZU", + tier: "NFE", doublesTier: "NFE", natDexTier: "NFE", }, @@ -475,7 +475,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, arcanine: { - tier: "PU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -613,7 +613,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = slowbro: { tier: "RU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "OU", }, slowbromega: { isNonstandard: "Past", @@ -621,7 +621,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RUBL", }, slowbrogalar: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1116,7 +1116,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "NFE", }, porygon2: { - tier: "ZUBL", + tier: "PU", doublesTier: "DUU", natDexTier: "NFE", }, @@ -1159,7 +1159,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, snorlax: { - tier: "ZU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1194,7 +1194,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = }, moltresgalar: { tier: "UUBL", - doublesTier: "DUU", + doublesTier: "DOU", natDexTier: "RUBL", }, dratini: { @@ -1228,7 +1228,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "Uber", }, mew: { - tier: "RU", + tier: "UU", doublesTier: "DUU", natDexTier: "UU", }, @@ -1316,7 +1316,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, lanturn: { - tier: "ZU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1521,17 +1521,19 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, heracross: { - tier: "PUBL", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, heracrossmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RUBL", }, sneasel: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, sneaselhisui: { tier: "ZU", @@ -1557,7 +1559,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = ursaluna: { tier: "UUBL", doublesTier: "DOU", - natDexTier: "UU", + natDexTier: "RUBL", }, ursalunabloodmoon: { tier: "Uber", @@ -1579,7 +1581,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "NFE", }, mamoswine: { - tier: "RUBL", + tier: "UU", doublesTier: "(DUU)", natDexTier: "RUBL", }, @@ -1700,7 +1702,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tyranitarmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UUBL", + natDexTier: "OU", }, lugia: { tier: "Uber", @@ -1758,7 +1760,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = swampert: { tier: "NU", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "UU", }, swampertmega: { isNonstandard: "Past", @@ -1877,11 +1879,11 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = gardevoirmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RUBL", + natDexTier: "UU", }, gallade: { tier: "RU", - doublesTier: "(DUU)", + doublesTier: "DUU", natDexTier: "RU", }, gallademega: { @@ -1980,7 +1982,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = sableyemega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RUBL", + natDexTier: "UU", }, mawile: { isNonstandard: "Past", @@ -2701,7 +2703,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, skuntank: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2838,12 +2840,12 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, rotommow: { - tier: "ZU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, uxie: { - tier: "PU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2926,7 +2928,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "Illegal", }, shaymin: { - tier: "ZU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3136,7 +3138,9 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, gurdurr: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, conkeldurr: { tier: "UU", @@ -3290,7 +3294,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "NFE", }, scrafty: { - tier: "NU", + tier: "PU", doublesTier: "DUU", natDexTier: "RU", }, @@ -3646,7 +3650,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = mandibuzz: { tier: "UU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, heatmor: { isNonstandard: "Past", @@ -3665,7 +3669,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "NFE", }, hydreigon: { - tier: "RUBL", + tier: "UU", doublesTier: "(DUU)", natDexTier: "UU", }, @@ -3683,7 +3687,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, terrakion: { - tier: "NUBL", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RUBL", }, @@ -3848,7 +3852,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "NFE", }, talonflame: { - tier: "RU", + tier: "UU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4197,7 +4201,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = }, hoopaunbound: { tier: "UUBL", - doublesTier: "(DUU)", + doublesTier: "DUU", natDexTier: "UUBL", }, volcanion: { @@ -4241,7 +4245,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = primarina: { tier: "OU", doublesTier: "DOU", - natDexTier: "UU", + natDexTier: "RU", }, pikipek: { tier: "LC", @@ -4294,7 +4298,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "Illegal", }, oricorio: { - tier: "ZU", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4304,7 +4308,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, oricoriopau: { - tier: "ZU", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4342,7 +4346,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, lycanrocdusk: { - tier: "RU", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4448,7 +4452,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, passimian: { - tier: "ZU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4460,7 +4464,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = golisopod: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RU", }, golisopodmega: { isNonstandard: "Future", @@ -4717,7 +4721,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, necrozma: { - tier: "NUBL", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4777,7 +4781,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = zeraora: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, zeraoramega: { isNonstandard: "Future", @@ -4808,7 +4812,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = rillaboom: { tier: "OU", doublesTier: "DOU", - natDexTier: "UU", + natDexTier: "OU", }, rillaboomgmax: { isNonstandard: "Past", @@ -4998,7 +5002,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, barraskewda: { - tier: "NU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5006,7 +5010,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = tier: "LC", }, toxtricity: { - tier: "NU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5154,7 +5158,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = dracozolt: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RU", }, arctozolt: { isNonstandard: "Past", @@ -5351,7 +5355,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = lokix: { tier: "UU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, rellor: { tier: "LC", @@ -5548,7 +5552,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = garganacl: { tier: "OU", doublesTier: "DUU", - natDexTier: "UU", + natDexTier: "RU", }, glimmet: { tier: "LC", @@ -5556,7 +5560,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = glimmora: { tier: "OU", doublesTier: "DOU", - natDexTier: "RU", + natDexTier: "UU", }, glimmoramega: { isNonstandard: "Future", @@ -5686,7 +5690,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "Uber", }, wochien: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5727,7 +5731,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = ceruledge: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "UUBL", + natDexTier: "OU", }, toedscool: { tier: "LC", @@ -5772,7 +5776,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = }, okidogi: { tier: "UUBL", - doublesTier: "(DUU)", + doublesTier: "DOU", natDexTier: "UUBL", }, munkidori: { @@ -5786,7 +5790,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = natDexTier: "RU", }, ogerpon: { - tier: "UU", + tier: "OU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5828,7 +5832,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = ironboulder: { tier: "UUBL", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RUBL", }, ironcrown: { tier: "OU", @@ -5848,7 +5852,7 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = pecharunt: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "UUBL", }, missingno: { isNonstandard: "Custom", diff --git a/data/items.ts b/data/items.ts index b232f73d88..fb53bdc56e 100644 --- a/data/items.ts +++ b/data/items.ts @@ -3362,8 +3362,8 @@ export const Items: import('../sim/dex-items').ItemDataTable = { const moveSlot = pokemon.moveSlots.find(move => move.pp === 0) || pokemon.moveSlots.find(move => move.pp < move.maxpp); if (!moveSlot) return; - moveSlot.pp += 10; - if (moveSlot.pp > moveSlot.maxpp) moveSlot.pp = moveSlot.maxpp; + const addedPP = pokemon.hasAbility('ripen') ? 20 : 10; + moveSlot.pp = Math.min(moveSlot.pp + addedPP, moveSlot.maxpp); this.add('-activate', pokemon, 'item: Leppa Berry', moveSlot.move, '[consumed]'); }, num: 154, diff --git a/data/mods/afd/abilities.ts b/data/mods/afd/abilities.ts new file mode 100644 index 0000000000..f86b718bd7 --- /dev/null +++ b/data/mods/afd/abilities.ts @@ -0,0 +1,231 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + chaossaliva: { + 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(2, 10)) { + target.trySetStatus('par', source); + } + if (this.randomChance(2, 10)) { + target.addVolatile('confusion', source); + } + } + }, + flags: {}, + name: "Chaos Saliva", + gen: 9, + shortDesc: "Contact moves have a 20% chance to paralyze and a 20% chance to confuse.", + }, + faststart: { + onStart(pokemon) { + this.add('-start', pokemon, 'ability: Fast Start'); + this.effectState.counter = 5; + }, + onResidualOrder: 28, + onResidualSubOrder: 2, + onResidual(pokemon) { + if (pokemon.activeTurns && this.effectState.counter) { + this.effectState.counter--; + if (!this.effectState.counter) { + this.add('-end', pokemon, 'Fast Start'); + delete this.effectState.counter; + } + } + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (this.effectState.counter) { + return this.chainModify(2); + } + }, + onModifySpe(spe, pokemon) { + if (this.effectState.counter) { + return this.chainModify(2); + } + }, + onEnd(pokemon) { + if (pokemon.beingCalledBack) return; + this.add('-end', pokemon, 'Fast Start', '[silent]'); + }, + flags: {}, + name: "Fast Start", + rating: -1, + gen: 9, + }, + ironfist: { + inherit: true, + onBasePower(basePower, attacker, defender, move) { + if (move.flags['punch']) { + this.debug('Iron Fist boost'); + return this.chainModify([8192, 4096]); + } + }, + }, + supermegalauncher: { + onBasePowerPriority: 19, + onBasePower(basePower, attacker, defender, move) { + if (move.flags['pulse']) { + return this.chainModify(4); + } + }, + flags: {}, + name: "Mega Launcher", + desc: "This Pokemon's pulse moves have their power multiplied by 4. Heal Pulse restores 8/4 of a target's maximum HP, rounded half down.", + shortDesc: "This Pokemon's pulse moves have 4x power. Heal Pulse heals 8/4 target's max HP.", + rating: 3, + gen: 9, + }, + discourage: { + onStart(pokemon) { + let activated = false; + for (const target of pokemon.adjacentFoes()) { + if (!activated) { + this.add('-ability', pokemon, 'Discourage', 'boost'); + activated = true; + } + if (target.volatiles['substitute']) { + this.add('-immune', target); + } else { + this.boost({ spa: -1 }, target, pokemon, null, true); + } + } + }, + flags: {}, + name: "Discourage", + rating: 3.5, + num: 999, + gen: 9, + }, + adaptability: { + inherit: true, + onModifySTAB(stab, source, target, move) { + if (move.forceSTAB || source.hasType(move.type)) { + const types = source.getTypes(); + if (types[0] === move.type) return 2.3; + if (types[1] && types[1] === move.type) return 1.6; + if (stab === 2.3) { + return 2.55; + } + return 2.7; + } + }, + }, + icebody: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (this.checkMoveMakesContact(move, source, target)) { + if (this.randomChance(1, 10)) { + source.trySetStatus('frz', target); + } + } + }, + }, + noretreat: { + onStart(target) { + this.add('-start', target, 'move: No Retreat'); + }, + onFoeBeforeSwitchOut(pokemon) { + if (!pokemon || pokemon.fainted || pokemon.hp <= 0 || pokemon.hasAbility('noretreat')) return; + const success = !!this.damage(pokemon.maxhp / 4, pokemon, this.effectState.target); + if (success) { + pokemon.tryTrap(); + } + }, + name: "No Retreat", + flags: { breakable: 1 }, + }, + itsexcadrillintime: { + onModifySpe(spe, pokemon) { + if (this.field.isWeather('sandstorm')) { + return this.chainModify(2); + } + }, + onImmunity(type, pokemon) { + if (type === 'sandstorm') return false; + }, + onBasePowerPriority: 21, + onBasePower(basePower, attacker, defender, move) { + if (this.field.isWeather('sandstorm')) { + if (move.type === 'Rock' || move.type === 'Ground' || move.type === 'Steel') { + this.debug('Sand Force boost'); + return this.chainModify([5325, 4096]); + } + } + }, + name: "It's Excadrillin' Time!", + flags: {}, + }, + goodasgold: { + inherit: true, + onTryHit(target, source, move) { + if (move.category !== 'Special' && target !== source) { + this.add('-immune', target, '[from] ability: Good as Gold'); + return null; + } + }, + }, + intimidate2: { + onStart(pokemon) { + let activated = false; + let timesActivated = 0; + for (const target of pokemon.adjacentFoes()) { + if (!activated) { + this.add('-ability', pokemon, 'Intimidate 2', 'boost'); + activated = true; + } + if (target.volatiles['substitute']) { + this.add('-immune', target); + } else { + this.boost({ atk: -1 }, target, pokemon, null, true); + timesActivated++; + } + } + if (timesActivated > 0) { + for (let i = 0; i < timesActivated; i++) { + this.boost({ atk: 1 }, pokemon, pokemon, null, true); + } + } + }, + flags: {}, + name: "Intimidate 2", + rating: 3.5, + num: 22, + }, + asonemonarch: { + onSwitchInPriority: 1, + 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; + }, + onFoeTryEatItem() { + return !this.effectState.unnerved; + }, + flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 }, + name: "As One (Monarch)", + rating: 3.5, + num: 266, + }, + intimidate: { + inherit: true, + onStart(pokemon) { + let activated = false; + for (const target of pokemon.adjacentFoes()) { + if (!activated) { + this.add('-ability', pokemon, 'Intimidate', 'boost'); + activated = true; + } + if (target.volatiles['substitute']) { + this.add('-immune', target); + } else { + this.boost({ atk: -2 }, target, pokemon, null, true); + } + } + }, + }, +}; diff --git a/data/mods/afd/conditions.ts b/data/mods/afd/conditions.ts new file mode 100644 index 0000000000..12ee4b62c9 --- /dev/null +++ b/data/mods/afd/conditions.ts @@ -0,0 +1,22 @@ +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { + sandstorm: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (defender.hasItem('utilityumbrella')) return; + if (move.type === 'Rock') { + this.debug('Sandstorm rock boost'); + return this.chainModify(1.5); + } + }, + }, + snowscape: { + inherit: true, + onModifySpePriority: 10, + onModifySpe(spe, pokemon) { + if (!pokemon.getTypes(false, true).includes('Ice') && !pokemon.getTypes(false, true).includes('Steel') && + !pokemon.hasAbility(['slushrush', 'snowcloak', 'iceface', 'icebody']) && pokemon.effectiveWeather() === 'snowscape') { + return this.modify(spe, 0.5); + } + }, + }, +}; diff --git a/data/mods/afd/items.ts b/data/mods/afd/items.ts new file mode 100644 index 0000000000..1828254175 --- /dev/null +++ b/data/mods/afd/items.ts @@ -0,0 +1,93 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + hoots: { + name: "Hoots", + spritenum: 715, + fling: { + basePower: 80, + }, + num: 1120, + gen: 8, + // Hazard Immunity implemented in moves.ts + }, + luckycharm: { + name: "Lucky Charm", + onModifyMovePriority: -2, + onModifyMove(move, pokemon, target) { + let trigger = false; + if (move.secondaries) { + this.debug('doubling secondary chance'); + for (const secondary of move.secondaries) { + if (secondary.chance && secondary.chance < 100) { + secondary.chance = 100; + if (!trigger) trigger = true; + } + } + } + if (move.self?.chance) { + move.self.chance = 100; + trigger = true; + } + if (trigger) { + pokemon.useItem(); + } + }, + spritenum: 707, + fling: { + basePower: 120, + }, + num: 9999, + gen: 9, + }, + onikaburger: { + name: "Onika Burger", + desc: "PP and damage of every move is halved. Gain 25% max HP at the end of each turn.", + shortDesc: "PP and damage of every move is halved. Gain 25% max HP at the end of each turn.", + onStart(target) { + if (target.m.onikaBurger) return; + target.m.onikaBurger = true; + for (const moveSlot of target.moveSlots) { + const deductPP = target.deductPP(moveSlot.id, moveSlot.maxpp / 2, target); + if (!deductPP) continue; + this.add('-activate', target, 'item: Onika Burger', moveSlot.move, deductPP); + } + }, + onModifyDamage() { + return this.chainModify(0.5); + }, + onResidualOrder: 5, + onResidualSubOrder: 4, + onResidual(pokemon) { + this.heal(pokemon.baseMaxhp / 4); + }, + }, + wardtag: { + name: "Ward Tag", + desc: "Reflects back 125% of the damage that would've been dealt. One-time use.", + shortDesc: "Reflects back 125% of the damage that would've been dealt. One-time use.", + onDamage(damage, target, source, effect) { + if (source && target !== source && effect?.effectType === 'Move' && target.useItem()) { + this.add('-activate', target, 'item: Ward Tag'); + this.damage(damage * 5 / 4, source, target); + return 0; + } + }, + }, + strengthpolicy: { + name: "Strength Policy", + spritenum: 609, + fling: { + basePower: 80, + }, + onDamagingHit(damage, target, source, move) { + if (!move.damage && !move.damageCallback && target.getMoveHitData(move).typeMod < 0) { + target.useItem(); + } + }, + boosts: { + def: 2, + spd: 2, + }, + num: 639, + gen: 6, + }, +}; diff --git a/data/mods/afd/moves.ts b/data/mods/afd/moves.ts new file mode 100644 index 0000000000..bffcc53259 --- /dev/null +++ b/data/mods/afd/moves.ts @@ -0,0 +1,599 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + banefulbunker: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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('psn', target); + } + return this.NOT_FAIL; + }, + }, + }, + burningbulwark: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target, false)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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; + }, + }, + }, + kingsshield: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target, false)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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)) { + this.boost({ atk: -1 }, source, target, this.dex.getActiveMove("King's Shield")); + } + return this.NOT_FAIL; + }, + }, + }, + maxguard: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + const bypassesMaxGuard = [ + 'acupressure', 'afteryou', 'allyswitch', 'aromatherapy', 'aromaticmist', 'coaching', 'confide', 'copycat', 'curse', 'decorate', 'doomdesire', 'feint', 'futuresight', 'gmaxoneblow', 'gmaxrapidflow', 'healbell', 'holdhands', 'howl', 'junglehealing', 'lifedew', 'meanlook', 'perishsong', 'playnice', 'powertrick', 'roar', 'roleplay', 'tearfullook', + ]; + if (bypassesMaxGuard.includes(move.id)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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; + }, + }, + }, + meteorbeam: { + 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 (['sandstorm'].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; + }, + }, + obstruct: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target, false)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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)) { + this.boost({ def: -2 }, source, target, this.dex.getActiveMove("Obstruct")); + } + return this.NOT_FAIL; + }, + }, + }, + protect: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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; + }, + }, + }, + silktrap: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target, false)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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)) { + this.boost({ spe: -1 }, source, target, this.dex.getActiveMove("Silk Trap")); + } + return this.NOT_FAIL; + }, + }, + }, + spikyshield: { + inherit: true, + condition: { + inherit: true, + onTryHit(target, source, move) { + if (this.checkMoveBreaksProtect(move, source, target)) return; + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (!this.randomChance(2, 10)) { + this.add('-activate', target, 'move: Protect'); + if (move.basePower >= 100) { + this.add('message', '**BWUAHAAUAAAANGGGGGG**'); + } + } else { + return; + } + } + 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)) { + this.damage(source.baseMaxhp / 8, source, target); + } + return this.NOT_FAIL; + }, + }, + }, + stealthrock: { + inherit: true, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'Stealth Rock'); + this.effectState.layers = 1; + }, + onSideRestart(side) { + if (this.effectState.layers >= 5) return false; + this.add('-sidestart', side, 'Stealth Rock'); + this.effectState.layers++; + }, + onSwitchIn(pokemon) { + if (pokemon.hasItem(['heavydutyboots', 'hoots'])) return; + const typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6); + const damageAmounts = [0, 1, 2, 3, 4, 5]; // 2 ** typeMod / 8 + this.damage((damageAmounts[this.effectState.layers] / 5) * pokemon.maxhp * ((2 ** typeMod) / 8)); + }, + }, + }, + gmaxsteelsurge: { + inherit: true, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'G-Max Steelsurge'); + this.effectState.layers = 1; + }, + onSideRestart(side) { + if (this.effectState.layers >= 5) return false; + this.add('-sidestart', side, 'G-Max Steelsurge'); + this.effectState.layers++; + }, + onSwitchIn(pokemon) { + if (pokemon.hasItem(['heavydutyboots', 'hoots'])) return; + const steelHazard = this.dex.getActiveMove('Stealth Rock'); + steelHazard.type = 'Steel'; + const typeMod = this.clampIntRange(pokemon.runEffectiveness(steelHazard), -6, 6); + const damageAmounts = [0, 1, 2, 3, 4, 5]; // 2 ** typeMod / 8 + this.damage((damageAmounts[this.effectState.layers] / 5) * pokemon.maxhp * ((2 ** typeMod) / 8)); + }, + }, + }, + spikes: { + inherit: true, + condition: { + inherit: true, + onSwitchIn(pokemon) { + if (!pokemon.isGrounded() || pokemon.hasItem(['heavydutyboots', 'hoots'])) return; + const damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4 + this.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24); + }, + }, + }, + stickyweb: { + inherit: true, + condition: { + inherit: true, + onSwitchIn(pokemon) { + if (!pokemon.isGrounded() || pokemon.hasItem(['heavydutyboots', 'hoots'])) return; + this.add('-activate', pokemon, 'move: Sticky Web'); + this.boost({ spe: -1 }, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb')); + }, + }, + }, + toxicspikes: { + inherit: true, + condition: { + inherit: true, + onSwitchIn(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', 'hoots'])) { + // do nothing + } else if (this.effectState.layers >= 2) { + pokemon.trySetStatus('tox', pokemon.side.foe.active[0]); + } else { + pokemon.trySetStatus('psn', pokemon.side.foe.active[0]); + } + }, + }, + }, + suckerpunch: { + inherit: true, + onTry() { }, + onModifyPriority(priority, source, target, move) { + if (!target) return priority - 1; + const action = this.queue.willMove(target); + const aMove = action?.choice === 'move' ? action.move : null; + if (!aMove || (aMove.category === 'Status' && aMove.id !== 'mefirst') || target.volatiles['mustrecharge']) { + return priority - 1; + } + return priority; + }, + }, + thousandarrows: { + inherit: true, + basePower: 120, + }, + healpulse: { + inherit: true, + onHit(target, source) { + let success = false; + if (source.hasAbility('supermegalauncher')) { + success = !!this.heal(this.modify(target.baseMaxhp, 2)); + } else if (source.hasAbility('megalauncher')) { + success = !!this.heal(this.modify(target.baseMaxhp, 0.75)); + } else { + success = !!this.heal(Math.ceil(target.baseMaxhp * 0.5)); + } + if (success && !target.isAlly(source)) { + target.staleness = 'external'; + } + if (!success) { + this.add('-fail', target, 'heal'); + return this.NOT_FAIL; + } + return success; + }, + }, + headsmash: { + inherit: true, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, heal: 1 }, + secondary: { + chance: 100, + onHit(target, source, move) { + if (!this.heal(this.modify(target.baseMaxhp, 0.25))) { + return this.NOT_FAIL; + } + }, + }, + }, + knockoff: { + inherit: true, + accuracy: 90, + }, + shitpulse: { + num: -400, + gen: 9, + accuracy: 100, + basePower: 75, + category: "Special", + name: "Shit Pulse", + pp: 15, + priority: 0, + flags: { protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1 }, + secondary: { + chance: 30, + boosts: { + accuracy: -2, + }, + }, + target: "any", + type: "Poison", + shortDesc: "30% chance to lower foe's accuracy by 2.", + }, + solarflare: { + num: -4324534, + gen: 9, + accuracy: 100, + basePower: 75, + category: "Special", + name: "Solar Flare", + pp: 15, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + secondary: { + chance: 50, + onHit(target, source, move) { + if (!['sunnyday', 'desolateland'].includes(target.effectiveWeather())) return; + target.trySetStatus('brn', source, move); + }, + }, + target: "normal", + type: "Fire", + shortDesc: "Sun active: 50% chance to burn.", + }, + onslaught: { + num: -3023, + gen: 9, + accuracy: 100, + basePower: 100, + category: "Physical", + name: "Onslaught", + pp: 5, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + self: { + boosts: { + atk: -1, + def: -1, + }, + }, + target: "normal", + type: "Dark", + }, + scald: { + inherit: true, + onEffectiveness(typeMod, target, type) { + if (type === 'Steel') return 1; + }, + secondary: undefined, + secondaries: [{ + chance: 30, + status: 'brn', + }, { + chance: 100, + onHit(target, source, move) { + if (target.hasType(['Normal', 'Fairy'])) { + target.trySetStatus('brn', source, move); + } + }, + }], + }, + explosion: { + inherit: true, + onAfterMove(pokemon, target, move) { + if (target && target.hp <= 0) { + delete move.selfdestruct; + return; + } + }, + }, + selfdestruct: { + inherit: true, + onAfterMove(pokemon, target, move) { + if (target && target.hp <= 0) { + delete move.selfdestruct; + return; + } + }, + }, + mistyexplosion: { + inherit: true, + onAfterMove(pokemon, target, move) { + if (target && target.hp <= 0) { + delete move.selfdestruct; + return; + } + }, + }, + moonblast: { + inherit: true, + basePower: 90, + accuracy: 90, + secondary: { + chance: 10, + boosts: { + atk: -1, + }, + }, + category: "Physical", + }, + noretreat: { + name: "No Retreat", + // @ts-expect-error + exists: false, + }, + blastiodon: { + num: -306345534534523, + gen: 9, + accuracy: 100, + basePower: 0, + basePowerCallback(pokemon, target) { + const targetDef = target.getStat('def', false, true); + const pokemonDef = pokemon.getStat('def', false, true); + let bp; + if (pokemonDef >= targetDef * 5) { + bp = 150; + } else if (pokemonDef >= targetDef * 4) { + bp = 125; + } else if (pokemonDef >= targetDef * 3) { + bp = 100; + } else if (pokemonDef >= targetDef * 2) { + bp = 75; + } else { + bp = 50; + } + this.debug(`BP: ${bp}`); + return bp; + }, + category: "Physical", + name: "Blastiodon", + pp: 15, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + overrideOffensiveStat: 'def', + secondary: { + chance: 50, + boosts: { + def: -1, + }, + }, + target: "normal", + type: "Rock", + shortDesc: "Higher user Def than target Def = higher BP.", + }, + focusblast: { + inherit: true, + accuracy: 100, + recoil: [1, 4], + category: "Physical", + }, + darkvoid: { + inherit: true, + onModifyMove(move, pokemon, target) { + if (pokemon.species.baseSpecies === 'Calyrex') { + move.accuracy = 80; + } + }, + onTry(source, target, move) { + if (source.species.baseSpecies === 'Darkrai' || source.species.baseSpecies === 'Calyrex' || move.hasBounced) { + return; + } + this.add('-fail', source, 'move: Dark Void'); + this.hint("Only a Pokemon whose form is Darkrai can use this move."); + return null; + }, + }, + rapidspin: { + inherit: true, + type: "Dark", + }, +}; diff --git a/data/mods/afd/pokedex.ts b/data/mods/afd/pokedex.ts new file mode 100644 index 0000000000..69e614f9c6 --- /dev/null +++ b/data/mods/afd/pokedex.ts @@ -0,0 +1,329 @@ +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { + seaking: { + inherit: true, + baseStats: { hp: 80, atk: 92, def: 65, spa: 65, spd: 80, spe: 98 }, + }, + clefablemega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + victreebelmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + starmiemega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + skarmorymega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + scolipedemega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + scraftymega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + emboarmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + eelektrossmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + chesnaughtmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + delphoxmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + greninjamega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + pyroarmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + barbaraclemega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + hawluchamega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + raichumegax: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + chimechomega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + baxcaliburmega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + zeraoramega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + absolmegaz: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + staraptormega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + golisopodmega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + meowsticfmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + crabominablemega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + golurkmega: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + garchompmegaz: { + inherit: true, + abilities: { 0: "Huge Power" }, + }, + lucariomegaz: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + raichumegay: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + falinksmega: { + inherit: true, + abilities: { 0: "No Retreat" }, + }, + drampamega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + zygardemega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + dragalgemega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + darkraimega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + heatranmega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + floettemega: { + inherit: true, + abilities: { 0: "Regenerator" }, + }, + chandeluremega: { + inherit: true, + abilities: { 0: "Shadow Tag" }, + }, + lickitung: { + inherit: true, + abilities: { 0: "Own Tempo", 1: "Oblivious", H: "Chaos Saliva" }, + }, + mewtwo: { + inherit: true, + abilities: { 0: "Pressure", 1: "Neuroforce", H: "Unnerve" }, + }, + scovillainmega: { + inherit: true, + abilities: { 0: "Contrary" }, + }, + mew: { + inherit: true, + abilities: { 0: "Synchronize", 1: "Neuroforce" }, + }, + smeargle: { + inherit: true, + abilities: { 0: "Own Tempo", 1: "Prankster", H: "Moody" }, + }, + swampert: { + inherit: true, + abilities: { 0: "Torrent", 1: "Sap Sipper", H: "Damp" }, + }, + bibarel: { + inherit: true, + baseStats: { hp: 159, atk: 85, def: 60, spa: 55, spd: 60, spe: 151 }, + }, + skuntank: { + inherit: true, + baseStats: { hp: 103, atk: 93, def: 67, spa: 106, spd: 61, spe: 84 }, + abilities: { 0: "Stench", 1: "Aftermath", H: "Mega Launcher" }, + }, + rampardos: { + inherit: true, + baseStats: { hp: 97, atk: 225, def: 30, spa: 65, spd: 30, spe: 58 }, + abilities: { 0: "Rocky Payload", H: "Sheer Force" }, + }, + gallademega: { + inherit: true, + abilities: { 0: "Sharpness" }, + }, + garchompmega: { + inherit: true, + abilities: { 0: "Sand Rush" }, + }, + dusknoir: { + inherit: true, + abilities: { 0: "Damp" }, + }, + lickilicky: { + inherit: true, + abilities: { 0: "Own Tempo", 1: "Oblivious", H: "Chaos Saliva" }, + }, + regigigas: { + inherit: true, + abilities: { 0: "Slow Start", H: "Fast Start" }, + }, + serperior: { + inherit: true, + types: ['Grass', 'Dragon'], + baseStats: { hp: 75, atk: 75, def: 95, spa: 105, spd: 95, spe: 113 }, + }, + simisage: { + inherit: true, + baseStats: { hp: 120, atk: 120, def: 120, spa: 120, spd: 120, spe: 120 }, + }, + excadrillmega: { + inherit: true, + abilities: { 0: "It's Excadrillin' Time!" }, + }, + chandelure: { + inherit: true, + abilities: { 0: "Flash Fire", 1: "Flame Body", H: "Shadow Tag" }, + }, + delphox: { + inherit: true, + abilities: { 0: "Blaze", H: "Discourage" }, + }, + clawitzer: { + inherit: true, + abilities: { 0: "Super Mega Launcher" }, + }, + malamar: { + inherit: true, + baseStats: { hp: 101, atk: 112, def: 88, spa: 68, spd: 75, spe: 73 }, + }, + malamarmega: { + inherit: true, + baseStats: { hp: 101, atk: 122, def: 88, spa: 98, spd: 120, spe: 88 }, + abilities: { 0: "Contrary" }, + }, + incineroar: { + inherit: true, + types: ['Fire', 'Fighting'], + }, + incineroar2: { + num: 2000, + name: "Incineroar 2", + types: ["Ghost", "Steel"], + genderRatio: { M: 0.875, F: 0.125 }, + baseStats: { hp: 95, atk: 115, def: 90, spa: 80, spd: 90, spe: 60 }, + abilities: { 0: "Intimidate 2" }, + heightm: 1.8, + weightkg: 83, + color: "Red", + eggGroups: ["Field"], + }, + celesteela: { + inherit: true, + baseStats: { hp: 5, atk: 5, def: 5, spa: 5, spd: 5, spe: 5 }, + }, + hatterene: { + inherit: true, + types: ['Psychic', 'Dark'], + }, + glimmora: { + inherit: true, + baseStats: { hp: 106, atk: 150, def: 70, spa: 194, spd: 120, spe: 140 }, + }, + glimmoramega: { + inherit: true, + baseStats: { hp: 106, atk: 185, def: 85, spa: 214, spd: 145, spe: 155 }, + abilities: { 0: "Regenerator" }, + }, + tatsugiri: { + inherit: true, + abilities: { 0: "Commander", 1: "Parental Bond", H: "Storm Drain" }, + }, + tatsugiridroopy: { + inherit: true, + abilities: { 0: "Commander", 1: "Parental Bond", H: "Storm Drain" }, + }, + tatsugiristretchy: { + inherit: true, + abilities: { 0: "Commander", 1: "Parental Bond", H: "Storm Drain" }, + }, + tatsugiricurlymega: { + inherit: true, + abilities: { 0: "Parental Bond" }, + }, + tatsugiridroopymega: { + inherit: true, + abilities: { 0: "Parental Bond" }, + }, + tatsugiristretchymega: { + inherit: true, + abilities: { 0: "Parental Bond" }, + }, + calyrex: { + num: 898, + name: "Calyrex", + types: ["Psychic", "Grass"], + gender: "N", + baseStats: { hp: 100, atk: 80, def: 80, spa: 80, spd: 80, spe: 80 }, + abilities: { 0: "Unnerve" }, + heightm: 1.1, + weightkg: 7.7, + color: "Green", + eggGroups: ["Undiscovered"], + tags: ["Restricted Legendary"], + otherFormes: ["Calyrex-Ice", "Calyrex-Shadow", "Calyrex-Monarch"], + formeOrder: ["Calyrex", "Calyrex-Ice", "Calyrex-Shadow", "Calyrex-Monarch"], + }, + calyrexmonarch: { + num: 898, + name: "Calyrex-Monarch", + baseSpecies: "Calyrex", + forme: "Monarch", + types: ["Psychic", "Grass"], + gender: "N", + baseStats: { hp: 200, atk: 160, def: 160, spa: 160, spd: 160, spe: 160 }, + abilities: { 0: "As One (Calyrex)" }, + heightm: 2.2, + weightkg: 15.4, + color: "Green", + eggGroups: ["Undiscovered"], + changesFrom: "Calyrex", + }, + spidops: { + inherit: true, + baseStats: { hp: 100, atk: 100, def: 100, spa: 100, spd: 100, spe: 0 }, + }, +}; diff --git a/data/mods/afd/random-teams.ts b/data/mods/afd/random-teams.ts new file mode 100644 index 0000000000..d1639d9334 --- /dev/null +++ b/data/mods/afd/random-teams.ts @@ -0,0 +1,788 @@ +import { Utils } from '../../../lib'; +import RandomTeams from '../../random-battles/gen9/teams'; +import { toID } from '../../../sim/dex'; + +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; + level?: number; +} +export class MoveCounter extends Utils.Multiset { + damagingMoves: Set; + basePowerMoves: Set; + + constructor() { + super(); + this.damagingMoves = new Set(); + this.basePowerMoves = new Set(); + } +} +// Moves that switch the user out +const PIVOT_MOVES = [ + 'chillyreception', 'flipturn', 'partingshot', 'shedtail', 'teleport', 'uturn', 'voltswitch', +]; + +/** Pokemon who should never be in the lead slot */ +const NO_LEAD_POKEMON = [ + 'Zacian', 'Zamazenta', +]; + +const DEFENSIVE_TERA_BLAST_USERS = [ + 'alcremie', 'bellossom', 'comfey', 'fezandipiti', 'florges', +]; + +export class RandomAFDTeams extends RandomTeams { + override 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': case 'It\'s Excadrillin\' Time!': + 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; + } + + override 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 === 'drifblim') return moves.has('defog') ? 'Aftermath' : 'Unburden'; + if (abilities.includes('Flash Fire') && this.dex.getEffectiveness('Fire', teraType) >= 1) return 'Flash Fire'; + if ((species.id === 'thundurus' || species.id === 'tornadus') && !counter.get('Physical')) return 'Prankster'; + 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); + } + + override getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ) { + 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 && species.baseSpecies !== 'Magearna') { + // 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 (species.id === 'pikachu') return 'Light Ball'; + if (role === 'AV Pivot') return 'Assault Vest'; + 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') 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 === 'calyrexice' || species.id === 'necrozmaduskmane') && 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('Status')) return 'Lustrous Orb'; + if ( + moves.has('courtchange') || + !isDoubles && (species.id === 'luvdisc' || (species.id === 'terapagos' && !moves.has('rest'))) + ) return 'Hoots'; + if (['Cheek Pouch', 'Cud Chew', 'Harvest', 'Ripen'].some(m => ability === m)) { + return 'Sitrus Berry'; + } + if (moves.has('bellydrum') || moves.has('filletaway')) return 'Ward Tag'; + 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' : 'Hoots'; + 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(['Expert Belt', 'Lum 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 (species.id === 'giratina' && !isDoubles && moves.has('rest') && !moves.has('sleeptalk')) return 'Leftovers'; + 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 'Hoots'; + } + + override getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + const lifeOrbReqs = ['flamecharge', 'nuzzle', 'rapidspin'].every(m => !moves.has(m)); + + if ( + species.id !== 'jirachi' && (counter.get('Physical') >= moves.size) && + ['dragontail', 'fakeout', 'firstimpression', 'flamecharge', 'rapidspin', 'trailblaze'].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') + ); + return (scarfReqs && this.randomChance(1, 2)) ? 'Choice Scarf' : 'Choice Band'; + } + if ( + (counter.get('Special') >= moves.size) || + (counter.get('Special') >= moves.size - 1 && ['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') && !counter.get('physicalsetup') && 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 'Hoots'; + if ( + (moves.has('chillyreception') || ( + role === 'Fast Support' && + [...PIVOT_MOVES, 'defog', 'mortalspin', 'rapidspin'].some(m => moves.has(m)) && + !types.includes('Flying') && ability !== 'Levitate' + )) + ) return 'Hoots'; + + // Low Priority + if (moves.has('dragondance') && role === 'Bulky Setup') return 'Weakness Policy'; + 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 (role === 'Bulky Support') return 'Onika Burger'; + 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 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') > counter.get('Status') && lifeOrbReqs + ) ? 'Life Orb' : 'Leftovers'; + } + if (role === 'Tera Blast user' && DEFENSIVE_TERA_BLAST_USERS.includes(species.id)) return 'Leftovers'; + if ( + lifeOrbReqs && ['Fast Attacker', 'Setup Sweeper', 'Tera Blast user', 'Wallbreaker'].some(m => role === (m)) + ) return 'Life Orb'; + return 'Leftovers'; + } + + override getLevel(species: Species): number { + if (this.adjustLevel) return this.adjustLevel; + const file = this.randomAFDSets[species.id] || this.randomSets[species.id]; + if (file["level"]) return file["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; + } + + override 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', '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 === 'Magearna') return 'Magearna' + this.sample(['', '-Original']); + if (species.baseSpecies === 'Pikachu') { + return 'Pikachu' + this.sample( + ['', '-Original', '-Hoenn', '-Sinnoh', '-Unova', '-Kalos', '-Alola', '-Partner', '-World'] + ); + } + return species.name; + } + + randomAFDSet( + s: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false, + isDoubles = false + ): RandomTeamsTypes.RandomSet { + const species = this.dex.species.get(s); + const forme = this.getForme(species); + if (!this.randomAFDSets[species.id]) return this.randomSet(species, teamDetails, isLead, isDoubles); + const sets = this.randomAFDSets[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) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, teraType, role); + } + + // Get level + const level = this.getLevel(species); + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard' || item === 'Heavy-Duty Boots' || item === 'Hoots'; + 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'].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 in singles + if (isDoubles) break; + 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; + // 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' && + !ruleTable.has('forceofthefallenmod') + ) { + 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); + let name = species.baseSpecies; + if (name === "Bruxish") name = "Brux"; + return { + name, + species: forme, + speciesId: species.id, + gender: species.baseSpecies === 'Greninja' ? 'M' : (species.gender || (this.random(2) ? 'F' : 'M')), + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + teraType, + role, + }; + } + + /** + * Checks if the new species is compatible with the other mons currently on the team. + */ + override getPokemonCompatibility( + species: Species, + pokemon: RandomTeamsTypes.RandomSet[] + ): boolean { + const webSetters = [ + 'ariados', 'smeargle', 'masquerain', 'kricketune', 'leavanny', 'galvantula', 'vikavolt', 'ribombee', 'araquanid', 'spidops', + ]; + const screenSetters = ['meowstic', 'grimmsnarl', 'ninetalesalola', 'abomasnow']; + + const sunSetters = ['ninetales', 'torkoal', 'groudon', 'koraidon']; + + const incompatiblePokemon = [ + // These Pokemon with support roles are considered too similar to each other. + ['blissey', 'chansey'], + ['illumise', 'volbeat'], + + // These combinations are prevented to avoid double webs or screens. + [webSetters, webSetters], + [screenSetters, screenSetters], + + // These Pokemon are incompatible because the presence of one actively harms the other. + // Prevent Dry Skin + sun setting ability + ['toxicroak', sunSetters], + ]; + + const incompatibilityList = incompatiblePokemon; + for (const pair of incompatibilityList) { + const monsArrayA = (Array.isArray(pair[0])) ? pair[0] : [pair[0]]; + const monsArrayB = (Array.isArray(pair[1])) ? pair[1] : [pair[1]]; + if (monsArrayB.includes(species.id)) { + if (pokemon.some(m => monsArrayA.includes(m.speciesId!))) return false; + } + if (monsArrayA.includes(species.id)) { + if (pokemon.some(m => monsArrayB.includes(m.speciesId!))) return false; + } + } + + return true; + } + + randomAFDSets: { [species: string]: RandomTeamsTypes.RandomSpeciesData } = require('./sets.json'); + + override randomTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.getSeed(); + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // 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 = Object.keys(this.randomSets); + const afdList = Object.keys(this.randomAFDSets); + const zaMegaList = Object.keys(this.randomAFDSets).filter(x => ( + this.dex.species.get(x).isMega && this.dex.species.get(x).gen === 9 + )); + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool('', pokemon, false, pokemonList); + const [afdPool, baseAfdPool] = this.getPokemonPool('', pokemon, false, afdList); + const [zaMegaPool, zaBaseMegaPool] = this.getPokemonPool('', pokemon, false, zaMegaList); + + let leadsRemaining = this.format.gameType === 'doubles' ? 2 : 1; + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + let baseSpecies, species; + if (pokemon.length === 0) { + baseSpecies = this.sampleNoReplace(zaBaseMegaPool); + species = this.dex.species.get(this.sample(zaMegaPool[baseSpecies])); + } else if (this.randomChance(1, 5)) { + baseSpecies = this.sampleNoReplace(baseAfdPool); + species = this.dex.species.get(this.sample(afdPool[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 (['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')) + ); + const weakToScald = ( + this.dex.getEffectiveness('Water', species) > 0 || + (this.dex.getEffectiveness('Water', species) > -2 && types.includes('Steel')) + ); + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + 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] >= 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; + } + if (weakToScald) { + if (!typeWeaknesses['Scald']) typeWeaknesses['Scald'] = 0; + if (typeWeaknesses['Scald'] >= 4 * limitFactor) continue; + } + + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species) === 100) && numMaxLevelPokemon >= limitFactor) { + continue; + } + + // Check compatibility with team + if (!this.getPokemonCompatibility(species, pokemon)) continue; + + // The Pokemon of the Day + if (potd?.exists && (pokemon.length === 1 || this.maxTeamSize === 1)) species = potd; + + let set: RandomTeamsTypes.RandomSet; + + if (leadsRemaining) { + if (NO_LEAD_POKEMON.includes(species.baseSpecies)) { + if (pokemon.length + leadsRemaining === this.maxTeamSize) continue; + set = this.randomAFDSet(species, teamDetails, false); + pokemon.push(set); + } else { + set = this.randomAFDSet(species, teamDetails, true); + pokemon.unshift(set); + leadsRemaining--; + } + } else { + set = this.randomAFDSet(species, teamDetails, 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[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']++; + if (weakToScald) typeWeaknesses['Scald']++; + + // 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; + } +} + +export default RandomAFDTeams; diff --git a/data/mods/afd/scripts.ts b/data/mods/afd/scripts.ts new file mode 100644 index 0000000000..39f538ca60 --- /dev/null +++ b/data/mods/afd/scripts.ts @@ -0,0 +1,622 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + init() { + for (const id in this.data.Pokedex) { + const species = this.data.Pokedex[id]; + if (species.isCosmeticForme) continue; + if (species.types.includes('Ground')) { + if (this.data.Learnsets[id]?.learnset) this.modData('Learnsets', id).learnset.thousandarrows = ['9L1']; + } + if (species.types.includes('Grass') && !species.types.includes('Fire')) { + if (this.data.Learnsets[id]?.learnset) this.modData('Learnsets', id).learnset.solarflare = ['9L1']; + } + const abilities = this.modData('Pokedex', id, true).abilities; + if (species.baseStats['atk'] >= 130) { + const hasHP = Object.values(abilities).includes('Huge Power') || + Object.values(abilities).includes('Pure Power'); + if (!hasHP) { + const slot = !abilities['1'] ? '1' : !abilities['H'] ? 'H' : 'S'; + abilities[slot] ||= 'Huge Power'; + } + } + const hasRegen = Object.values(abilities).includes('Regenerator'); + if (!hasRegen) { + const slot = !abilities['1'] ? '1' : !abilities['H'] ? 'H' : 'S'; + abilities[slot] ||= 'Regenerator'; + } + } + this.modData('Learnsets', 'tyranitar').learnset.shoreup = ['9L1']; + this.modData('Learnsets', 'bastiodon').learnset.blastiodon = ['9L1']; + this.modData('Learnsets', 'seaking').learnset.boltbeak = ['9L1']; + this.modData('Learnsets', 'seaking').learnset.fishiousrend = ['9L1']; + this.modData('Learnsets', 'ampharos').learnset.tailglow = ['9L1']; + this.modData('Learnsets', 'ampharos').learnset.dracometeor = ['9L1']; + this.modData('Learnsets', 'serperior').learnset.dracometeor = ['9L1']; + this.modData('Learnsets', 'serperior').learnset.overheat = ['9L1']; + this.modData('Learnsets', 'serperior').learnset.makeitrain = ['9L1']; + this.modData('Learnsets', 'rampardos').learnset.accelerock = ['9L1']; + this.modData('Learnsets', 'bibarel').learnset.bellydrum = ['9L1']; + this.modData('Learnsets', 'bibarel').learnset.storedpower = ['9L1']; + this.modData('Learnsets', 'bibarel').learnset.powertrip = ['9L1']; + this.modData('Learnsets', 'golisopod').learnset.bellydrum = ['9L1']; + this.modData('Learnsets', 'skuntank').learnset.shitpulse = ['9L1']; + this.modData('Learnsets', 'dusknoir').learnset = { explosion: ['9L1'] }; + for (const move of this.moves.all()) { + if (move.flags['bite']) { + this.modData('Learnsets', 'bruxish').learnset[move.id] = ['9L1']; + } + } + for (const moveid in this.data.Learnsets['incineroar'].learnset) { + if (this.moves.get(moveid).type === 'Dark') { + delete this.modData('Learnsets', 'incineroar').learnset[moveid]; + } + } + }, + actions: { + runMegaEvo(pokemon: Pokemon) { + const speciesid = pokemon.canMegaEvo || pokemon.canUltraBurst; + if (!speciesid) return false; + + pokemon.formeChange(speciesid, pokemon.getItem(), true); + + // Limit one mega evolution + pokemon.canMegaEvo = null; + + this.battle.runEvent('AfterMega', pokemon); + return true; + }, + switchIn(pokemon, pos, sourceEffect = null, 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 + + this.battle.singleEvent('End', oldActive.getAbility(), oldActive.abilityState, oldActive); + this.battle.singleEvent('End', oldActive.getItem(), oldActive.itemState, 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; + oldActive.position = pokemon.position; + if (oldActive.fainted) oldActive.status = ''; + if (this.battle.gen <= 4) { + pokemon.lastItem = oldActive.lastItem; + oldActive.lastItem = ''; + } + 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; + } + pokemon.abilityState = this.battle.initEffectState({ id: pokemon.ability, target: pokemon }); + pokemon.itemState = this.battle.initEffectState({ id: pokemon.item, target: pokemon }); + this.battle.runEvent('BeforeSwitchIn', pokemon); + if (sourceEffect) { + this.battle.add(isDrag ? 'drag' : 'switch', pokemon, pokemon.getFullDetails, `[from] ${sourceEffect}`); + } else { + this.battle.add(isDrag ? 'drag' : 'switch', pokemon, pokemon.getFullDetails); + } + 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.runSwitch(pokemon); + } else { + this.battle.queue.insertChoice({ choice: 'runSwitch', pokemon }); + } + + if (pokemon.hasType('Flying')) { + this.battle.field.addPseudoWeather('Tailwind', pokemon); + } + + return true; + }, + 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 + } + + const callerMoveForPressure = sourceEffect && (sourceEffect as ActiveMove).pp ? sourceEffect as ActiveMove : null; + if (!sourceEffect || callerMoveForPressure || sourceEffect.id === 'pursuit') { + 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); + } + } + + let tryMoveResult = this.battle.singleEvent('TryMove', move, null, pokemon, target, move); + if (tryMoveResult) { + tryMoveResult = this.battle.runEvent('TryMove', pokemon, target, move); + } + if (!tryMoveResult) { + move.mindBlownRecoil = false; + return tryMoveResult; + } + + 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.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; + }, + canTerastallize(pokemon: Pokemon) { + if (this.dex.gen !== 9) { + return null; + } + return pokemon.teraType; + }, + canMegaEvo(pokemon) { + const species = pokemon.baseSpecies; + const altForme = species.otherFormes && this.dex.species.get(species.otherFormes[0]); + const item = pokemon.getItem(); + // Mega Rayquaza + if ((this.battle.gen <= 7 || this.battle.ruleTable.has('+pokemontag:past') || + this.battle.ruleTable.has('+pokemontag:future')) && + altForme?.isMega && altForme?.requiredMove && + pokemon.baseMoves.includes(this.battle.toID(altForme.requiredMove)) && !item.zMove) { + return altForme.name; + } + if (species.baseSpecies === 'Magearna' && !species.isMega) { + return species.name.includes('Original') ? 'Magearna-Original-Mega' : 'Magearna-Mega'; + } + if (!item.megaStone) return null; + return item.megaStone[species.name]; + }, + modifyDamage(baseDamage, pokemon, target, move, suppressMessages = false) { + 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 = 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 pokeTypes = pokemon.getTypes(false, true); + const isPrimarySTAB = move.forceSTAB || (pokemon.hasType(type) && pokeTypes[0] === type); + const isSecondarySTAB = move.forceSTAB || (pokemon.hasType(type) && pokeTypes.length > 1 && pokeTypes[1] === type); + const isSTAB = move.forceSTAB || pokemon.hasType(type) || pokemon.getTypes(false, true).includes(type); + if (isPrimarySTAB) { + stab = 1.7; + } + if (isSecondarySTAB) { + stab = 1.2; + } + + // 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.3 : [4915, 4096]; + move.stellarBoosted = true; + if (pokemon.species.name !== 'Terapagos-Stellar') { + pokemon.stellarBoostedTypes.push(type); + } + } + } else { + if (pokemon.terastallized === type && pokeTypes.includes(type)) { + stab = 2.3; + } + 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); + } + } + + if (pokemon.status === 'psn' && move.category === 'Special') { + 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).brokeProtect) { + 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); + }, + 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 ActiveMove; + move.hit = 0; + } + + if (!target.runImmunity(move, !suppressMessages)) { + return false; + } + + if (move.ohko) return this.battle.gen === 3 ? target.hp : 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; + } + + let 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); + if (move.type === 'Electric' && move.category === 'Physical') { + basePower += 15; + category = 'Special'; + } + + 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); + // Hacked Max Moves have 0 base power, even if you Dynamax + if ((!source.volatiles['dynamax'] && move.isMax) || (move.isMax && this.dex.moves.get(move.baseMove).isMax)) { + basePower = 0; + } + + const dexMove = this.dex.moves.get(move.id); + if (source.terastallized && (source.terastallized === 'Stellar' ? + !source.stellarBoostedTypes.includes(move.type) : source.hasType(move.type)) && + basePower < 60 && dexMove.priority <= 0 && !dexMove.multihit && + // Hard move.basePower check for moves like Dragon Energy that have variable BP + !((move.basePower === 0 || move.basePower === 150) && move.basePowerCallback) + ) { + basePower = 60; + } + + 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, 1, source); + let defense = defender.calculateStat(defenseStat, defBoosts, 1, target); + + 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); + }, + }, +}; diff --git a/data/mods/afd/sets.json b/data/mods/afd/sets.json new file mode 100644 index 0000000000..8e440de574 --- /dev/null +++ b/data/mods/afd/sets.json @@ -0,0 +1,1052 @@ +{ + "clefablemega": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Dazzling Gleam", "Flamethrower", "Moonlight", "Stealth Rock", "Thunder Wave"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "victreebelmega": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Knock Off", "Power Whip", "Sludge Bomb", "Strength Sap"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "starmiemega": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Aqua Jet", "Bulk Up", "Triple Axel", "Waterfall", "Zen Headbutt"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Rapid Spin", "Recover", "Zen Headbutt"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "dragonitemega": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Air Slash", "Draco Meteor", "Fire Blast", "Hurricane", "Iron Head", "Roost"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "meganiummega": { + "level": 74, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Solar Beam", "Synthesis", "Weather Ball"], + "abilities": ["Mega Sol"], + "teraTypes": ["Fire", "Ghost"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Solar Beam", "Synthesis", "Solar Flare"], + "abilities": ["Mega Sol"], + "teraTypes": ["Fire", "Ghost"] + } + ] + }, + "feraligatrmega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Body Slam", "Double-Edge", "Dragon Dance", "Earthquake", "Liquidation"], + "abilities": ["Dragonize"], + "teraTypes": ["Dragon", "Ghost"] + } + ] + }, + "emboarmega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bulk Up", "Drain Punch", "Flare Blitz", "Trailblaze"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "skarmorymega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Brave Bird", "Drill Run", "Roost", "Swords Dance"], + "abilities": ["Huge Power"], + "teraTypes": ["Ground"] + } + ] + }, + "froslassmega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Aurora Veil", "Blizzard", "Nasty Plot", "Shadow Ball"], + "abilities": ["Snow Warning"], + "teraTypes": ["Fairy"] + } + ] + }, + "excadrillmega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Iron Head", "Rock Slide", "Sandstorm", "Thousand Arrows"], + "abilities": ["It's Excadrillin' Time!"], + "teraTypes": ["Ghost"] + } + ] + }, + "scolipedemega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Megahorn", "Poison Jab", "Protect", "Swords Dance"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "scraftymega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Drain Punch", "Knock Off", "Poison Jab"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "eelektrossmega": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Flamethrower", "Giga Drain", "Volt Switch", "Wild Charge"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "chandeluremega": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Fire Blast", "Flame Charge", "Shadow Ball"], + "abilities": ["Shadow Tag"], + "teraTypes": ["Fairy", "Ghost", "Grass"] + } + ] + }, + "chesnaughtmega": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Synthesis", "Wood Hammer"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "delphoxmega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Fire Blast", "Grass Knot", "Nasty Plot", "Psyshock"], + "abilities": ["Discourage"], + "teraTypes": ["Ghost"] + } + ] + }, + "greninjamega": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Gunk Shot", "Hydro Pump", "Ice Beam"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "pyroarmega": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Fire Blast", "Hyper Voice", "Will-O-Wisp"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "floettemega": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Protect", "Wish"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "malamarmega": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Knock Off", "Rest", "Sleep Talk", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "barbaraclemega": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Cross Chop", "Earthquake", "Liquidation", "Shell Smash", "Stone Edge"], + "abilities": ["Huge Power"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "dragalgemega": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Flip Turn", "Sludge Wave", "Toxic", "Toxic Spikes"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "hawluchamega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Brave Bird", "Drain Punch", "Swords Dance", "Throat Chop"], + "abilities": ["Huge Power"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "zygardemega": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Core Enforcer", "Earth Power", "Glare", "Sludge Wave"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "drampamega": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Defog", "Draco Meteor", "Fire Blast", "Glare", "Hyper Voice", "Roost"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "falinksmega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Body Slam", "Close Combat", "Knock Off", "Swords Dance"], + "abilities": ["No Retreat"], + "teraTypes": ["Ghost"] + } + ] + }, + "raichumegax": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Body Slam", "Encore", "Knock Off", "Nuzzle", "Play Rough", "Volt Switch", "Volt Tackle"], + "abilities": ["Huge Power"], + "teraTypes": ["Dark", "Fairy", "Normal"] + } + ] + }, + "raichumegay": { + "level": 80, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Encore", "Grass Knot", "Nuzzle", "Surf", "Volt Switch", "Volt Tackle"], + "abilities": ["Regenerator"], + "teraTypes": ["Grass", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Encore", "Grass Knot", "Nasty Plot", "Surf", "Volt Tackle"], + "abilities": ["Regenerator"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "chimechomega": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Cosmic Power", "Dazzling Gleam", "Recover", "Stored Power"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "baxcaliburmega": { + "level": 75, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Glaive Rush", "Icicle Crash"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "zeraoramega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bulk Up", "Drain Punch", "Knock Off", "Plasma Fists"], + "abilities": ["Huge Power"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "absolmegaz": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Double-Edge", "Play Rough", "Sucker Punch", "Swords Dance"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "lucariomegaz": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Aura Sphere", "Dark Pulse", "Flash Cannon", "Nasty Plot"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "garchompmegaz": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Double-Edge", "Outrage", "Swords Dance", "Thousand Arrows"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + }, + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Stealth Rock", "Thousand Arrows"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "golurkmega": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Ice Punch", "Poltergeist", "Stealth Rock", "Thousand Arrows"], + "abilities": ["Huge Power"], + "teraTypes": ["Steel"] + } + ] + }, + "crabominablemega": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Earthquake", "Ice Hammer"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "meowsticfmega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "golisopodmega": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "First Impression", "Iron Head", "Pain Split", "Spikes"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Close Combat", "Iron Head", "Leech Life"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "staraptormega": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Close Combat", "Thief", "U-turn"], + "abilities": ["Huge Power"], + "teraTypes": ["Ghost"] + } + ] + }, + "tatsugiricurlymega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Pulse", "Hydro Pump", "Nasty Plot", "Rapid Spin"], + "abilities": ["Parental Bond"], + "teraTypes": ["Ghost"] + } + ] + }, + "glimmoramega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Earth Power", "Meteor Beam", "Sandstorm", "Sludge Wave"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "magearnamega": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Aura Sphere", "Flash Cannon", "Fleur Cannon", "Agility"], + "abilities": ["Soul-Heart"], + "teraTypes": ["Ghost"] + } + ] + }, + "heatranmega": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Heavy Slam", "Lava Plume", "Magma Storm", "Stealth Rock"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "darkraimega": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dark Pulse", "Sludge Bomb", "Will-O-Wisp"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "scovillainmega": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Giga Drain", "Leaf Storm", "Leech Seed", "Overheat"], + "abilities": ["Contrary"], + "teraTypes": ["Ghost"] + } + ] + }, + "noivern": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Boomburst", "Draco Meteor", "Flamethrower", "Hurricane", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Support", + "movepool": ["Defog", "Draco Meteor", "Boomburst", "Roost"], + "abilities": ["Regenerator"], + "teraTypes": ["Normal"] + } + ] + }, + "kingambit": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Iron Head", "Low Kick", "Sucker Punch", "Swords Dance"], + "abilities": ["Supreme Overlord"], + "teraTypes": ["Ghost"] + } + ] + }, + "tatsugiri": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Dragon Pulse", "Hydro Pump", "Nasty Plot", "Rapid Spin"], + "abilities": ["Parental Bond"], + "teraTypes": ["Ghost"] + } + ] + }, + "lickilicky": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Knock Off", "Protect", "Wish"], + "abilities": ["Chaos Saliva"], + "teraTypes": ["Ghost"] + }, + { + "role": "AV Pivot", + "movepool": ["Body Slam", "Dragon Tail", "Earthquake", "Explosion", "Knock Off", "Power Whip"], + "abilities": ["Chaos Saliva"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Earthquake", "Explosion", "Knock Off", "Power Whip", "Swords Dance"], + "abilities": ["Chaos Saliva"], + "teraTypes": ["Ghost"] + } + ] + }, + "skuntank": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Fire Blast", "Nasty Plot", "Shit Pulse"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Ghost"] + } + ] + }, + "hatterene": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dark Pulse", "Draining Kiss", "Psyshock"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy"] + }, + { + "role": "AV Pivot", + "movepool": ["Nuzzle", "Dark Pulse", "Draining Kiss", "Psyshock"], + "abilities": ["Magic Bounce", "Regenerator"], + "teraTypes": ["Fairy"] + } + ] + }, + "clawitzer": { + "level": 80, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "Water Pulse"], + "abilities": ["Super Mega Launcher"], + "teraTypes": ["Dragon"] + } + ] + }, + "conkeldurr": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Ice Punch", "Mach Punch"], + "abilities": ["Iron Fist"], + "teraTypes": ["Ghost", "Steel"] + } + ] + }, + "hitmonchan": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Drain Punch", "Ice Punch", "Mach Punch", "Mega Punch"], + "abilities": ["Iron Fist"], + "teraTypes": ["Ghost", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Drain Punch", "Ice Punch", "Mach Punch", "Swords Dance"], + "abilities": ["Iron Fist"], + "teraTypes": ["Ghost", "Steel"] + } + ] + }, + "smeargle": { + "level": 90, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Spore", "Sticky Web", "Stealth Rock", "Topsy-Turvy"], + "abilities": ["Prankster"], + "teraTypes": ["Ghost"] + } + ] + }, + "hippowdon": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Roar", "Slack Off", "Stealth Rock", "Thousand Arrows"], + "abilities": ["Sand Stream"], + "teraTypes": ["Ghost", "Steel"] + } + ] + }, + "tinglu": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Spikes", "Stealth Rock", "Thousand Arrows", "Whirlwind"], + "abilities": ["Vessel of Ruin"], + "teraTypes": ["Ghost", "Steel"] + } + ] + }, + "spidops": { + "level": 86, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Circle Throw", "First Impression", "Sucker Punch", "U-turn"], + "abilities": ["Regenerator", "Stakeout"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Support", + "movepool": ["Circle Throw", "First Impression", "Sticky Web", "Sucker Punch", "U-turn"], + "abilities": ["Regenerator", "Stakeout"], + "teraTypes": ["Ghost"] + } + ] + }, + "regidrago": { + "level": 75, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Dragon Dance", "Earthquake", "Explosion", "Outrage"], + "abilities": ["Dragon's Maw"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Dragon Energy", "Earthquake", "Explosion"], + "abilities": ["Dragon's Maw"], + "teraTypes": ["Dragon", "Normal"] + } + ] + }, + "minior": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Acrobatics", "Earthquake", "Explosion", "Shell Smash"], + "abilities": ["Regenerator"], + "teraTypes": ["Normal"] + } + ] + }, + "calyrexmonarch": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Press", "Dark Void", "Leaf Storm", "Photon Geyser"], + "abilities": ["Regenerator"], + "teraTypes": ["Fighting"] + } + ] + }, + "celesteela": { + "level": 100, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Explosion", "Leech Seed", "Metal Sound", "Stealth Rock"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "dusknoir": { + "level": 100, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Explosion"], + "abilities": ["Damp"], + "teraTypes": ["Dark"] + } + ] + }, + "regigigas": { + "level": 65, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Body Slam", "Crush Grip", "Drain Punch", "Knock Off"], + "abilities": ["Fast Start"], + "teraTypes": ["Ghost"] + } + ] + }, + "incineroar2": { + "level": 80, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Gigaton Hammer", "Poltergeist", "Shadow Sneak", "U-turn"], + "abilities": ["Intimidate 2"], + "teraTypes": ["Ghost"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Gigaton Hammer", "King's Shield", "Poltergeist"], + "abilities": ["Intimidate 2"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Attacker", + "movepool": ["Gigaton Hammer", "King's Shield", "Poltergeist", "Shadow Sneak"], + "abilities": ["Intimidate 2"], + "teraTypes": ["Ghost"] + } + ] + }, + "incineroar": { + "level": 88, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Fake Out", "Flare Blitz", "U-turn"], + "abilities": ["Intimidate"], + "teraTypes": ["Ghost"] + } + ] + }, + "bibarel": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Body Slam", "Power Trip", "Stored Power", "Work Up"], + "abilities": ["Simple"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Body Slam", "Power Trip", "Waterfall"], + "abilities": ["Unaware"], + "teraTypes": ["Dark", "Ghost"] + } + ] + }, + "tapufini": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dazzling Gleam", "Misty Explosion", "Surf"], + "abilities": ["Misty Surge"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Body Slam", "Power Trip", "Waterfall"], + "abilities": ["Unaware"], + "teraTypes": ["Ghost"] + } + ] + }, + "swampert": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Ice Punch", "Liquidation", "Thousand Arrows"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Flip Turn", "Knock Off", "Stealth Rock", "Thousand Arrows"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ghost"] + } + ] + }, + "serperior": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Leaf Storm", "Overheat", "Synthesis"], + "abilities": ["Contrary"], + "teraTypes": ["Dragon", "Fire", "Ghost"] + } + ] + }, + "rampardos": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Accelerock", "Earthquake", "Head Smash", "Stone Edge"], + "abilities": ["Rocky Payload"], + "teraTypes": ["Rock"] + } + ] + }, + "simisage": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Gunk Shot", "Leaf Storm", "Superpower", "Synthesis"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "bruxish": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Crunch", "Fishious Rend", "Flip Turn", "Psychic Fangs"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Water"] + } + ] + }, + "mewtwo": { + "level": 72, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Fire Blast", "Nasty Plot", "Psystrike", "Recover"], + "abilities": ["Neuroforce"], + "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": ["Regenerator"], + "teraTypes": ["Dark", "Fairy", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Leech Life", "Psychic Fangs", "Swords Dance"], + "abilities": ["Neuroforce"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Aura Sphere", "Bug Buzz", "Dark Pulse", "Earth Power", "Fire Blast", "Hydro Pump", "Nasty Plot", "Psychic", "Psyshock"], + "abilities": ["Neuroforce"], + "teraTypes": ["Dark", "Fighting", "Fire", "Ground", "Psychic", "Water"] + } + ] + }, + "honchkrow": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Heat Wave", "Sucker Punch", "U-turn"], + "abilities": ["Moxie", "Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "cacturne": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Knock Off", "Leaf Storm", "Spikes", "Sucker Punch", "Toxic Spikes"], + "abilities": ["Regenerator", "Water Absorb"], + "teraTypes": ["Ghost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Drain Punch", "Seed Bomb", "Sucker Punch", "Swords Dance"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ghost"] + } + ] + }, + "brutebonnet": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Seed Bomb", "Spore", "Sucker Punch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "ampharosmega": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dragon Pulse", "Tail Glow", "Thunderbolt", "Trailblaze"], + "abilities": ["Regenerator"], + "teraTypes": ["Electric", "Ghost"] + } + ] + }, + "gallademega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Night Slash", "Psycho Cut", "Sacred Sword", "Swords Dance"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fighting", "Ghost"] + } + ] + }, + "infernape": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Drain Punch", "Fire Punch", "Mach Punch", "Swords Dance"], + "abilities": ["Iron Fist"], + "teraTypes": ["Ghost", "Fighting"] + } + ] + }, + "tyranitar": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dark Pulse", "Fire Blast", "Hydro Pump", "Ice Beam", "Meteor Beam", "Shore Up", "Thunder Wave"], + "abilities": ["Sand Stream"], + "teraTypes": ["Ghost"] + } + ] + }, + "bastiodon": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Blastiodon", "Body Press", "Foul Play", "Iron Defense"], + "abilities": ["Regenerator"], + "teraTypes": ["Ghost"] + } + ] + }, + "seaking": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bolt Beak", "Fishious Rend", "Flip Turn", "Megahorn"], + "abilities": ["Lightning Rod", "Regenerator"], + "teraTypes": ["Electric"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Agility", "Bolt Beak", "Fishious Rend", "Megahorn"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Electric"] + } + ] + } +} diff --git a/data/mods/afd/typechart.ts b/data/mods/afd/typechart.ts new file mode 100644 index 0000000000..8b505aad04 --- /dev/null +++ b/data/mods/afd/typechart.ts @@ -0,0 +1,49 @@ +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { + fairy: { + damageTaken: { + Bug: 2, + Dark: 2, + Dragon: 3, + Electric: 0, + Fairy: 0, + Fighting: 2, + Fire: 0, + Flying: 0, + Ghost: 0, + Grass: 0, + Ground: 0, + Ice: 0, + Normal: 1, + Poison: 1, + Psychic: 0, + Rock: 0, + Steel: 1, + Stellar: 0, + Water: 0, + }, + }, + ghost: { + inherit: true, + damageTaken: { + Bug: 3, + Dark: 1, + Dragon: 1, + Electric: 1, + Fairy: 3, + Fighting: 3, + Fire: 1, + Flying: 3, + Ghost: 3, + Grass: 1, + Ground: 3, + Ice: 1, + Normal: 3, + Poison: 3, + Psychic: 1, + Rock: 3, + Steel: 3, + Stellar: 0, + Water: 1, + }, + }, +}; diff --git a/data/mods/biomechmons/abilities.ts b/data/mods/biomechmons/abilities.ts index 62b6ffd416..832ffc2bae 100644 --- a/data/mods/biomechmons/abilities.ts +++ b/data/mods/biomechmons/abilities.ts @@ -185,17 +185,20 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa (pokemon.m.scrambled.abilities as { thing: string, inSlot: string }[]).findIndex(e => this.toID(e.thing) === 'trace' && e.inSlot === 'Move'), 1); this.add('-ability', pokemon, move.name, 'Trace'); + const ppUps = move.noPPBoosts ? 0 : 3; + const basePP = this.calculatePP(move, ppUps); const newMove = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp: basePP, + maxpp: basePP, target: move.target, disabled: false, used: false, }; pokemon.baseMoveSlots.push(newMove); pokemon.moveSlots.push(newMove); + pokemon.ppUps.push(ppUps); } } return; diff --git a/data/mods/biomechmons/moves.ts b/data/mods/biomechmons/moves.ts index 1ab2c93520..c1348b090b 100644 --- a/data/mods/biomechmons/moves.ts +++ b/data/mods/biomechmons/moves.ts @@ -298,17 +298,20 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { } else { source.m.scrambled.moves.push({ thing: targetAbility.id, inSlot: 'Ability' }); const bmmMove = Dex.moves.get(targetAbility.id); + const ppUps = move.noPPBoosts ? 0 : 3; + const basePP = this.calculatePP(move, ppUps); const newMove = { move: bmmMove.name, id: bmmMove.id, - pp: bmmMove.noPPBoosts ? bmmMove.pp : bmmMove.pp * 8 / 5, - maxpp: bmmMove.noPPBoosts ? bmmMove.pp : bmmMove.pp * 8 / 5, + pp: basePP, + maxpp: basePP, target: bmmMove.target, disabled: false, used: false, }; source.baseMoveSlots.push(newMove); source.moveSlots.push(newMove); + source.ppUps.push(ppUps); } } this.singleEvent('Start', sourceAbility, target.abilityState, target); @@ -321,17 +324,20 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { } else { target.m.scrambled.moves.push({ thing: sourceAbility.id, inSlot: 'Ability' }); const bmmMove = Dex.moves.get(sourceAbility.id); + const ppUps = move.noPPBoosts ? 0 : 3; + const basePP = this.calculatePP(move, ppUps); const newMove = { move: bmmMove.name, id: bmmMove.id, - pp: bmmMove.noPPBoosts ? bmmMove.pp : bmmMove.pp * 8 / 5, - maxpp: bmmMove.noPPBoosts ? bmmMove.pp : bmmMove.pp * 8 / 5, + pp: basePP, + maxpp: basePP, target: bmmMove.target, disabled: false, used: false, }; target.baseMoveSlots.push(newMove); target.moveSlots.push(newMove); + target.ppUps.push(ppUps); } } }, diff --git a/data/mods/biomechmons/scripts.ts b/data/mods/biomechmons/scripts.ts index 199d54b805..011f507547 100644 --- a/data/mods/biomechmons/scripts.ts +++ b/data/mods/biomechmons/scripts.ts @@ -167,11 +167,13 @@ export const Scripts: ModdedBattleScriptsData = { } else { this.m.scrambled.moves.push({ thing: ability.id, inSlot: 'Ability' }); const move = Dex.moves.get(ability.id); + const ppUps = move.noPPBoosts ? 0 : 3; + const basePP = this.battle.calculatePP(move, ppUps); const newMove = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp: basePP, + maxpp: basePP, target: move.target, disabled: false, used: false, @@ -179,6 +181,7 @@ export const Scripts: ModdedBattleScriptsData = { if (!isTransform) { this.baseMoveSlots.push(newMove); this.moveSlots.push(newMove); + this.ppUps.push(ppUps); } } } @@ -322,17 +325,20 @@ export const Scripts: ModdedBattleScriptsData = { } else { this.m.scrambled.moves.push({ thing: item.id, inSlot: 'Item' }); const move = Dex.moves.get(item.id); + const ppUps = move.noPPBoosts ? 0 : 3; + const basePP = this.battle.calculatePP(move, ppUps); const newMove = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp: basePP, + maxpp: basePP, target: move.target, disabled: false, used: false, }; this.baseMoveSlots.push(newMove); this.moveSlots.push(newMove); + this.ppUps.push(ppUps); } } return true; @@ -483,16 +489,17 @@ export const Scripts: ModdedBattleScriptsData = { 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) { + for (const [i, moveSlot] of pokemon.moveSlots.entries()) { let moveName = moveSlot.move; if (moveSlot.id === 'hiddenpower') { moveName = 'Hidden Power ' + this.hpType; } + const move = this.battle.dex.moves.get(moveSlot.id); 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, + pp: Math.min(5, move.pp), + maxpp: this.battle.gen >= 5 ? Math.min(5, move.pp) : moveSlot.maxpp, target: moveSlot.target, disabled: false, used: false, diff --git a/data/mods/champions/abilities.ts b/data/mods/champions/abilities.ts new file mode 100644 index 0000000000..0ce4820418 --- /dev/null +++ b/data/mods/champions/abilities.ts @@ -0,0 +1,31 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + healer: { + inherit: true, + onResidual(pokemon) { + for (const allyActive of pokemon.adjacentAllies()) { + if (allyActive.status && this.randomChance(1, 2)) { + this.add('-activate', pokemon, 'ability: Healer'); + allyActive.cureStatus(); + } + } + }, + desc: "50% chance this Pokemon's ally has its non-volatile status condition cured at the end of each turn.", + shortDesc: "50% chance this Pokemon's ally has its status cured at the end of each turn.", + }, + shedskin: { + inherit: true, + onResidual(pokemon) { + if (pokemon.hp && pokemon.status && this.randomChance(3, 10)) { + this.debug('shed skin'); + this.add('-activate', pokemon, 'ability: Shed Skin'); + pokemon.cureStatus(); + } + }, + desc: "This Pokemon has a 30% chance to have its non-volatile status condition cured at the end of each turn.", + shortDesc: "This Pokemon has a 30% chance to have its status cured at the end of each turn.", + }, + unseenfist: { + inherit: true, + shortDesc: "This Pokemon's contact moves ignore a target's protection and deal 1/4 the usual damage.", + }, +}; diff --git a/data/mods/champions/conditions.ts b/data/mods/champions/conditions.ts new file mode 100644 index 0000000000..d85f458394 --- /dev/null +++ b/data/mods/champions/conditions.ts @@ -0,0 +1,136 @@ +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { + par: { + inherit: true, + onBeforeMove(pokemon) { + if (this.randomChance(1, 8)) { + this.add('cant', pokemon, 'par'); + return false; + } + }, + }, + slp: { + inherit: true, + onStart(target, source, sourceEffect) { + if (sourceEffect && sourceEffect.effectType === 'Ability') { + this.add('-status', target, 'slp', '[from] ability: ' + sourceEffect.name, `[of] ${source}`); + } else if (sourceEffect && sourceEffect.effectType === 'Move') { + this.add('-status', target, 'slp', `[from] move: ${sourceEffect.name}`); + } else { + this.add('-status', target, 'slp'); + } + + // 1/3 chance for a Pokemon to wake up on turn 2 + this.effectState.startTime = this.sample([2, 3, 3]); + this.effectState.time = this.effectState.startTime; + + if (target.removeVolatile('nightmare')) { + this.add('-end', target, 'Nightmare', '[silent]'); + } + }, + }, + frz: { + inherit: true, + onStart(target, source, sourceEffect) { + if (sourceEffect && sourceEffect.effectType === 'Ability') { + this.add('-status', target, 'frz', '[from] ability: ' + sourceEffect.name, `[of] ${source}`); + } else { + this.add('-status', target, 'frz'); + } + if (target.species.name === 'Shaymin-Sky' && target.baseSpecies.baseSpecies === 'Shaymin') { + target.formeChange('Shaymin', this.effect, true); + } + + this.effectState.startTime = 3; + this.effectState.time = this.effectState.startTime; + }, + onBeforeMove(pokemon, target, move) { + if (move.flags['defrost'] && !(move.id === 'burnup' && !pokemon.hasType('Fire'))) return; + pokemon.statusState.time--; + if (pokemon.statusState.time <= 0 || this.randomChance(1, 4)) { + pokemon.cureStatus(); + return; + } + this.add('cant', pokemon, 'frz'); + return false; + }, + }, + + raindance: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (attacker.effectiveWeather() !== 'raindance') 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); + } + }, + }, + primordialsea: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (attacker.effectiveWeather() !== 'primordialsea') return; + if (move.type === 'Water') { + this.debug('Rain water boost'); + return this.chainModify(1.5); + } + }, + }, + sunnyday: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (attacker.effectiveWeather() !== 'sunnyday') return; + if (move.id === 'hydrosteam') { + this.debug('Sunny Day Hydro Steam boost'); + return this.chainModify(1.5); + } + if (move.type === 'Fire') { + this.debug('Sunny Day fire boost'); + return this.chainModify(1.5); + } + if (move.type === 'Water') { + this.debug('Sunny Day water suppress'); + return this.chainModify(0.5); + } + }, + }, + desolateland: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (attacker.effectiveWeather() !== 'desolateland') return; + if (move.type === 'Fire') { + this.debug('Desolate Land fire boost'); + return this.chainModify(1.5); + } + }, + }, + sandstorm: { + inherit: true, + onModifySpD(spd, target, source) { + if (target.hasType('Rock') && source.effectiveWeather() === 'sandstorm') { + return this.modify(spd, 1.5); + } + }, + }, + snowscape: { + inherit: true, + onModifyDef(def, target, source) { + if (target.hasType('Ice') && source.effectiveWeather() === 'snowscape') { + return this.modify(def, 1.5); + } + }, + }, + // TODO: check Mega Sol's interaction with Deltastream + // deltastream: { + // inherit: true, + // onEffectiveness(typeMod, target, type, move) { + // if (move && move.effectType === 'Move' && move.category !== 'Status' && type === 'Flying' && typeMod > 0) { + // this.add('-fieldactivate', 'Delta Stream'); + // return 0; + // } + // }, + // }, +}; diff --git a/data/mods/champions/formats-data.ts b/data/mods/champions/formats-data.ts new file mode 100644 index 0000000000..b94817cdd0 --- /dev/null +++ b/data/mods/champions/formats-data.ts @@ -0,0 +1,5039 @@ +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + bulbasaur: { + isNonstandard: "Past", + tier: "Illegal", + }, + ivysaur: { + isNonstandard: "Past", + tier: "Illegal", + }, + venusaur: { + tier: "OU", + }, + venusaurmega: { + tier: "OU", + }, + venusaurgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + charmander: { + isNonstandard: "Past", + tier: "Illegal", + }, + charmeleon: { + isNonstandard: "Past", + tier: "Illegal", + }, + charizard: { + tier: "OU", + }, + charizardmegax: { + tier: "OU", + }, + charizardmegay: { + tier: "OU", + }, + charizardgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + squirtle: { + isNonstandard: "Past", + tier: "Illegal", + }, + wartortle: { + isNonstandard: "Past", + tier: "Illegal", + }, + blastoise: { + tier: "OU", + }, + blastoisemega: { + tier: "OU", + }, + blastoisegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + caterpie: { + isNonstandard: "Past", + tier: "Illegal", + }, + metapod: { + isNonstandard: "Past", + tier: "Illegal", + }, + butterfree: { + isNonstandard: "Past", + tier: "Illegal", + }, + butterfreegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + weedle: { + isNonstandard: "Past", + tier: "Illegal", + }, + kakuna: { + isNonstandard: "Past", + tier: "Illegal", + }, + beedrill: { + tier: "OU", + }, + beedrillmega: { + tier: "OU", + }, + pidgey: { + isNonstandard: "Past", + tier: "Illegal", + }, + pidgeotto: { + isNonstandard: "Past", + tier: "Illegal", + }, + pidgeot: { + tier: "OU", + }, + pidgeotmega: { + tier: "OU", + }, + rattata: { + isNonstandard: "Past", + tier: "Illegal", + }, + rattataalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + raticate: { + isNonstandard: "Past", + tier: "Illegal", + }, + raticatealola: { + isNonstandard: "Past", + tier: "Illegal", + }, + raticatealolatotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + spearow: { + isNonstandard: "Past", + tier: "Illegal", + }, + fearow: { + isNonstandard: "Past", + tier: "Illegal", + }, + ekans: { + isNonstandard: "Past", + tier: "Illegal", + }, + arbok: { + tier: "OU", + }, + pichu: { + isNonstandard: "Past", + tier: "Illegal", + }, + pichuspikyeared: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachu: { + tier: "NFE", + }, + 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: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuhoenn: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachusinnoh: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuunova: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachukalos: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachualola: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachupartner: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachustarter: { + isNonstandard: "LGPE", + tier: "Illegal", + }, + pikachugmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuworld: { + isNonstandard: "Past", + tier: "Illegal", + }, + raichu: { + tier: "OU", + }, + raichualola: { + tier: "OU", + }, + raichumegax: { + isNonstandard: "Past", + tier: "Illegal", + }, + raichumegay: { + isNonstandard: "Past", + tier: "Illegal", + }, + sandshrew: { + isNonstandard: "Past", + tier: "Illegal", + }, + sandshrewalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + sandslash: { + isNonstandard: "Past", + tier: "Illegal", + }, + sandslashalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + nidoranf: { + isNonstandard: "Past", + tier: "Illegal", + }, + nidorina: { + isNonstandard: "Past", + tier: "Illegal", + }, + nidoqueen: { + isNonstandard: "Past", + tier: "Illegal", + }, + nidoranm: { + isNonstandard: "Past", + tier: "Illegal", + }, + nidorino: { + isNonstandard: "Past", + tier: "Illegal", + }, + nidoking: { + isNonstandard: "Past", + tier: "Illegal", + }, + cleffa: { + isNonstandard: "Past", + tier: "Illegal", + }, + clefairy: { + isNonstandard: "Past", + tier: "Illegal", + }, + clefable: { + tier: "OU", + }, + clefablemega: { + tier: "OU", + }, + vulpix: { + isNonstandard: "Past", + tier: "Illegal", + }, + vulpixalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + ninetales: { + tier: "OU", + }, + ninetalesalola: { + tier: "OU", + }, + igglybuff: { + isNonstandard: "Past", + tier: "Illegal", + }, + jigglypuff: { + isNonstandard: "Past", + tier: "Illegal", + }, + wigglytuff: { + isNonstandard: "Past", + tier: "Illegal", + }, + zubat: { + isNonstandard: "Past", + tier: "Illegal", + }, + golbat: { + isNonstandard: "Past", + tier: "Illegal", + }, + crobat: { + isNonstandard: "Past", + tier: "Illegal", + }, + oddish: { + isNonstandard: "Past", + tier: "Illegal", + }, + gloom: { + isNonstandard: "Past", + tier: "Illegal", + }, + vileplume: { + isNonstandard: "Past", + tier: "Illegal", + }, + bellossom: { + isNonstandard: "Past", + tier: "Illegal", + }, + paras: { + isNonstandard: "Past", + tier: "Illegal", + }, + parasect: { + isNonstandard: "Past", + tier: "Illegal", + }, + venonat: { + isNonstandard: "Past", + tier: "Illegal", + }, + venomoth: { + isNonstandard: "Past", + tier: "Illegal", + }, + diglett: { + isNonstandard: "Past", + tier: "Illegal", + }, + diglettalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + dugtrio: { + isNonstandard: "Past", + tier: "Illegal", + }, + dugtrioalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + meowth: { + isNonstandard: "Past", + tier: "Illegal", + }, + meowthalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + meowthgalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + meowthgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + persian: { + isNonstandard: "Past", + tier: "Illegal", + }, + persianalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + perrserker: { + isNonstandard: "Past", + tier: "Illegal", + }, + psyduck: { + isNonstandard: "Past", + tier: "Illegal", + }, + golduck: { + isNonstandard: "Past", + tier: "Illegal", + }, + mankey: { + isNonstandard: "Past", + tier: "Illegal", + }, + primeape: { + isNonstandard: "Past", + tier: "Illegal", + }, + growlithe: { + isNonstandard: "Past", + tier: "Illegal", + }, + growlithehisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + arcanine: { + tier: "OU", + }, + arcaninehisui: { + tier: "OU", + }, + poliwag: { + isNonstandard: "Past", + tier: "Illegal", + }, + poliwhirl: { + isNonstandard: "Past", + tier: "Illegal", + }, + poliwrath: { + isNonstandard: "Past", + tier: "Illegal", + }, + politoed: { + tier: "OU", + }, + abra: { + isNonstandard: "Past", + tier: "Illegal", + }, + kadabra: { + isNonstandard: "Past", + tier: "Illegal", + }, + alakazam: { + tier: "OU", + }, + alakazammega: { + tier: "OU", + }, + machop: { + isNonstandard: "Past", + tier: "Illegal", + }, + machoke: { + isNonstandard: "Past", + tier: "Illegal", + }, + machamp: { + tier: "OU", + }, + machampgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + bellsprout: { + isNonstandard: "Past", + tier: "Illegal", + }, + weepinbell: { + isNonstandard: "Past", + tier: "Illegal", + }, + victreebel: { + tier: "OU", + }, + victreebelmega: { + tier: "OU", + }, + tentacool: { + isNonstandard: "Past", + tier: "Illegal", + }, + tentacruel: { + isNonstandard: "Past", + tier: "Illegal", + }, + geodude: { + isNonstandard: "Past", + tier: "Illegal", + }, + geodudealola: { + isNonstandard: "Past", + tier: "Illegal", + }, + graveler: { + isNonstandard: "Past", + tier: "Illegal", + }, + graveleralola: { + isNonstandard: "Past", + tier: "Illegal", + }, + golem: { + isNonstandard: "Past", + tier: "Illegal", + }, + golemalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + ponyta: { + isNonstandard: "Past", + tier: "Illegal", + }, + ponytagalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + rapidash: { + isNonstandard: "Past", + tier: "Illegal", + }, + rapidashgalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + slowpoke: { + isNonstandard: "Past", + tier: "Illegal", + }, + slowpokegalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + slowbro: { + tier: "OU", + }, + slowbromega: { + tier: "OU", + }, + slowbrogalar: { + tier: "OU", + }, + slowking: { + tier: "OU", + }, + slowkinggalar: { + tier: "OU", + }, + magnemite: { + isNonstandard: "Past", + tier: "Illegal", + }, + magneton: { + isNonstandard: "Past", + tier: "Illegal", + }, + magnezone: { + isNonstandard: "Past", + tier: "Illegal", + }, + farfetchd: { + isNonstandard: "Past", + tier: "Illegal", + }, + farfetchdgalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + sirfetchd: { + isNonstandard: "Past", + tier: "Illegal", + }, + doduo: { + isNonstandard: "Past", + tier: "Illegal", + }, + dodrio: { + isNonstandard: "Past", + tier: "Illegal", + }, + seel: { + isNonstandard: "Past", + tier: "Illegal", + }, + dewgong: { + isNonstandard: "Past", + tier: "Illegal", + }, + grimer: { + isNonstandard: "Past", + tier: "Illegal", + }, + grimeralola: { + isNonstandard: "Past", + tier: "Illegal", + }, + muk: { + isNonstandard: "Past", + tier: "Illegal", + }, + mukalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + shellder: { + isNonstandard: "Past", + tier: "Illegal", + }, + cloyster: { + isNonstandard: "Past", + tier: "Illegal", + }, + gastly: { + isNonstandard: "Past", + tier: "Illegal", + }, + haunter: { + isNonstandard: "Past", + tier: "Illegal", + }, + gengar: { + tier: "OU", + }, + gengarmega: { + tier: "OU", + }, + gengargmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + onix: { + isNonstandard: "Past", + tier: "Illegal", + }, + steelix: { + tier: "OU", + }, + steelixmega: { + tier: "OU", + }, + drowzee: { + isNonstandard: "Past", + tier: "Illegal", + }, + hypno: { + isNonstandard: "Past", + tier: "Illegal", + }, + krabby: { + isNonstandard: "Past", + tier: "Illegal", + }, + kingler: { + isNonstandard: "Past", + tier: "Illegal", + }, + kinglergmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + voltorb: { + isNonstandard: "Past", + tier: "Illegal", + }, + voltorbhisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + electrode: { + isNonstandard: "Past", + tier: "Illegal", + }, + electrodehisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + exeggcute: { + isNonstandard: "Past", + tier: "Illegal", + }, + exeggutor: { + isNonstandard: "Past", + tier: "Illegal", + }, + exeggutoralola: { + isNonstandard: "Past", + tier: "Illegal", + }, + cubone: { + isNonstandard: "Past", + tier: "Illegal", + }, + marowak: { + isNonstandard: "Past", + tier: "Illegal", + }, + marowakalola: { + isNonstandard: "Past", + tier: "Illegal", + }, + marowakalolatotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + tyrogue: { + isNonstandard: "Past", + tier: "Illegal", + }, + hitmonlee: { + isNonstandard: "Past", + tier: "Illegal", + }, + hitmonchan: { + isNonstandard: "Past", + tier: "Illegal", + }, + hitmontop: { + isNonstandard: "Past", + tier: "Illegal", + }, + lickitung: { + isNonstandard: "Past", + tier: "Illegal", + }, + lickilicky: { + isNonstandard: "Past", + tier: "Illegal", + }, + koffing: { + isNonstandard: "Past", + tier: "Illegal", + }, + weezing: { + isNonstandard: "Past", + tier: "Illegal", + }, + weezinggalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + rhyhorn: { + isNonstandard: "Past", + tier: "Illegal", + }, + rhydon: { + isNonstandard: "Past", + tier: "Illegal", + }, + rhyperior: { + tier: "OU", + }, + happiny: { + isNonstandard: "Past", + tier: "Illegal", + }, + chansey: { + isNonstandard: "Past", + tier: "Illegal", + }, + blissey: { + isNonstandard: "Past", + tier: "Illegal", + }, + tangela: { + isNonstandard: "Past", + tier: "Illegal", + }, + tangrowth: { + isNonstandard: "Past", + tier: "Illegal", + }, + kangaskhan: { + tier: "OU", + }, + kangaskhanmega: { + tier: "OU", + }, + horsea: { + isNonstandard: "Past", + tier: "Illegal", + }, + seadra: { + isNonstandard: "Past", + tier: "Illegal", + }, + kingdra: { + isNonstandard: "Past", + tier: "Illegal", + }, + goldeen: { + isNonstandard: "Past", + tier: "Illegal", + }, + seaking: { + isNonstandard: "Past", + tier: "Illegal", + }, + staryu: { + isNonstandard: "Past", + tier: "Illegal", + }, + starmie: { + tier: "OU", + }, + starmiemega: { + tier: "OU", + }, + mimejr: { + isNonstandard: "Past", + tier: "Illegal", + }, + mrmime: { + isNonstandard: "Past", + tier: "Illegal", + }, + mrmimegalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + mrrime: { + tier: "OU", + }, + scyther: { + isNonstandard: "Past", + tier: "Illegal", + }, + scizor: { + tier: "OU", + }, + scizormega: { + tier: "OU", + }, + kleavor: { + tier: "OU", + }, + smoochum: { + isNonstandard: "Past", + tier: "Illegal", + }, + jynx: { + isNonstandard: "Past", + tier: "Illegal", + }, + elekid: { + isNonstandard: "Past", + tier: "Illegal", + }, + electabuzz: { + isNonstandard: "Past", + tier: "Illegal", + }, + electivire: { + isNonstandard: "Past", + tier: "Illegal", + }, + magby: { + isNonstandard: "Past", + tier: "Illegal", + }, + magmar: { + isNonstandard: "Past", + tier: "Illegal", + }, + magmortar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pinsir: { + tier: "OU", + }, + pinsirmega: { + tier: "OU", + }, + tauros: { + tier: "OU", + }, + taurospaldeacombat: { + tier: "OU", + }, + taurospaldeablaze: { + tier: "OU", + }, + taurospaldeaaqua: { + tier: "OU", + }, + magikarp: { + isNonstandard: "Past", + tier: "Illegal", + }, + gyarados: { + tier: "OU", + }, + gyaradosmega: { + tier: "OU", + }, + lapras: { + isNonstandard: "Past", + tier: "Illegal", + }, + laprasgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + ditto: { + tier: "OU", + }, + eevee: { + isNonstandard: "Past", + tier: "Illegal", + }, + eeveestarter: { + isNonstandard: "LGPE", + tier: "Illegal", + }, + eeveegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + vaporeon: { + tier: "OU", + }, + jolteon: { + tier: "OU", + }, + flareon: { + tier: "OU", + }, + espeon: { + tier: "OU", + }, + umbreon: { + tier: "OU", + }, + leafeon: { + tier: "OU", + }, + glaceon: { + tier: "OU", + }, + sylveon: { + tier: "OU", + }, + porygon: { + isNonstandard: "Past", + tier: "Illegal", + }, + porygon2: { + isNonstandard: "Past", + tier: "Illegal", + }, + porygonz: { + isNonstandard: "Past", + tier: "Illegal", + }, + omanyte: { + isNonstandard: "Past", + tier: "Illegal", + }, + omastar: { + isNonstandard: "Past", + tier: "Illegal", + }, + kabuto: { + isNonstandard: "Past", + tier: "Illegal", + }, + kabutops: { + isNonstandard: "Past", + tier: "Illegal", + }, + aerodactyl: { + tier: "OU", + }, + aerodactylmega: { + tier: "OU", + }, + munchlax: { + isNonstandard: "Past", + tier: "Illegal", + }, + snorlax: { + tier: "OU", + }, + snorlaxgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + articuno: { + isNonstandard: "Past", + tier: "Illegal", + }, + articunogalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + zapdos: { + isNonstandard: "Past", + tier: "Illegal", + }, + zapdosgalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + moltres: { + isNonstandard: "Past", + tier: "Illegal", + }, + moltresgalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + dratini: { + isNonstandard: "Past", + tier: "Illegal", + }, + dragonair: { + isNonstandard: "Past", + tier: "Illegal", + }, + dragonite: { + tier: "OU", + }, + dragonitemega: { + tier: "OU", + }, + mewtwo: { + isNonstandard: "Past", + tier: "Illegal", + }, + mewtwomegax: { + isNonstandard: "Past", + tier: "Illegal", + }, + mewtwomegay: { + isNonstandard: "Past", + tier: "Illegal", + }, + mew: { + isNonstandard: "Past", + tier: "Illegal", + }, + chikorita: { + isNonstandard: "Past", + tier: "Illegal", + }, + bayleef: { + isNonstandard: "Past", + tier: "Illegal", + }, + meganium: { + tier: "OU", + }, + meganiummega: { + tier: "OU", + }, + cyndaquil: { + isNonstandard: "Past", + tier: "Illegal", + }, + quilava: { + isNonstandard: "Past", + tier: "Illegal", + }, + typhlosion: { + tier: "OU", + }, + typhlosionhisui: { + tier: "OU", + }, + totodile: { + isNonstandard: "Past", + tier: "Illegal", + }, + croconaw: { + isNonstandard: "Past", + tier: "Illegal", + }, + feraligatr: { + tier: "OU", + }, + feraligatrmega: { + tier: "OU", + }, + sentret: { + isNonstandard: "Past", + tier: "Illegal", + }, + furret: { + isNonstandard: "Past", + tier: "Illegal", + }, + hoothoot: { + isNonstandard: "Past", + tier: "Illegal", + }, + noctowl: { + isNonstandard: "Past", + tier: "Illegal", + }, + ledyba: { + isNonstandard: "Past", + tier: "Illegal", + }, + ledian: { + isNonstandard: "Past", + tier: "Illegal", + }, + spinarak: { + isNonstandard: "Past", + tier: "Illegal", + }, + ariados: { + tier: "OU", + }, + chinchou: { + isNonstandard: "Past", + tier: "Illegal", + }, + lanturn: { + isNonstandard: "Past", + tier: "Illegal", + }, + togepi: { + isNonstandard: "Past", + tier: "Illegal", + }, + togetic: { + isNonstandard: "Past", + tier: "Illegal", + }, + togekiss: { + isNonstandard: "Past", + tier: "Illegal", + }, + natu: { + isNonstandard: "Past", + tier: "Illegal", + }, + xatu: { + isNonstandard: "Past", + tier: "Illegal", + }, + mareep: { + isNonstandard: "Past", + tier: "Illegal", + }, + flaaffy: { + isNonstandard: "Past", + tier: "Illegal", + }, + ampharos: { + tier: "OU", + }, + ampharosmega: { + tier: "OU", + }, + azurill: { + isNonstandard: "Past", + tier: "Illegal", + }, + marill: { + isNonstandard: "Past", + tier: "Illegal", + }, + azumarill: { + tier: "OU", + }, + bonsly: { + isNonstandard: "Past", + tier: "Illegal", + }, + sudowoodo: { + isNonstandard: "Past", + tier: "Illegal", + }, + hoppip: { + isNonstandard: "Past", + tier: "Illegal", + }, + skiploom: { + isNonstandard: "Past", + tier: "Illegal", + }, + jumpluff: { + isNonstandard: "Past", + tier: "Illegal", + }, + aipom: { + isNonstandard: "Past", + tier: "Illegal", + }, + ambipom: { + isNonstandard: "Past", + tier: "Illegal", + }, + sunkern: { + isNonstandard: "Past", + tier: "Illegal", + }, + sunflora: { + isNonstandard: "Past", + tier: "Illegal", + }, + yanma: { + isNonstandard: "Past", + tier: "Illegal", + }, + yanmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + wooper: { + isNonstandard: "Past", + tier: "Illegal", + }, + wooperpaldea: { + isNonstandard: "Past", + tier: "Illegal", + }, + quagsire: { + isNonstandard: "Past", + tier: "Illegal", + }, + murkrow: { + isNonstandard: "Past", + tier: "Illegal", + }, + honchkrow: { + isNonstandard: "Past", + tier: "Illegal", + }, + misdreavus: { + isNonstandard: "Past", + tier: "Illegal", + }, + mismagius: { + isNonstandard: "Past", + tier: "Illegal", + }, + unown: { + isNonstandard: "Past", + tier: "Illegal", + }, + wynaut: { + isNonstandard: "Past", + tier: "Illegal", + }, + wobbuffet: { + isNonstandard: "Past", + tier: "Illegal", + }, + girafarig: { + isNonstandard: "Past", + tier: "Illegal", + }, + farigiraf: { + tier: "OU", + }, + pineco: { + isNonstandard: "Past", + tier: "Illegal", + }, + forretress: { + tier: "OU", + }, + dunsparce: { + isNonstandard: "Past", + tier: "Illegal", + }, + dudunsparce: { + isNonstandard: "Past", + tier: "Illegal", + }, + gligar: { + isNonstandard: "Past", + tier: "Illegal", + }, + gliscor: { + tier: "OU", + }, + snubbull: { + isNonstandard: "Past", + tier: "Illegal", + }, + granbull: { + isNonstandard: "Past", + tier: "Illegal", + }, + qwilfish: { + isNonstandard: "Past", + tier: "Illegal", + }, + qwilfishhisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + overqwil: { + isNonstandard: "Past", + tier: "Illegal", + }, + shuckle: { + isNonstandard: "Past", + tier: "Illegal", + }, + heracross: { + tier: "OU", + }, + heracrossmega: { + tier: "OU", + }, + sneasel: { + isNonstandard: "Past", + tier: "Illegal", + }, + sneaselhisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + weavile: { + tier: "OU", + }, + sneasler: { + tier: "OU", + }, + teddiursa: { + isNonstandard: "Past", + tier: "Illegal", + }, + ursaring: { + isNonstandard: "Past", + tier: "Illegal", + }, + ursaluna: { + isNonstandard: "Past", + tier: "Illegal", + }, + ursalunabloodmoon: { + isNonstandard: "Past", + tier: "Illegal", + }, + slugma: { + isNonstandard: "Past", + tier: "Illegal", + }, + magcargo: { + isNonstandard: "Past", + tier: "Illegal", + }, + swinub: { + isNonstandard: "Past", + tier: "Illegal", + }, + piloswine: { + isNonstandard: "Past", + tier: "Illegal", + }, + mamoswine: { + tier: "OU", + }, + corsola: { + isNonstandard: "Past", + tier: "Illegal", + }, + corsolagalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + cursola: { + isNonstandard: "Past", + tier: "Illegal", + }, + remoraid: { + isNonstandard: "Past", + tier: "Illegal", + }, + octillery: { + isNonstandard: "Past", + tier: "Illegal", + }, + delibird: { + isNonstandard: "Past", + tier: "Illegal", + }, + mantyke: { + isNonstandard: "Past", + tier: "Illegal", + }, + mantine: { + isNonstandard: "Past", + tier: "Illegal", + }, + skarmory: { + tier: "OU", + }, + skarmorymega: { + tier: "OU", + }, + houndour: { + isNonstandard: "Past", + tier: "Illegal", + }, + houndoom: { + tier: "OU", + }, + houndoommega: { + tier: "OU", + }, + phanpy: { + isNonstandard: "Past", + tier: "Illegal", + }, + donphan: { + isNonstandard: "Past", + tier: "Illegal", + }, + stantler: { + isNonstandard: "Past", + tier: "Illegal", + }, + wyrdeer: { + tier: "OU", + }, + smeargle: { + isNonstandard: "Past", + tier: "Illegal", + }, + miltank: { + isNonstandard: "Past", + tier: "Illegal", + }, + raikou: { + isNonstandard: "Past", + tier: "Illegal", + }, + entei: { + isNonstandard: "Past", + tier: "Illegal", + }, + suicune: { + isNonstandard: "Past", + tier: "Illegal", + }, + larvitar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pupitar: { + isNonstandard: "Past", + tier: "Illegal", + }, + tyranitar: { + tier: "OU", + }, + tyranitarmega: { + tier: "OU", + }, + lugia: { + isNonstandard: "Past", + tier: "Illegal", + }, + hooh: { + isNonstandard: "Past", + tier: "Illegal", + }, + celebi: { + isNonstandard: "Past", + tier: "Illegal", + }, + treecko: { + isNonstandard: "Past", + tier: "Illegal", + }, + grovyle: { + isNonstandard: "Past", + tier: "Illegal", + }, + sceptile: { + isNonstandard: "Past", + tier: "Illegal", + }, + sceptilemega: { + isNonstandard: "Past", + tier: "Illegal", + }, + torchic: { + isNonstandard: "Past", + tier: "Illegal", + }, + combusken: { + isNonstandard: "Past", + tier: "Illegal", + }, + blaziken: { + isNonstandard: "Past", + tier: "Illegal", + }, + blazikenmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + mudkip: { + isNonstandard: "Past", + tier: "Illegal", + }, + marshtomp: { + isNonstandard: "Past", + tier: "Illegal", + }, + swampert: { + isNonstandard: "Past", + tier: "Illegal", + }, + swampertmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + poochyena: { + isNonstandard: "Past", + tier: "Illegal", + }, + mightyena: { + isNonstandard: "Past", + tier: "Illegal", + }, + zigzagoon: { + isNonstandard: "Past", + tier: "Illegal", + }, + zigzagoongalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + linoone: { + isNonstandard: "Past", + tier: "Illegal", + }, + linoonegalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + obstagoon: { + isNonstandard: "Past", + tier: "Illegal", + }, + wurmple: { + isNonstandard: "Past", + tier: "Illegal", + }, + silcoon: { + isNonstandard: "Past", + tier: "Illegal", + }, + beautifly: { + isNonstandard: "Past", + tier: "Illegal", + }, + cascoon: { + isNonstandard: "Past", + tier: "Illegal", + }, + dustox: { + isNonstandard: "Past", + tier: "Illegal", + }, + lotad: { + isNonstandard: "Past", + tier: "Illegal", + }, + lombre: { + isNonstandard: "Past", + tier: "Illegal", + }, + ludicolo: { + isNonstandard: "Past", + tier: "Illegal", + }, + seedot: { + isNonstandard: "Past", + tier: "Illegal", + }, + nuzleaf: { + isNonstandard: "Past", + tier: "Illegal", + }, + shiftry: { + isNonstandard: "Past", + tier: "Illegal", + }, + taillow: { + isNonstandard: "Past", + tier: "Illegal", + }, + swellow: { + isNonstandard: "Past", + tier: "Illegal", + }, + wingull: { + isNonstandard: "Past", + tier: "Illegal", + }, + pelipper: { + tier: "OU", + }, + ralts: { + isNonstandard: "Past", + tier: "Illegal", + }, + kirlia: { + isNonstandard: "Past", + tier: "Illegal", + }, + gardevoir: { + tier: "OU", + }, + gardevoirmega: { + tier: "OU", + }, + gallade: { + tier: "OU", + }, + gallademega: { + tier: "OU", + }, + surskit: { + isNonstandard: "Past", + tier: "Illegal", + }, + masquerain: { + isNonstandard: "Past", + tier: "Illegal", + }, + shroomish: { + isNonstandard: "Past", + tier: "Illegal", + }, + breloom: { + isNonstandard: "Past", + tier: "Illegal", + }, + slakoth: { + isNonstandard: "Past", + tier: "Illegal", + }, + vigoroth: { + isNonstandard: "Past", + tier: "Illegal", + }, + slaking: { + isNonstandard: "Past", + tier: "Illegal", + }, + nincada: { + isNonstandard: "Past", + tier: "Illegal", + }, + ninjask: { + isNonstandard: "Past", + tier: "Illegal", + }, + shedinja: { + isNonstandard: "Past", + tier: "Illegal", + }, + whismur: { + isNonstandard: "Past", + tier: "Illegal", + }, + loudred: { + isNonstandard: "Past", + tier: "Illegal", + }, + exploud: { + isNonstandard: "Past", + tier: "Illegal", + }, + makuhita: { + isNonstandard: "Past", + tier: "Illegal", + }, + hariyama: { + isNonstandard: "Past", + tier: "Illegal", + }, + nosepass: { + isNonstandard: "Past", + tier: "Illegal", + }, + probopass: { + isNonstandard: "Past", + tier: "Illegal", + }, + skitty: { + isNonstandard: "Past", + tier: "Illegal", + }, + delcatty: { + isNonstandard: "Past", + tier: "Illegal", + }, + sableye: { + tier: "OU", + }, + sableyemega: { + tier: "OU", + }, + mawile: { + isNonstandard: "Past", + tier: "Illegal", + }, + mawilemega: { + isNonstandard: "Past", + tier: "Illegal", + }, + aron: { + isNonstandard: "Past", + tier: "Illegal", + }, + lairon: { + isNonstandard: "Past", + tier: "Illegal", + }, + aggron: { + tier: "OU", + }, + aggronmega: { + tier: "OU", + }, + meditite: { + isNonstandard: "Past", + tier: "Illegal", + }, + medicham: { + tier: "OU", + }, + medichammega: { + tier: "OU", + }, + electrike: { + isNonstandard: "Past", + tier: "Illegal", + }, + manectric: { + tier: "OU", + }, + manectricmega: { + tier: "OU", + }, + plusle: { + isNonstandard: "Past", + tier: "Illegal", + }, + minun: { + isNonstandard: "Past", + tier: "Illegal", + }, + volbeat: { + isNonstandard: "Past", + tier: "Illegal", + }, + illumise: { + isNonstandard: "Past", + tier: "Illegal", + }, + budew: { + isNonstandard: "Past", + tier: "Illegal", + }, + roselia: { + isNonstandard: "Past", + tier: "Illegal", + }, + roserade: { + tier: "OU", + }, + gulpin: { + isNonstandard: "Past", + tier: "Illegal", + }, + swalot: { + isNonstandard: "Past", + tier: "Illegal", + }, + carvanha: { + isNonstandard: "Past", + tier: "Illegal", + }, + sharpedo: { + tier: "OU", + }, + sharpedomega: { + tier: "OU", + }, + wailmer: { + isNonstandard: "Past", + tier: "Illegal", + }, + wailord: { + isNonstandard: "Past", + tier: "Illegal", + }, + numel: { + isNonstandard: "Past", + tier: "Illegal", + }, + camerupt: { + tier: "OU", + }, + cameruptmega: { + tier: "OU", + }, + torkoal: { + tier: "OU", + }, + spoink: { + isNonstandard: "Past", + tier: "Illegal", + }, + grumpig: { + isNonstandard: "Past", + tier: "Illegal", + }, + spinda: { + isNonstandard: "Past", + tier: "Illegal", + }, + trapinch: { + isNonstandard: "Past", + tier: "Illegal", + }, + vibrava: { + isNonstandard: "Past", + tier: "Illegal", + }, + flygon: { + isNonstandard: "Past", + tier: "Illegal", + }, + cacnea: { + isNonstandard: "Past", + tier: "Illegal", + }, + cacturne: { + isNonstandard: "Past", + tier: "Illegal", + }, + swablu: { + isNonstandard: "Past", + tier: "Illegal", + }, + altaria: { + tier: "OU", + }, + altariamega: { + tier: "OU", + }, + zangoose: { + isNonstandard: "Past", + tier: "Illegal", + }, + seviper: { + isNonstandard: "Past", + tier: "Illegal", + }, + lunatone: { + isNonstandard: "Past", + tier: "Illegal", + }, + solrock: { + isNonstandard: "Past", + tier: "Illegal", + }, + barboach: { + isNonstandard: "Past", + tier: "Illegal", + }, + whiscash: { + isNonstandard: "Past", + tier: "Illegal", + }, + corphish: { + isNonstandard: "Past", + tier: "Illegal", + }, + crawdaunt: { + isNonstandard: "Past", + tier: "Illegal", + }, + baltoy: { + isNonstandard: "Past", + tier: "Illegal", + }, + claydol: { + isNonstandard: "Past", + tier: "Illegal", + }, + lileep: { + isNonstandard: "Past", + tier: "Illegal", + }, + cradily: { + isNonstandard: "Past", + tier: "Illegal", + }, + anorith: { + isNonstandard: "Past", + tier: "Illegal", + }, + armaldo: { + isNonstandard: "Past", + tier: "Illegal", + }, + feebas: { + isNonstandard: "Past", + tier: "Illegal", + }, + milotic: { + tier: "OU", + }, + castform: { + tier: "OU", + }, + castformsunny: { + isNonstandard: "Past", + }, + castformrainy: { + isNonstandard: "Past", + }, + castformsnowy: { + isNonstandard: "Past", + }, + kecleon: { + isNonstandard: "Past", + tier: "Illegal", + }, + shuppet: { + isNonstandard: "Past", + tier: "Illegal", + }, + banette: { + tier: "OU", + }, + banettemega: { + tier: "OU", + }, + duskull: { + isNonstandard: "Past", + tier: "Illegal", + }, + dusclops: { + isNonstandard: "Past", + tier: "Illegal", + }, + dusknoir: { + isNonstandard: "Past", + tier: "Illegal", + }, + tropius: { + isNonstandard: "Past", + tier: "Illegal", + }, + chingling: { + isNonstandard: "Past", + tier: "Illegal", + }, + chimecho: { + tier: "OU", + }, + chimechomega: { + tier: "OU", + }, + absol: { + tier: "OU", + }, + absolmega: { + tier: "OU", + }, + absolmegaz: { + isNonstandard: "Past", + tier: "Illegal", + }, + snorunt: { + isNonstandard: "Past", + tier: "Illegal", + }, + glalie: { + tier: "OU", + }, + glaliemega: { + tier: "OU", + }, + froslass: { + tier: "OU", + }, + froslassmega: { + tier: "OU", + }, + spheal: { + isNonstandard: "Past", + tier: "Illegal", + }, + sealeo: { + isNonstandard: "Past", + tier: "Illegal", + }, + walrein: { + isNonstandard: "Past", + tier: "Illegal", + }, + clamperl: { + isNonstandard: "Past", + tier: "Illegal", + }, + huntail: { + isNonstandard: "Past", + tier: "Illegal", + }, + gorebyss: { + isNonstandard: "Past", + tier: "Illegal", + }, + relicanth: { + isNonstandard: "Past", + tier: "Illegal", + }, + luvdisc: { + isNonstandard: "Past", + tier: "Illegal", + }, + bagon: { + isNonstandard: "Past", + tier: "Illegal", + }, + shelgon: { + isNonstandard: "Past", + tier: "Illegal", + }, + salamence: { + isNonstandard: "Past", + tier: "Illegal", + }, + salamencemega: { + isNonstandard: "Past", + tier: "Illegal", + }, + beldum: { + isNonstandard: "Past", + tier: "Illegal", + }, + metang: { + isNonstandard: "Past", + tier: "Illegal", + }, + metagross: { + isNonstandard: "Past", + tier: "Illegal", + }, + metagrossmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + regirock: { + isNonstandard: "Past", + tier: "Illegal", + }, + regice: { + isNonstandard: "Past", + tier: "Illegal", + }, + registeel: { + isNonstandard: "Past", + tier: "Illegal", + }, + latias: { + isNonstandard: "Past", + tier: "Illegal", + }, + latiasmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + latios: { + isNonstandard: "Past", + tier: "Illegal", + }, + latiosmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + kyogre: { + isNonstandard: "Past", + tier: "Illegal", + }, + kyogreprimal: { + isNonstandard: "Past", + tier: "Illegal", + }, + groudon: { + isNonstandard: "Past", + tier: "Illegal", + }, + groudonprimal: { + isNonstandard: "Past", + tier: "Illegal", + }, + rayquaza: { + isNonstandard: "Past", + tier: "Illegal", + }, + rayquazamega: { + isNonstandard: "Past", + tier: "Illegal", + }, + jirachi: { + isNonstandard: "Past", + tier: "Illegal", + }, + deoxys: { + isNonstandard: "Past", + tier: "Illegal", + }, + deoxysattack: { + isNonstandard: "Past", + tier: "Illegal", + }, + deoxysdefense: { + isNonstandard: "Past", + tier: "Illegal", + }, + deoxysspeed: { + isNonstandard: "Past", + tier: "Illegal", + }, + turtwig: { + isNonstandard: "Past", + tier: "Illegal", + }, + grotle: { + isNonstandard: "Past", + tier: "Illegal", + }, + torterra: { + tier: "OU", + }, + chimchar: { + isNonstandard: "Past", + tier: "Illegal", + }, + monferno: { + isNonstandard: "Past", + tier: "Illegal", + }, + infernape: { + tier: "OU", + }, + piplup: { + isNonstandard: "Past", + tier: "Illegal", + }, + prinplup: { + isNonstandard: "Past", + tier: "Illegal", + }, + empoleon: { + tier: "OU", + }, + starly: { + isNonstandard: "Past", + tier: "Illegal", + }, + staravia: { + isNonstandard: "Past", + tier: "Illegal", + }, + staraptor: { + isNonstandard: "Past", + tier: "Illegal", + }, + staraptormega: { + isNonstandard: "Future", + tier: "Illegal", + }, + bidoof: { + isNonstandard: "Past", + tier: "Illegal", + }, + bibarel: { + isNonstandard: "Past", + tier: "Illegal", + }, + kricketot: { + isNonstandard: "Past", + tier: "Illegal", + }, + kricketune: { + isNonstandard: "Past", + tier: "Illegal", + }, + shinx: { + isNonstandard: "Past", + tier: "Illegal", + }, + luxio: { + isNonstandard: "Past", + tier: "Illegal", + }, + luxray: { + tier: "OU", + }, + cranidos: { + isNonstandard: "Past", + tier: "Illegal", + }, + rampardos: { + tier: "OU", + }, + shieldon: { + isNonstandard: "Past", + tier: "Illegal", + }, + bastiodon: { + tier: "OU", + }, + burmy: { + isNonstandard: "Past", + tier: "Illegal", + }, + wormadam: { + isNonstandard: "Past", + tier: "Illegal", + }, + wormadamsandy: { + isNonstandard: "Past", + tier: "Illegal", + }, + wormadamtrash: { + isNonstandard: "Past", + tier: "Illegal", + }, + mothim: { + isNonstandard: "Past", + tier: "Illegal", + }, + combee: { + isNonstandard: "Past", + tier: "Illegal", + }, + vespiquen: { + isNonstandard: "Past", + tier: "Illegal", + }, + pachirisu: { + isNonstandard: "Past", + tier: "Illegal", + }, + buizel: { + isNonstandard: "Past", + tier: "Illegal", + }, + floatzel: { + isNonstandard: "Past", + tier: "Illegal", + }, + cherubi: { + isNonstandard: "Past", + tier: "Illegal", + }, + cherrim: { + isNonstandard: "Past", + tier: "Illegal", + }, + cherrimsunshine: { + isNonstandard: "Past", + }, + shellos: { + isNonstandard: "Past", + tier: "Illegal", + }, + gastrodon: { + isNonstandard: "Past", + tier: "Illegal", + }, + drifloon: { + isNonstandard: "Past", + tier: "Illegal", + }, + drifblim: { + isNonstandard: "Past", + tier: "Illegal", + }, + buneary: { + isNonstandard: "Past", + tier: "Illegal", + }, + lopunny: { + tier: "OU", + }, + lopunnymega: { + tier: "OU", + }, + glameow: { + isNonstandard: "Past", + tier: "Illegal", + }, + purugly: { + isNonstandard: "Past", + tier: "Illegal", + }, + stunky: { + isNonstandard: "Past", + tier: "Illegal", + }, + skuntank: { + isNonstandard: "Past", + tier: "Illegal", + }, + bronzor: { + isNonstandard: "Past", + tier: "Illegal", + }, + bronzong: { + isNonstandard: "Past", + tier: "Illegal", + }, + chatot: { + isNonstandard: "Past", + tier: "Illegal", + }, + spiritomb: { + tier: "OU", + }, + gible: { + isNonstandard: "Past", + tier: "Illegal", + }, + gabite: { + isNonstandard: "Past", + tier: "Illegal", + }, + garchomp: { + tier: "OU", + }, + garchompmega: { + tier: "OU", + }, + garchompmegaz: { + isNonstandard: "Past", + tier: "Illegal", + }, + riolu: { + isNonstandard: "Past", + tier: "Illegal", + }, + lucario: { + tier: "OU", + }, + lucariomega: { + tier: "OU", + }, + lucariomegaz: { + isNonstandard: "Past", + tier: "Illegal", + }, + hippopotas: { + isNonstandard: "Past", + tier: "Illegal", + }, + hippowdon: { + tier: "OU", + }, + skorupi: { + isNonstandard: "Past", + tier: "Illegal", + }, + drapion: { + isNonstandard: "Past", + tier: "Illegal", + }, + croagunk: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxicroak: { + tier: "OU", + }, + carnivine: { + isNonstandard: "Past", + tier: "Illegal", + }, + finneon: { + isNonstandard: "Past", + tier: "Illegal", + }, + lumineon: { + isNonstandard: "Past", + tier: "Illegal", + }, + snover: { + isNonstandard: "Past", + tier: "Illegal", + }, + abomasnow: { + tier: "OU", + }, + abomasnowmega: { + tier: "OU", + }, + rotom: { + tier: "OU", + }, + rotomheat: { + tier: "OU", + }, + rotomwash: { + tier: "OU", + }, + rotomfrost: { + tier: "OU", + }, + rotomfan: { + tier: "OU", + }, + rotommow: { + tier: "OU", + }, + uxie: { + isNonstandard: "Past", + tier: "Illegal", + }, + mesprit: { + isNonstandard: "Past", + tier: "Illegal", + }, + azelf: { + isNonstandard: "Past", + tier: "Illegal", + }, + dialga: { + isNonstandard: "Past", + tier: "Illegal", + }, + dialgaorigin: { + isNonstandard: "Past", + tier: "Illegal", + }, + palkia: { + isNonstandard: "Past", + tier: "Illegal", + }, + palkiaorigin: { + isNonstandard: "Past", + tier: "Illegal", + }, + heatran: { + isNonstandard: "Past", + tier: "Illegal", + }, + heatranmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + regigigas: { + isNonstandard: "Past", + tier: "Illegal", + }, + giratina: { + isNonstandard: "Past", + tier: "Illegal", + }, + giratinaorigin: { + isNonstandard: "Past", + tier: "Illegal", + }, + cresselia: { + isNonstandard: "Past", + tier: "Illegal", + }, + phione: { + isNonstandard: "Past", + tier: "Illegal", + }, + manaphy: { + isNonstandard: "Past", + tier: "Illegal", + }, + darkrai: { + isNonstandard: "Past", + tier: "Illegal", + }, + darkraimega: { + isNonstandard: "Future", + tier: "Illegal", + }, + shaymin: { + isNonstandard: "Past", + tier: "Illegal", + }, + shayminsky: { + isNonstandard: "Past", + tier: "Illegal", + }, + arceus: { + isNonstandard: "Past", + tier: "Illegal", + }, + victini: { + isNonstandard: "Past", + tier: "Illegal", + }, + snivy: { + isNonstandard: "Past", + tier: "Illegal", + }, + servine: { + isNonstandard: "Past", + tier: "Illegal", + }, + serperior: { + tier: "OU", + }, + tepig: { + isNonstandard: "Past", + tier: "Illegal", + }, + pignite: { + isNonstandard: "Past", + tier: "Illegal", + }, + emboar: { + tier: "OU", + }, + emboarmega: { + tier: "OU", + }, + oshawott: { + isNonstandard: "Past", + tier: "Illegal", + }, + dewott: { + isNonstandard: "Past", + tier: "Illegal", + }, + samurott: { + tier: "OU", + }, + samurotthisui: { + tier: "OU", + }, + patrat: { + isNonstandard: "Past", + tier: "Illegal", + }, + watchog: { + tier: "OU", + }, + lillipup: { + isNonstandard: "Past", + tier: "Illegal", + }, + herdier: { + isNonstandard: "Past", + tier: "Illegal", + }, + stoutland: { + isNonstandard: "Past", + tier: "Illegal", + }, + purrloin: { + isNonstandard: "Past", + tier: "Illegal", + }, + liepard: { + tier: "OU", + }, + pansage: { + isNonstandard: "Past", + tier: "Illegal", + }, + simisage: { + tier: "OU", + }, + pansear: { + isNonstandard: "Past", + tier: "Illegal", + }, + simisear: { + tier: "OU", + }, + panpour: { + isNonstandard: "Past", + tier: "Illegal", + }, + simipour: { + tier: "OU", + }, + munna: { + isNonstandard: "Past", + tier: "Illegal", + }, + musharna: { + isNonstandard: "Past", + tier: "Illegal", + }, + pidove: { + isNonstandard: "Past", + tier: "Illegal", + }, + tranquill: { + isNonstandard: "Past", + tier: "Illegal", + }, + unfezant: { + isNonstandard: "Past", + tier: "Illegal", + }, + blitzle: { + isNonstandard: "Past", + tier: "Illegal", + }, + zebstrika: { + isNonstandard: "Past", + tier: "Illegal", + }, + roggenrola: { + isNonstandard: "Past", + tier: "Illegal", + }, + boldore: { + isNonstandard: "Past", + tier: "Illegal", + }, + gigalith: { + isNonstandard: "Past", + tier: "Illegal", + }, + woobat: { + isNonstandard: "Past", + tier: "Illegal", + }, + swoobat: { + isNonstandard: "Past", + tier: "Illegal", + }, + drilbur: { + isNonstandard: "Past", + tier: "Illegal", + }, + excadrill: { + tier: "OU", + }, + excadrillmega: { + tier: "OU", + }, + audino: { + tier: "OU", + }, + audinomega: { + tier: "OU", + }, + timburr: { + isNonstandard: "Past", + tier: "Illegal", + }, + gurdurr: { + isNonstandard: "Past", + tier: "Illegal", + }, + conkeldurr: { + tier: "OU", + }, + tympole: { + isNonstandard: "Past", + tier: "Illegal", + }, + palpitoad: { + isNonstandard: "Past", + tier: "Illegal", + }, + seismitoad: { + isNonstandard: "Past", + tier: "Illegal", + }, + throh: { + isNonstandard: "Past", + tier: "Illegal", + }, + sawk: { + isNonstandard: "Past", + tier: "Illegal", + }, + sewaddle: { + isNonstandard: "Past", + tier: "Illegal", + }, + swadloon: { + isNonstandard: "Past", + tier: "Illegal", + }, + leavanny: { + isNonstandard: "Past", + tier: "Illegal", + }, + venipede: { + isNonstandard: "Past", + tier: "Illegal", + }, + whirlipede: { + isNonstandard: "Past", + tier: "Illegal", + }, + scolipede: { + isNonstandard: "Past", + tier: "Illegal", + }, + scolipedemega: { + isNonstandard: "Future", + tier: "Illegal", + }, + cottonee: { + isNonstandard: "Past", + tier: "Illegal", + }, + whimsicott: { + tier: "OU", + }, + petilil: { + isNonstandard: "Past", + tier: "Illegal", + }, + lilligant: { + isNonstandard: "Past", + tier: "Illegal", + }, + lilliganthisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + basculin: { + isNonstandard: "Past", + tier: "Illegal", + }, + basculegion: { + tier: "OU", + }, + basculegionf: { + tier: "OU", + }, + sandile: { + isNonstandard: "Past", + tier: "Illegal", + }, + krokorok: { + isNonstandard: "Past", + tier: "Illegal", + }, + krookodile: { + tier: "OU", + }, + darumaka: { + isNonstandard: "Past", + tier: "Illegal", + }, + darumakagalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + darmanitan: { + isNonstandard: "Past", + tier: "Illegal", + }, + darmanitanzen: { + isNonstandard: "Past", + }, + darmanitangalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + darmanitangalarzen: { + isNonstandard: "Past", + }, + maractus: { + isNonstandard: "Past", + tier: "Illegal", + }, + dwebble: { + isNonstandard: "Past", + tier: "Illegal", + }, + crustle: { + isNonstandard: "Past", + tier: "Illegal", + }, + scraggy: { + isNonstandard: "Past", + tier: "Illegal", + }, + scrafty: { + isNonstandard: "Past", + tier: "Illegal", + }, + scraftymega: { + isNonstandard: "Future", + tier: "Illegal", + }, + sigilyph: { + isNonstandard: "Past", + tier: "Illegal", + }, + yamask: { + isNonstandard: "Past", + tier: "Illegal", + }, + yamaskgalar: { + isNonstandard: "Past", + tier: "Illegal", + }, + cofagrigus: { + tier: "OU", + }, + runerigus: { + tier: "OU", + }, + tirtouga: { + isNonstandard: "Past", + tier: "Illegal", + }, + carracosta: { + isNonstandard: "Past", + tier: "Illegal", + }, + archen: { + isNonstandard: "Past", + tier: "Illegal", + }, + archeops: { + isNonstandard: "Past", + tier: "Illegal", + }, + trubbish: { + isNonstandard: "Past", + tier: "Illegal", + }, + garbodor: { + tier: "OU", + }, + garbodorgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + zorua: { + isNonstandard: "Past", + tier: "Illegal", + }, + zoruahisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + zoroark: { + tier: "OU", + }, + zoroarkhisui: { + tier: "OU", + }, + minccino: { + isNonstandard: "Past", + tier: "Illegal", + }, + cinccino: { + isNonstandard: "Past", + tier: "Illegal", + }, + gothita: { + isNonstandard: "Past", + tier: "Illegal", + }, + gothorita: { + isNonstandard: "Past", + tier: "Illegal", + }, + gothitelle: { + isNonstandard: "Past", + tier: "Illegal", + }, + solosis: { + isNonstandard: "Past", + tier: "Illegal", + }, + duosion: { + isNonstandard: "Past", + tier: "Illegal", + }, + reuniclus: { + tier: "OU", + }, + ducklett: { + isNonstandard: "Past", + tier: "Illegal", + }, + swanna: { + isNonstandard: "Past", + tier: "Illegal", + }, + vanillite: { + isNonstandard: "Past", + tier: "Illegal", + }, + vanillish: { + isNonstandard: "Past", + tier: "Illegal", + }, + vanilluxe: { + tier: "OU", + }, + deerling: { + isNonstandard: "Past", + tier: "Illegal", + }, + sawsbuck: { + isNonstandard: "Past", + tier: "Illegal", + }, + emolga: { + tier: "OU", + }, + karrablast: { + isNonstandard: "Past", + tier: "Illegal", + }, + escavalier: { + isNonstandard: "Past", + tier: "Illegal", + }, + foongus: { + isNonstandard: "Past", + tier: "Illegal", + }, + amoonguss: { + isNonstandard: "Past", + tier: "Illegal", + }, + frillish: { + isNonstandard: "Past", + tier: "Illegal", + }, + jellicent: { + isNonstandard: "Past", + tier: "Illegal", + }, + alomomola: { + isNonstandard: "Past", + tier: "Illegal", + }, + joltik: { + isNonstandard: "Past", + tier: "Illegal", + }, + galvantula: { + isNonstandard: "Past", + tier: "Illegal", + }, + ferroseed: { + isNonstandard: "Past", + tier: "Illegal", + }, + ferrothorn: { + isNonstandard: "Past", + tier: "Illegal", + }, + klink: { + isNonstandard: "Past", + tier: "Illegal", + }, + klang: { + isNonstandard: "Past", + tier: "Illegal", + }, + klinklang: { + isNonstandard: "Past", + tier: "Illegal", + }, + tynamo: { + isNonstandard: "Past", + tier: "Illegal", + }, + eelektrik: { + isNonstandard: "Past", + tier: "Illegal", + }, + eelektross: { + isNonstandard: "Past", + tier: "Illegal", + }, + eelektrossmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + elgyem: { + isNonstandard: "Past", + tier: "Illegal", + }, + beheeyem: { + isNonstandard: "Past", + tier: "Illegal", + }, + litwick: { + isNonstandard: "Past", + tier: "Illegal", + }, + lampent: { + isNonstandard: "Past", + tier: "Illegal", + }, + chandelure: { + tier: "OU", + }, + chandeluremega: { + tier: "OU", + }, + axew: { + isNonstandard: "Past", + tier: "Illegal", + }, + fraxure: { + isNonstandard: "Past", + tier: "Illegal", + }, + haxorus: { + isNonstandard: "Past", + tier: "Illegal", + }, + cubchoo: { + isNonstandard: "Past", + tier: "Illegal", + }, + beartic: { + tier: "OU", + }, + cryogonal: { + isNonstandard: "Past", + tier: "Illegal", + }, + shelmet: { + isNonstandard: "Past", + tier: "Illegal", + }, + accelgor: { + isNonstandard: "Past", + tier: "Illegal", + }, + stunfisk: { + tier: "OU", + }, + stunfiskgalar: { + tier: "OU", + }, + mienfoo: { + isNonstandard: "Past", + tier: "Illegal", + }, + mienshao: { + isNonstandard: "Past", + tier: "Illegal", + }, + druddigon: { + isNonstandard: "Past", + tier: "Illegal", + }, + golett: { + isNonstandard: "Past", + tier: "Illegal", + }, + golurk: { + tier: "OU", + }, + golurkmega: { + tier: "OU", + }, + pawniard: { + isNonstandard: "Past", + tier: "Illegal", + }, + bisharp: { + isNonstandard: "Past", + tier: "Illegal", + }, + bouffalant: { + isNonstandard: "Past", + tier: "Illegal", + }, + rufflet: { + isNonstandard: "Past", + tier: "Illegal", + }, + braviary: { + isNonstandard: "Past", + tier: "Illegal", + }, + braviaryhisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + vullaby: { + isNonstandard: "Past", + tier: "Illegal", + }, + mandibuzz: { + isNonstandard: "Past", + tier: "Illegal", + }, + heatmor: { + isNonstandard: "Past", + tier: "Illegal", + }, + durant: { + isNonstandard: "Past", + tier: "Illegal", + }, + deino: { + isNonstandard: "Past", + tier: "Illegal", + }, + zweilous: { + isNonstandard: "Past", + tier: "Illegal", + }, + hydreigon: { + tier: "OU", + }, + larvesta: { + isNonstandard: "Past", + tier: "Illegal", + }, + volcarona: { + tier: "OU", + }, + cobalion: { + isNonstandard: "Past", + tier: "Illegal", + }, + terrakion: { + isNonstandard: "Past", + tier: "Illegal", + }, + virizion: { + isNonstandard: "Past", + tier: "Illegal", + }, + tornadus: { + isNonstandard: "Past", + tier: "Illegal", + }, + tornadustherian: { + isNonstandard: "Past", + tier: "Illegal", + }, + thundurus: { + isNonstandard: "Past", + tier: "Illegal", + }, + thundurustherian: { + isNonstandard: "Past", + tier: "Illegal", + }, + reshiram: { + isNonstandard: "Past", + tier: "Illegal", + }, + zekrom: { + isNonstandard: "Past", + tier: "Illegal", + }, + landorus: { + isNonstandard: "Past", + tier: "Illegal", + }, + landorustherian: { + isNonstandard: "Past", + tier: "Illegal", + }, + kyurem: { + isNonstandard: "Past", + tier: "Illegal", + }, + kyuremblack: { + isNonstandard: "Past", + tier: "Illegal", + }, + kyuremwhite: { + isNonstandard: "Past", + tier: "Illegal", + }, + keldeo: { + isNonstandard: "Past", + tier: "Illegal", + }, + meloetta: { + isNonstandard: "Past", + tier: "Illegal", + }, + genesect: { + isNonstandard: "Past", + tier: "Illegal", + }, + genesectburn: { + isNonstandard: "Past", + tier: "Illegal", + }, + genesectchill: { + isNonstandard: "Past", + tier: "Illegal", + }, + genesectdouse: { + isNonstandard: "Past", + tier: "Illegal", + }, + genesectshock: { + isNonstandard: "Past", + tier: "Illegal", + }, + chespin: { + isNonstandard: "Past", + tier: "Illegal", + }, + quilladin: { + isNonstandard: "Past", + tier: "Illegal", + }, + chesnaught: { + tier: "OU", + }, + chesnaughtmega: { + tier: "OU", + }, + fennekin: { + isNonstandard: "Past", + tier: "Illegal", + }, + braixen: { + isNonstandard: "Past", + tier: "Illegal", + }, + delphox: { + tier: "OU", + }, + delphoxmega: { + tier: "OU", + }, + froakie: { + isNonstandard: "Past", + tier: "Illegal", + }, + frogadier: { + isNonstandard: "Past", + tier: "Illegal", + }, + greninja: { + tier: "OU", + }, + greninjaash: { + isNonstandard: "Past", + tier: "Illegal", + }, + greninjabond: { + isNonstandard: "Past", + tier: "Illegal", + }, + greninjamega: { + tier: "OU", + }, + bunnelby: { + isNonstandard: "Past", + tier: "Illegal", + }, + diggersby: { + tier: "OU", + }, + fletchling: { + isNonstandard: "Past", + tier: "Illegal", + }, + fletchinder: { + isNonstandard: "Past", + tier: "Illegal", + }, + talonflame: { + tier: "OU", + }, + scatterbug: { + isNonstandard: "Past", + tier: "Illegal", + }, + spewpa: { + isNonstandard: "Past", + tier: "Illegal", + }, + vivillon: { + tier: "OU", + }, + litleo: { + isNonstandard: "Past", + tier: "Illegal", + }, + pyroar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pyroarmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + flabebe: { + isNonstandard: "Past", + tier: "Illegal", + }, + floette: { + isNonstandard: "Past", + tier: "Illegal", + }, + floetteeternal: { + tier: "OU", + }, + floettemega: { + tier: "OU", + }, + florges: { + tier: "OU", + }, + skiddo: { + isNonstandard: "Past", + tier: "Illegal", + }, + gogoat: { + isNonstandard: "Past", + tier: "Illegal", + }, + pancham: { + isNonstandard: "Past", + tier: "Illegal", + }, + pangoro: { + tier: "OU", + }, + furfrou: { + tier: "OU", + }, + espurr: { + isNonstandard: "Past", + tier: "Illegal", + }, + meowstic: { + tier: "OU", + }, + meowsticmmega: { + tier: "OU", + }, + meowsticfmega: { + tier: "OU", + }, + honedge: { + isNonstandard: "Past", + tier: "Illegal", + }, + doublade: { + isNonstandard: "Past", + tier: "Illegal", + }, + aegislash: { + tier: "OU", + }, + aegislashblade: { + isNonstandard: "Past", + }, + spritzee: { + isNonstandard: "Past", + tier: "Illegal", + }, + aromatisse: { + tier: "OU", + }, + swirlix: { + isNonstandard: "Past", + tier: "Illegal", + }, + slurpuff: { + tier: "OU", + }, + inkay: { + isNonstandard: "Past", + tier: "Illegal", + }, + malamar: { + isNonstandard: "Past", + tier: "Illegal", + }, + malamarmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + binacle: { + isNonstandard: "Past", + tier: "Illegal", + }, + barbaracle: { + isNonstandard: "Past", + tier: "Illegal", + }, + barbaraclemega: { + isNonstandard: "Future", + tier: "Illegal", + }, + skrelp: { + isNonstandard: "Past", + tier: "Illegal", + }, + dragalge: { + isNonstandard: "Past", + tier: "Illegal", + }, + dragalgemega: { + isNonstandard: "Future", + tier: "Illegal", + }, + clauncher: { + isNonstandard: "Past", + tier: "Illegal", + }, + clawitzer: { + tier: "OU", + }, + helioptile: { + isNonstandard: "Past", + tier: "Illegal", + }, + heliolisk: { + tier: "OU", + }, + tyrunt: { + isNonstandard: "Past", + tier: "Illegal", + }, + tyrantrum: { + tier: "OU", + }, + amaura: { + isNonstandard: "Past", + tier: "Illegal", + }, + aurorus: { + tier: "OU", + }, + hawlucha: { + tier: "OU", + }, + hawluchamega: { + tier: "OU", + }, + dedenne: { + tier: "OU", + }, + carbink: { + isNonstandard: "Past", + tier: "Illegal", + }, + goomy: { + isNonstandard: "Past", + tier: "Illegal", + }, + sliggoo: { + isNonstandard: "Past", + tier: "Illegal", + }, + sliggoohisui: { + isNonstandard: "Past", + tier: "Illegal", + }, + goodra: { + tier: "OU", + }, + goodrahisui: { + tier: "OU", + }, + klefki: { + tier: "OU", + }, + phantump: { + isNonstandard: "Past", + tier: "Illegal", + }, + trevenant: { + tier: "OU", + }, + pumpkaboo: { + isNonstandard: "Past", + tier: "Illegal", + }, + pumpkaboosmall: { + isNonstandard: "Past", + }, + pumpkaboolarge: { + isNonstandard: "Past", + }, + pumpkaboosuper: { + isNonstandard: "Past", + }, + gourgeist: { + tier: "OU", + }, + gourgeistsmall: { + tier: "OU", + }, + gourgeistlarge: { + tier: "OU", + }, + gourgeistsuper: { + tier: "OU", + }, + bergmite: { + isNonstandard: "Past", + tier: "Illegal", + }, + avalugg: { + tier: "OU", + }, + avalugghisui: { + tier: "OU", + }, + noibat: { + isNonstandard: "Past", + tier: "Illegal", + }, + noivern: { + tier: "OU", + }, + xerneas: { + isNonstandard: "Past", + tier: "Illegal", + }, + xerneasneutral: { + isNonstandard: "Custom", // can't be used in battle + tier: "Illegal", + }, + yveltal: { + isNonstandard: "Past", + tier: "Illegal", + }, + zygarde: { + isNonstandard: "Past", + tier: "Illegal", + }, + zygarde10: { + isNonstandard: "Past", + tier: "Illegal", + }, + zygardecomplete: { + isNonstandard: "Past", + tier: "Illegal", + }, + zygardemega: { + isNonstandard: "Future", + tier: "Illegal", + }, + diancie: { + isNonstandard: "Past", + tier: "Illegal", + }, + dianciemega: { + isNonstandard: "Past", + tier: "Illegal", + }, + hoopa: { + isNonstandard: "Past", + tier: "Illegal", + }, + hoopaunbound: { + isNonstandard: "Past", + tier: "Illegal", + }, + volcanion: { + isNonstandard: "Past", + tier: "Illegal", + }, + rowlet: { + isNonstandard: "Past", + tier: "Illegal", + }, + dartrix: { + isNonstandard: "Past", + tier: "Illegal", + }, + decidueye: { + tier: "OU", + }, + decidueyehisui: { + tier: "OU", + }, + litten: { + isNonstandard: "Past", + tier: "Illegal", + }, + torracat: { + isNonstandard: "Past", + tier: "Illegal", + }, + incineroar: { + tier: "OU", + }, + popplio: { + isNonstandard: "Past", + tier: "Illegal", + }, + brionne: { + isNonstandard: "Past", + tier: "Illegal", + }, + primarina: { + tier: "OU", + }, + pikipek: { + isNonstandard: "Past", + tier: "Illegal", + }, + trumbeak: { + isNonstandard: "Past", + tier: "Illegal", + }, + toucannon: { + tier: "OU", + }, + yungoos: { + isNonstandard: "Past", + tier: "Illegal", + }, + gumshoos: { + isNonstandard: "Past", + tier: "Illegal", + }, + gumshoostotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + grubbin: { + isNonstandard: "Past", + tier: "Illegal", + }, + charjabug: { + isNonstandard: "Past", + tier: "Illegal", + }, + vikavolt: { + isNonstandard: "Past", + tier: "Illegal", + }, + vikavolttotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + crabrawler: { + isNonstandard: "Past", + tier: "Illegal", + }, + crabominable: { + tier: "OU", + }, + crabominablemega: { + tier: "OU", + }, + oricorio: { + isNonstandard: "Past", + tier: "Illegal", + }, + oricoriopompom: { + isNonstandard: "Past", + tier: "Illegal", + }, + oricoriopau: { + isNonstandard: "Past", + tier: "Illegal", + }, + oricoriosensu: { + isNonstandard: "Past", + tier: "Illegal", + }, + cutiefly: { + isNonstandard: "Past", + tier: "Illegal", + }, + ribombee: { + isNonstandard: "Past", + tier: "Illegal", + }, + ribombeetotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + rockruff: { + isNonstandard: "Past", + tier: "Illegal", + }, + rockruffdusk: { + isNonstandard: "Past", + tier: "Illegal", + }, + lycanroc: { + tier: "OU", + }, + lycanrocmidnight: { + tier: "OU", + }, + lycanrocdusk: { + tier: "OU", + }, + wishiwashi: { + isNonstandard: "Past", + tier: "Illegal", + }, + wishiwashischool: { + isNonstandard: "Past", + }, + mareanie: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxapex: { + tier: "OU", + }, + mudbray: { + isNonstandard: "Past", + tier: "Illegal", + }, + mudsdale: { + tier: "OU", + }, + dewpider: { + isNonstandard: "Past", + tier: "Illegal", + }, + araquanid: { + tier: "OU", + }, + araquanidtotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + fomantis: { + isNonstandard: "Past", + tier: "Illegal", + }, + lurantis: { + isNonstandard: "Past", + tier: "Illegal", + }, + lurantistotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + morelull: { + isNonstandard: "Past", + tier: "Illegal", + }, + shiinotic: { + isNonstandard: "Past", + tier: "Illegal", + }, + salandit: { + isNonstandard: "Past", + tier: "Illegal", + }, + salazzle: { + tier: "OU", + }, + salazzletotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + stufful: { + isNonstandard: "Past", + tier: "Illegal", + }, + bewear: { + isNonstandard: "Past", + tier: "Illegal", + }, + bounsweet: { + isNonstandard: "Past", + tier: "Illegal", + }, + steenee: { + isNonstandard: "Past", + tier: "Illegal", + }, + tsareena: { + tier: "OU", + }, + comfey: { + isNonstandard: "Past", + tier: "Illegal", + }, + oranguru: { + tier: "OU", + }, + passimian: { + tier: "OU", + }, + wimpod: { + isNonstandard: "Past", + tier: "Illegal", + }, + golisopod: { + isNonstandard: "Past", + tier: "Illegal", + }, + golisopodmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + sandygast: { + isNonstandard: "Past", + tier: "Illegal", + }, + palossand: { + isNonstandard: "Past", + tier: "Illegal", + }, + pyukumuku: { + isNonstandard: "Past", + tier: "Illegal", + }, + typenull: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvally: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallybug: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallydark: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallydragon: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyelectric: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyfairy: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyfighting: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyfire: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyflying: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyghost: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallygrass: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyground: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyice: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallypoison: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallypsychic: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallyrock: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallysteel: { + isNonstandard: "Past", + tier: "Illegal", + }, + silvallywater: { + isNonstandard: "Past", + tier: "Illegal", + }, + minior: { + isNonstandard: "Past", + tier: "Illegal", + }, + komala: { + isNonstandard: "Past", + tier: "Illegal", + }, + turtonator: { + isNonstandard: "Past", + tier: "Illegal", + }, + togedemaru: { + isNonstandard: "Past", + tier: "Illegal", + }, + togedemarutotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + mimikyu: { + tier: "OU", + }, + mimikyutotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + mimikyubustedtotem: { + isNonstandard: "Past", + tier: "Illegal", + }, + bruxish: { + isNonstandard: "Past", + tier: "Illegal", + }, + drampa: { + tier: "OU", + }, + drampamega: { + tier: "OU", + }, + dhelmise: { + isNonstandard: "Past", + tier: "Illegal", + }, + jangmoo: { + isNonstandard: "Past", + tier: "Illegal", + }, + hakamoo: { + isNonstandard: "Past", + tier: "Illegal", + }, + kommoo: { + tier: "OU", + }, + kommoototem: { + isNonstandard: "Past", + tier: "Illegal", + }, + tapukoko: { + isNonstandard: "Past", + tier: "Illegal", + }, + tapulele: { + isNonstandard: "Past", + tier: "Illegal", + }, + tapubulu: { + isNonstandard: "Past", + tier: "Illegal", + }, + tapufini: { + isNonstandard: "Past", + tier: "Illegal", + }, + cosmog: { + isNonstandard: "Past", + tier: "Illegal", + }, + cosmoem: { + isNonstandard: "Past", + tier: "Illegal", + }, + solgaleo: { + isNonstandard: "Past", + tier: "Illegal", + }, + lunala: { + isNonstandard: "Past", + tier: "Illegal", + }, + nihilego: { + isNonstandard: "Past", + tier: "Illegal", + }, + buzzwole: { + isNonstandard: "Past", + tier: "Illegal", + }, + pheromosa: { + isNonstandard: "Past", + tier: "Illegal", + }, + xurkitree: { + isNonstandard: "Past", + tier: "Illegal", + }, + celesteela: { + isNonstandard: "Past", + tier: "Illegal", + }, + kartana: { + isNonstandard: "Past", + tier: "Illegal", + }, + guzzlord: { + isNonstandard: "Past", + tier: "Illegal", + }, + necrozma: { + isNonstandard: "Past", + tier: "Illegal", + }, + necrozmaduskmane: { + isNonstandard: "Past", + tier: "Illegal", + }, + necrozmadawnwings: { + isNonstandard: "Past", + tier: "Illegal", + }, + necrozmaultra: { + isNonstandard: "Past", + tier: "Illegal", + }, + magearna: { + isNonstandard: "Past", + tier: "Illegal", + }, + magearnamega: { + isNonstandard: "Future", + tier: "Illegal", + }, + magearnaoriginalmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + marshadow: { + isNonstandard: "Past", + tier: "Illegal", + }, + poipole: { + isNonstandard: "Past", + tier: "Illegal", + }, + naganadel: { + isNonstandard: "Past", + tier: "Illegal", + }, + stakataka: { + isNonstandard: "Past", + tier: "Illegal", + }, + blacephalon: { + isNonstandard: "Past", + tier: "Illegal", + }, + zeraora: { + isNonstandard: "Past", + tier: "Illegal", + }, + zeraoramega: { + isNonstandard: "Future", + tier: "Illegal", + }, + meltan: { + isNonstandard: "Past", + tier: "Illegal", + }, + melmetal: { + isNonstandard: "Past", + tier: "Illegal", + }, + melmetalgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + grookey: { + isNonstandard: "Past", + tier: "Illegal", + }, + thwackey: { + isNonstandard: "Past", + tier: "Illegal", + }, + rillaboom: { + isNonstandard: "Past", + tier: "Illegal", + }, + rillaboomgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + scorbunny: { + isNonstandard: "Past", + tier: "Illegal", + }, + raboot: { + isNonstandard: "Past", + tier: "Illegal", + }, + cinderace: { + isNonstandard: "Past", + tier: "Illegal", + }, + cinderacegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + sobble: { + isNonstandard: "Past", + tier: "Illegal", + }, + drizzile: { + isNonstandard: "Past", + tier: "Illegal", + }, + inteleon: { + isNonstandard: "Past", + tier: "Illegal", + }, + inteleongmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + skwovet: { + isNonstandard: "Past", + tier: "Illegal", + }, + greedent: { + isNonstandard: "Past", + tier: "Illegal", + }, + rookidee: { + isNonstandard: "Past", + tier: "Illegal", + }, + corvisquire: { + isNonstandard: "Past", + tier: "Illegal", + }, + corviknight: { + tier: "OU", + }, + corviknightgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + blipbug: { + isNonstandard: "Past", + tier: "Illegal", + }, + dottler: { + isNonstandard: "Past", + tier: "Illegal", + }, + orbeetle: { + isNonstandard: "Past", + tier: "Illegal", + }, + orbeetlegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + nickit: { + isNonstandard: "Past", + tier: "Illegal", + }, + thievul: { + isNonstandard: "Past", + tier: "Illegal", + }, + gossifleur: { + isNonstandard: "Past", + tier: "Illegal", + }, + eldegoss: { + isNonstandard: "Past", + tier: "Illegal", + }, + wooloo: { + isNonstandard: "Past", + tier: "Illegal", + }, + dubwool: { + isNonstandard: "Past", + tier: "Illegal", + }, + chewtle: { + isNonstandard: "Past", + tier: "Illegal", + }, + drednaw: { + isNonstandard: "Past", + tier: "Illegal", + }, + drednawgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + yamper: { + isNonstandard: "Past", + tier: "Illegal", + }, + boltund: { + isNonstandard: "Past", + tier: "Illegal", + }, + rolycoly: { + isNonstandard: "Past", + tier: "Illegal", + }, + carkol: { + isNonstandard: "Past", + tier: "Illegal", + }, + coalossal: { + isNonstandard: "Past", + tier: "Illegal", + }, + coalossalgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + applin: { + isNonstandard: "Past", + tier: "Illegal", + }, + flapple: { + tier: "OU", + }, + flapplegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + appletun: { + tier: "OU", + }, + appletungmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dipplin: { + isNonstandard: "Past", + tier: "Illegal", + }, + silicobra: { + isNonstandard: "Past", + tier: "Illegal", + }, + sandaconda: { + tier: "OU", + }, + sandacondagmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + cramorant: { + isNonstandard: "Past", + tier: "Illegal", + }, + arrokuda: { + isNonstandard: "Past", + tier: "Illegal", + }, + barraskewda: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxel: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxtricity: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxtricitygmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxtricitylowkeygmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + sizzlipede: { + isNonstandard: "Past", + tier: "Illegal", + }, + centiskorch: { + isNonstandard: "Past", + tier: "Illegal", + }, + centiskorchgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + clobbopus: { + isNonstandard: "Past", + tier: "Illegal", + }, + grapploct: { + isNonstandard: "Past", + tier: "Illegal", + }, + sinistea: { + isNonstandard: "Past", + tier: "Illegal", + }, + polteageist: { + tier: "OU", + }, + hatenna: { + isNonstandard: "Past", + tier: "Illegal", + }, + hattrem: { + isNonstandard: "Past", + tier: "Illegal", + }, + hatterene: { + tier: "OU", + }, + hatterenegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + impidimp: { + isNonstandard: "Past", + tier: "Illegal", + }, + morgrem: { + isNonstandard: "Past", + tier: "Illegal", + }, + grimmsnarl: { + isNonstandard: "Past", + tier: "Illegal", + }, + grimmsnarlgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + milcery: { + isNonstandard: "Past", + tier: "Illegal", + }, + alcremie: { + tier: "OU", + }, + alcremiegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + falinks: { + isNonstandard: "Past", + tier: "Illegal", + }, + falinksmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + pincurchin: { + isNonstandard: "Past", + tier: "Illegal", + }, + snom: { + isNonstandard: "Past", + tier: "Illegal", + }, + frosmoth: { + isNonstandard: "Past", + tier: "Illegal", + }, + stonjourner: { + isNonstandard: "Past", + tier: "Illegal", + }, + eiscue: { + isNonstandard: "Past", + tier: "Illegal", + }, + indeedee: { + isNonstandard: "Past", + tier: "Illegal", + }, + indeedeef: { + isNonstandard: "Past", + tier: "Illegal", + }, + morpeko: { + tier: "OU", + }, + cufant: { + isNonstandard: "Past", + tier: "Illegal", + }, + copperajah: { + isNonstandard: "Past", + tier: "Illegal", + }, + copperajahgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dracozolt: { + isNonstandard: "Past", + tier: "Illegal", + }, + arctozolt: { + isNonstandard: "Past", + tier: "Illegal", + }, + dracovish: { + isNonstandard: "Past", + tier: "Illegal", + }, + arctovish: { + isNonstandard: "Past", + tier: "Illegal", + }, + duraludon: { + isNonstandard: "Past", + tier: "Illegal", + }, + duraludongmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dreepy: { + isNonstandard: "Past", + tier: "Illegal", + }, + drakloak: { + isNonstandard: "Past", + tier: "Illegal", + }, + dragapult: { + tier: "OU", + }, + zacian: { + isNonstandard: "Past", + tier: "Illegal", + }, + zaciancrowned: { + isNonstandard: "Past", + tier: "Illegal", + }, + zamazenta: { + isNonstandard: "Past", + tier: "Illegal", + }, + zamazentacrowned: { + isNonstandard: "Past", + tier: "Illegal", + }, + eternatus: { + isNonstandard: "Past", + tier: "Illegal", + }, + eternatuseternamax: { + isNonstandard: "Past", + tier: "Illegal", + }, + kubfu: { + isNonstandard: "Past", + tier: "Illegal", + }, + urshifu: { + isNonstandard: "Past", + tier: "Illegal", + }, + urshifurapidstrike: { + isNonstandard: "Past", + tier: "Illegal", + }, + urshifugmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + urshifurapidstrikegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + zarude: { + isNonstandard: "Past", + tier: "Illegal", + }, + regieleki: { + isNonstandard: "Past", + tier: "Illegal", + }, + regidrago: { + isNonstandard: "Past", + tier: "Illegal", + }, + glastrier: { + isNonstandard: "Past", + tier: "Illegal", + }, + spectrier: { + isNonstandard: "Past", + tier: "Illegal", + }, + calyrex: { + isNonstandard: "Past", + tier: "Illegal", + }, + calyrexice: { + isNonstandard: "Past", + tier: "Illegal", + }, + calyrexshadow: { + isNonstandard: "Past", + tier: "Illegal", + }, + enamorus: { + isNonstandard: "Past", + tier: "Illegal", + }, + enamorustherian: { + isNonstandard: "Past", + tier: "Illegal", + }, + sprigatito: { + isNonstandard: "Past", + tier: "Illegal", + }, + floragato: { + isNonstandard: "Past", + tier: "Illegal", + }, + meowscarada: { + tier: "OU", + }, + fuecoco: { + isNonstandard: "Past", + tier: "Illegal", + }, + crocalor: { + isNonstandard: "Past", + tier: "Illegal", + }, + skeledirge: { + tier: "OU", + }, + quaxly: { + isNonstandard: "Past", + tier: "Illegal", + }, + quaxwell: { + isNonstandard: "Past", + tier: "Illegal", + }, + quaquaval: { + tier: "OU", + }, + lechonk: { + isNonstandard: "Past", + tier: "Illegal", + }, + oinkologne: { + isNonstandard: "Past", + tier: "Illegal", + }, + oinkolognef: { + isNonstandard: "Past", + tier: "Illegal", + }, + tarountula: { + isNonstandard: "Past", + tier: "Illegal", + }, + spidops: { + isNonstandard: "Past", + tier: "Illegal", + }, + nymble: { + isNonstandard: "Past", + tier: "Illegal", + }, + lokix: { + isNonstandard: "Past", + tier: "Illegal", + }, + rellor: { + isNonstandard: "Past", + tier: "Illegal", + }, + rabsca: { + isNonstandard: "Past", + tier: "Illegal", + }, + greavard: { + isNonstandard: "Past", + tier: "Illegal", + }, + houndstone: { + isNonstandard: "Past", + tier: "Illegal", + }, + flittle: { + isNonstandard: "Past", + tier: "Illegal", + }, + espathra: { + tier: "OU", + }, + wiglett: { + isNonstandard: "Past", + tier: "Illegal", + }, + wugtrio: { + isNonstandard: "Past", + tier: "Illegal", + }, + dondozo: { + isNonstandard: "Past", + tier: "Illegal", + }, + veluza: { + isNonstandard: "Past", + tier: "Illegal", + }, + finizen: { + isNonstandard: "Past", + tier: "Illegal", + }, + palafin: { + tier: "OU", + }, + smoliv: { + isNonstandard: "Past", + tier: "Illegal", + }, + dolliv: { + isNonstandard: "Past", + tier: "Illegal", + }, + arboliva: { + isNonstandard: "Past", + tier: "Illegal", + }, + capsakid: { + isNonstandard: "Past", + tier: "Illegal", + }, + scovillain: { + tier: "OU", + }, + scovillainmega: { + tier: "OU", + }, + tadbulb: { + isNonstandard: "Past", + tier: "Illegal", + }, + bellibolt: { + tier: "OU", + }, + varoom: { + isNonstandard: "Past", + tier: "Illegal", + }, + revavroom: { + isNonstandard: "Past", + tier: "Illegal", + }, + orthworm: { + tier: "OU", + }, + tandemaus: { + isNonstandard: "Past", + tier: "Illegal", + }, + maushold: { + tier: "OU", + }, + cetoddle: { + isNonstandard: "Past", + tier: "Illegal", + }, + cetitan: { + isNonstandard: "Past", + tier: "Illegal", + }, + frigibax: { + isNonstandard: "Past", + tier: "Illegal", + }, + arctibax: { + isNonstandard: "Past", + tier: "Illegal", + }, + baxcalibur: { + isNonstandard: "Past", + tier: "Illegal", + }, + baxcaliburmega: { + isNonstandard: "Future", + tier: "Illegal", + }, + tatsugiri: { + isNonstandard: "Past", + tier: "Illegal", + }, + tatsugiricurlymega: { + isNonstandard: "Future", + tier: "Illegal", + }, + tatsugiridroopymega: { + isNonstandard: "Future", + tier: "Illegal", + }, + tatsugiristretchymega: { + isNonstandard: "Future", + tier: "Illegal", + }, + cyclizar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pawmi: { + isNonstandard: "Past", + tier: "Illegal", + }, + pawmo: { + isNonstandard: "Past", + tier: "Illegal", + }, + pawmot: { + isNonstandard: "Past", + tier: "Illegal", + }, + wattrel: { + isNonstandard: "Past", + tier: "Illegal", + }, + kilowattrel: { + isNonstandard: "Past", + tier: "Illegal", + }, + bombirdier: { + isNonstandard: "Past", + tier: "Illegal", + }, + squawkabilly: { + isNonstandard: "Past", + tier: "Illegal", + }, + flamigo: { + isNonstandard: "Past", + tier: "Illegal", + }, + klawf: { + isNonstandard: "Past", + tier: "Illegal", + }, + nacli: { + isNonstandard: "Past", + tier: "Illegal", + }, + naclstack: { + isNonstandard: "Past", + tier: "Illegal", + }, + garganacl: { + tier: "OU", + }, + glimmet: { + isNonstandard: "Past", + tier: "Illegal", + }, + glimmora: { + tier: "OU", + }, + glimmoramega: { + tier: "OU", + }, + shroodle: { + isNonstandard: "Past", + tier: "Illegal", + }, + grafaiai: { + isNonstandard: "Past", + tier: "Illegal", + }, + fidough: { + isNonstandard: "Past", + tier: "Illegal", + }, + dachsbun: { + isNonstandard: "Past", + tier: "Illegal", + }, + maschiff: { + isNonstandard: "Past", + tier: "Illegal", + }, + mabosstiff: { + isNonstandard: "Past", + tier: "Illegal", + }, + bramblin: { + isNonstandard: "Past", + tier: "Illegal", + }, + brambleghast: { + isNonstandard: "Past", + tier: "Illegal", + }, + gimmighoul: { + isNonstandard: "Past", + tier: "Illegal", + }, + gimmighoulroaming: { + isNonstandard: "Past", + tier: "Illegal", + }, + gholdengo: { + isNonstandard: "Past", + tier: "Illegal", + }, + greattusk: { + isNonstandard: "Past", + tier: "Illegal", + }, + brutebonnet: { + isNonstandard: "Past", + tier: "Illegal", + }, + sandyshocks: { + isNonstandard: "Past", + tier: "Illegal", + }, + screamtail: { + isNonstandard: "Past", + tier: "Illegal", + }, + fluttermane: { + isNonstandard: "Past", + tier: "Illegal", + }, + slitherwing: { + isNonstandard: "Past", + tier: "Illegal", + }, + roaringmoon: { + isNonstandard: "Past", + tier: "Illegal", + }, + irontreads: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironmoth: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironhands: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironjugulis: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironthorns: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironbundle: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironvaliant: { + isNonstandard: "Past", + tier: "Illegal", + }, + tinglu: { + isNonstandard: "Past", + tier: "Illegal", + }, + chienpao: { + isNonstandard: "Past", + tier: "Illegal", + }, + wochien: { + isNonstandard: "Past", + tier: "Illegal", + }, + chiyu: { + isNonstandard: "Past", + tier: "Illegal", + }, + koraidon: { + isNonstandard: "Past", + tier: "Illegal", + }, + miraidon: { + isNonstandard: "Past", + tier: "Illegal", + }, + tinkatink: { + isNonstandard: "Past", + tier: "Illegal", + }, + tinkatuff: { + isNonstandard: "Past", + tier: "Illegal", + }, + tinkaton: { + tier: "OU", + }, + charcadet: { + isNonstandard: "Past", + tier: "Illegal", + }, + armarouge: { + tier: "OU", + }, + ceruledge: { + tier: "OU", + }, + toedscool: { + isNonstandard: "Past", + tier: "Illegal", + }, + toedscruel: { + isNonstandard: "Past", + tier: "Illegal", + }, + kingambit: { + tier: "OU", + }, + clodsire: { + isNonstandard: "Past", + tier: "Illegal", + }, + annihilape: { + isNonstandard: "Past", + tier: "Illegal", + }, + walkingwake: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironleaves: { + isNonstandard: "Past", + tier: "Illegal", + }, + poltchageist: { + isNonstandard: "Past", + tier: "Illegal", + }, + sinistcha: { + tier: "OU", + }, + okidogi: { + isNonstandard: "Past", + tier: "Illegal", + }, + munkidori: { + isNonstandard: "Past", + tier: "Illegal", + }, + fezandipiti: { + isNonstandard: "Past", + tier: "Illegal", + }, + ogerpon: { + isNonstandard: "Past", + tier: "Illegal", + }, + ogerponwellspring: { + isNonstandard: "Past", + tier: "Illegal", + }, + ogerponhearthflame: { + isNonstandard: "Past", + tier: "Illegal", + }, + ogerponcornerstone: { + isNonstandard: "Past", + tier: "Illegal", + }, + archaludon: { + tier: "OU", + }, + hydrapple: { + tier: "OU", + }, + gougingfire: { + isNonstandard: "Past", + tier: "Illegal", + }, + ragingbolt: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironboulder: { + isNonstandard: "Past", + tier: "Illegal", + }, + ironcrown: { + isNonstandard: "Past", + tier: "Illegal", + }, + terapagos: { + isNonstandard: "Past", + tier: "Illegal", + }, + terapagosstellar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pecharunt: { + isNonstandard: "Past", + tier: "Illegal", + }, +}; diff --git a/data/mods/champions/items.ts b/data/mods/champions/items.ts new file mode 100644 index 0000000000..a18c7f004c --- /dev/null +++ b/data/mods/champions/items.ts @@ -0,0 +1,1053 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + abilityshield: { + inherit: true, + isNonstandard: "Past", + }, + abomasite: { + inherit: true, + isNonstandard: null, + }, + absolite: { + inherit: true, + isNonstandard: null, + }, + absorbbulb: { + inherit: true, + isNonstandard: "Past", + }, + adamantcrystal: { + inherit: true, + isNonstandard: "Past", + }, + adamantorb: { + inherit: true, + isNonstandard: "Past", + }, + adrenalineorb: { + inherit: true, + isNonstandard: "Past", + }, + aerodactylite: { + inherit: true, + isNonstandard: null, + }, + aggronite: { + inherit: true, + isNonstandard: null, + }, + aguavberry: { + inherit: true, + isNonstandard: "Past", + }, + airballoon: { + inherit: true, + isNonstandard: "Past", + }, + alakazite: { + inherit: true, + isNonstandard: null, + }, + altarianite: { + inherit: true, + isNonstandard: null, + }, + ampharosite: { + inherit: true, + isNonstandard: null, + }, + apicotberry: { + inherit: true, + isNonstandard: "Past", + }, + assaultvest: { + inherit: true, + isNonstandard: "Past", + }, + audinite: { + inherit: true, + isNonstandard: null, + }, + auspiciousarmor: { + inherit: true, + isNonstandard: "Past", + }, + banettite: { + inherit: true, + isNonstandard: null, + }, + beastball: { + inherit: true, + isNonstandard: "Past", + }, + beedrillite: { + inherit: true, + isNonstandard: null, + }, + berrysweet: { + inherit: true, + isNonstandard: "Past", + }, + bignugget: { + inherit: true, + isNonstandard: "Past", + }, + bigroot: { + inherit: true, + isNonstandard: "Past", + }, + bindingband: { + inherit: true, + isNonstandard: "Past", + }, + blacksludge: { + inherit: true, + isNonstandard: "Past", + }, + blastoisinite: { + inherit: true, + isNonstandard: null, + }, + blunderpolicy: { + inherit: true, + isNonstandard: "Past", + }, + boosterenergy: { + inherit: true, + isNonstandard: "Past", + }, + bottlecap: { + inherit: true, + isNonstandard: "Past", + }, + cameruptite: { + inherit: true, + isNonstandard: null, + }, + cellbattery: { + inherit: true, + isNonstandard: "Past", + }, + chandelurite: { + inherit: true, + isNonstandard: null, + }, + charizarditex: { + inherit: true, + isNonstandard: null, + }, + charizarditey: { + inherit: true, + isNonstandard: null, + }, + chesnaughtite: { + inherit: true, + isNonstandard: null, + }, + chimechite: { + inherit: true, + isNonstandard: null, + }, + chippedpot: { + inherit: true, + isNonstandard: "Past", + }, + choiceband: { + inherit: true, + isNonstandard: "Past", + }, + choicespecs: { + inherit: true, + isNonstandard: "Past", + }, + clearamulet: { + inherit: true, + isNonstandard: "Past", + }, + clefablite: { + inherit: true, + isNonstandard: null, + }, + cloversweet: { + inherit: true, + isNonstandard: "Past", + }, + cornerstonemask: { + inherit: true, + isNonstandard: "Past", + }, + covertcloak: { + inherit: true, + isNonstandard: "Past", + }, + crabominite: { + inherit: true, + isNonstandard: null, + }, + crackedpot: { + inherit: true, + isNonstandard: "Past", + }, + custapberry: { + inherit: true, + isNonstandard: "Past", + }, + damprock: { + inherit: true, + isNonstandard: "Past", + }, + darkranite: { + inherit: true, + isNonstandard: "Past", + }, + dawnstone: { + inherit: true, + isNonstandard: "Past", + }, + delphoxite: { + inherit: true, + isNonstandard: null, + }, + destinyknot: { + inherit: true, + isNonstandard: "Past", + }, + diveball: { + inherit: true, + isNonstandard: "Past", + }, + dracoplate: { + inherit: true, + isNonstandard: "Past", + }, + dragalgite: { + inherit: true, + isNonstandard: "Past", + }, + dragoninite: { + inherit: true, + isNonstandard: null, + }, + dragonscale: { + inherit: true, + isNonstandard: "Past", + }, + drampanite: { + inherit: true, + isNonstandard: null, + }, + dreadplate: { + inherit: true, + isNonstandard: "Past", + }, + dreamball: { + inherit: true, + isNonstandard: "Past", + }, + dubiousdisc: { + inherit: true, + isNonstandard: "Past", + }, + duskball: { + inherit: true, + isNonstandard: "Past", + }, + duskstone: { + inherit: true, + isNonstandard: "Past", + }, + earthplate: { + inherit: true, + isNonstandard: "Past", + }, + eelektrossite: { + inherit: true, + isNonstandard: "Past", + }, + ejectbutton: { + inherit: true, + isNonstandard: "Past", + }, + ejectpack: { + inherit: true, + isNonstandard: "Past", + }, + electirizer: { + inherit: true, + isNonstandard: "Past", + }, + electricseed: { + inherit: true, + isNonstandard: "Past", + }, + emboarite: { + inherit: true, + isNonstandard: null, + }, + enigmaberry: { + inherit: true, + isNonstandard: "Past", + }, + eviolite: { + inherit: true, + isNonstandard: "Past", + }, + excadrite: { + inherit: true, + isNonstandard: null, + }, + expertbelt: { + inherit: true, + isNonstandard: "Past", + }, + falinksite: { + inherit: true, + isNonstandard: "Past", + }, + fastball: { + inherit: true, + isNonstandard: "Past", + }, + feraligite: { + inherit: true, + isNonstandard: null, + }, + figyberry: { + inherit: true, + isNonstandard: "Past", + }, + firestone: { + inherit: true, + isNonstandard: "Past", + }, + fistplate: { + inherit: true, + isNonstandard: "Past", + }, + flameorb: { + inherit: true, + isNonstandard: "Past", + }, + flameplate: { + inherit: true, + isNonstandard: "Past", + }, + floatstone: { + inherit: true, + isNonstandard: "Past", + }, + floettite: { + inherit: true, + isNonstandard: null, + }, + flowersweet: { + inherit: true, + isNonstandard: "Past", + }, + friendball: { + inherit: true, + isNonstandard: "Past", + }, + froslassite: { + inherit: true, + isNonstandard: null, + }, + galaricacuff: { + inherit: true, + isNonstandard: "Past", + }, + galaricawreath: { + inherit: true, + isNonstandard: "Past", + }, + galladite: { + inherit: true, + isNonstandard: null, + }, + ganlonberry: { + inherit: true, + isNonstandard: "Past", + }, + garchompite: { + inherit: true, + isNonstandard: null, + }, + gardevoirite: { + inherit: true, + isNonstandard: null, + }, + gengarite: { + inherit: true, + isNonstandard: null, + }, + glalitite: { + inherit: true, + isNonstandard: null, + }, + glimmoranite: { + inherit: true, + isNonstandard: null, + }, + goldbottlecap: { + inherit: true, + isNonstandard: "Past", + }, + golisopite: { + inherit: true, + isNonstandard: "Past", + }, + golurkite: { + inherit: true, + isNonstandard: null, + }, + grassyseed: { + inherit: true, + isNonstandard: "Past", + }, + greatball: { + inherit: true, + isNonstandard: "Past", + }, + greninjite: { + inherit: true, + isNonstandard: null, + }, + grepaberry: { + inherit: true, + isNonstandard: "Past", + }, + gripclaw: { + inherit: true, + isNonstandard: "Past", + }, + griseouscore: { + inherit: true, + isNonstandard: "Past", + }, + griseousorb: { + inherit: true, + isNonstandard: "Past", + }, + gyaradosite: { + inherit: true, + isNonstandard: null, + }, + hawluchanite: { + inherit: true, + isNonstandard: null, + }, + healball: { + inherit: true, + isNonstandard: "Past", + }, + hearthflamemask: { + inherit: true, + isNonstandard: "Past", + }, + heatranite: { + inherit: true, + isNonstandard: "Past", + }, + heatrock: { + inherit: true, + isNonstandard: "Past", + }, + heavyball: { + inherit: true, + isNonstandard: "Past", + }, + heavydutyboots: { + inherit: true, + isNonstandard: "Past", + }, + heracronite: { + inherit: true, + isNonstandard: null, + }, + hondewberry: { + inherit: true, + isNonstandard: "Past", + }, + houndoominite: { + inherit: true, + isNonstandard: null, + }, + iapapaberry: { + inherit: true, + isNonstandard: "Past", + }, + icestone: { + inherit: true, + isNonstandard: "Past", + }, + icicleplate: { + inherit: true, + isNonstandard: "Past", + }, + icyrock: { + inherit: true, + isNonstandard: "Past", + }, + insectplate: { + inherit: true, + isNonstandard: "Past", + }, + ironball: { + inherit: true, + isNonstandard: "Past", + }, + ironplate: { + inherit: true, + isNonstandard: "Past", + }, + jabocaberry: { + inherit: true, + isNonstandard: "Past", + }, + kangaskhanite: { + inherit: true, + isNonstandard: null, + }, + keeberry: { + inherit: true, + isNonstandard: "Past", + }, + kelpsyberry: { + inherit: true, + isNonstandard: "Past", + }, + laggingtail: { + inherit: true, + isNonstandard: "Past", + }, + lansatberry: { + inherit: true, + isNonstandard: "Past", + }, + leafstone: { + inherit: true, + isNonstandard: "Past", + }, + levelball: { + inherit: true, + isNonstandard: "Past", + }, + liechiberry: { + inherit: true, + isNonstandard: "Past", + }, + lifeorb: { + inherit: true, + isNonstandard: "Past", + }, + lightclay: { + inherit: true, + isNonstandard: "Past", + }, + loadeddice: { + inherit: true, + isNonstandard: "Past", + }, + lopunnite: { + inherit: true, + isNonstandard: null, + }, + loveball: { + inherit: true, + isNonstandard: "Past", + }, + lovesweet: { + inherit: true, + isNonstandard: "Past", + }, + lucarionite: { + inherit: true, + isNonstandard: null, + }, + luminousmoss: { + inherit: true, + isNonstandard: "Past", + }, + lureball: { + inherit: true, + isNonstandard: "Past", + }, + lustrousglobe: { + inherit: true, + isNonstandard: "Past", + }, + lustrousorb: { + inherit: true, + isNonstandard: "Past", + }, + luxuryball: { + inherit: true, + isNonstandard: "Past", + }, + magmarizer: { + inherit: true, + isNonstandard: "Past", + }, + magoberry: { + inherit: true, + isNonstandard: "Past", + }, + maliciousarmor: { + inherit: true, + isNonstandard: "Past", + }, + manectite: { + inherit: true, + isNonstandard: null, + }, + marangaberry: { + inherit: true, + isNonstandard: "Past", + }, + masterball: { + inherit: true, + isNonstandard: "Past", + }, + masterpieceteacup: { + inherit: true, + isNonstandard: "Past", + }, + meadowplate: { + inherit: true, + isNonstandard: "Past", + }, + medichamite: { + inherit: true, + isNonstandard: null, + }, + meganiumite: { + inherit: true, + isNonstandard: null, + }, + meowsticite: { + inherit: true, + isNonstandard: null, + }, + metalalloy: { + inherit: true, + isNonstandard: "Past", + }, + metronome: { + inherit: true, + isNonstandard: "Past", + }, + micleberry: { + inherit: true, + isNonstandard: "Past", + }, + mindplate: { + inherit: true, + isNonstandard: "Past", + }, + mirrorherb: { + inherit: true, + isNonstandard: "Past", + }, + mistyseed: { + inherit: true, + isNonstandard: "Past", + }, + moonball: { + inherit: true, + isNonstandard: "Past", + }, + moonstone: { + inherit: true, + isNonstandard: "Past", + }, + muscleband: { + inherit: true, + isNonstandard: "Past", + }, + nestball: { + inherit: true, + isNonstandard: "Past", + }, + netball: { + inherit: true, + isNonstandard: "Past", + }, + normalgem: { + inherit: true, + isNonstandard: "Past", + }, + ovalstone: { + inherit: true, + isNonstandard: "Past", + }, + parkball: { + inherit: true, + isNonstandard: "Past", + }, + petayaberry: { + inherit: true, + isNonstandard: "Past", + }, + pidgeotite: { + inherit: true, + isNonstandard: null, + }, + pinsirite: { + inherit: true, + isNonstandard: null, + }, + pixieplate: { + inherit: true, + isNonstandard: "Past", + }, + pokeball: { + inherit: true, + isNonstandard: "Past", + }, + pomegberry: { + inherit: true, + isNonstandard: "Past", + }, + poweranklet: { + inherit: true, + isNonstandard: "Past", + }, + powerband: { + inherit: true, + isNonstandard: "Past", + }, + powerbelt: { + inherit: true, + isNonstandard: "Past", + }, + powerbracer: { + inherit: true, + isNonstandard: "Past", + }, + powerherb: { + inherit: true, + isNonstandard: "Past", + }, + powerlens: { + inherit: true, + isNonstandard: "Past", + }, + powerweight: { + inherit: true, + isNonstandard: "Past", + }, + premierball: { + inherit: true, + isNonstandard: "Past", + }, + prettyfeather: { + inherit: true, + isNonstandard: "Past", + }, + prismscale: { + inherit: true, + isNonstandard: "Past", + }, + protectivepads: { + inherit: true, + isNonstandard: "Past", + }, + protector: { + inherit: true, + isNonstandard: "Past", + }, + psychicseed: { + inherit: true, + isNonstandard: "Past", + }, + punchingglove: { + inherit: true, + isNonstandard: "Past", + }, + qualotberry: { + inherit: true, + isNonstandard: "Past", + }, + quickball: { + inherit: true, + isNonstandard: "Past", + }, + rarebone: { + inherit: true, + isNonstandard: "Past", + }, + razorclaw: { + inherit: true, + isNonstandard: "Past", + }, + razorfang: { + inherit: true, + isNonstandard: "Past", + }, + reapercloth: { + inherit: true, + isNonstandard: "Past", + }, + redcard: { + inherit: true, + isNonstandard: "Past", + }, + repeatball: { + inherit: true, + isNonstandard: "Past", + }, + ribbonsweet: { + inherit: true, + isNonstandard: "Past", + }, + ringtarget: { + inherit: true, + isNonstandard: "Past", + }, + rockyhelmet: { + inherit: true, + isNonstandard: "Past", + }, + roomservice: { + inherit: true, + isNonstandard: "Past", + }, + rowapberry: { + inherit: true, + isNonstandard: "Past", + }, + rustedshield: { + inherit: true, + isNonstandard: "Past", + }, + rustedsword: { + inherit: true, + isNonstandard: "Past", + }, + sablenite: { + inherit: true, + isNonstandard: null, + }, + safariball: { + inherit: true, + isNonstandard: "Past", + }, + safetygoggles: { + inherit: true, + isNonstandard: "Past", + }, + salacberry: { + inherit: true, + isNonstandard: "Past", + }, + scizorite: { + inherit: true, + isNonstandard: null, + }, + scovillainite: { + inherit: true, + isNonstandard: null, + }, + sharpedonite: { + inherit: true, + isNonstandard: null, + }, + shedshell: { + inherit: true, + isNonstandard: "Past", + }, + shinystone: { + inherit: true, + isNonstandard: "Past", + }, + skarmorite: { + inherit: true, + isNonstandard: null, + }, + skyplate: { + inherit: true, + isNonstandard: "Past", + }, + slowbronite: { + inherit: true, + isNonstandard: null, + }, + smoothrock: { + inherit: true, + isNonstandard: "Past", + }, + snowball: { + inherit: true, + isNonstandard: "Past", + }, + souldew: { + inherit: true, + isNonstandard: "Past", + }, + spelltag: { + inherit: true, + isNonstandard: null, + }, + splashplate: { + inherit: true, + isNonstandard: "Past", + }, + spookyplate: { + inherit: true, + isNonstandard: "Past", + }, + sportball: { + inherit: true, + isNonstandard: "Past", + }, + starfberry: { + inherit: true, + isNonstandard: "Past", + }, + starminite: { + inherit: true, + isNonstandard: null, + }, + starsweet: { + inherit: true, + isNonstandard: "Past", + }, + steelixite: { + inherit: true, + isNonstandard: null, + }, + stickybarb: { + inherit: true, + isNonstandard: "Past", + }, + stoneplate: { + inherit: true, + isNonstandard: "Past", + }, + strangeball: { + inherit: true, + isNonstandard: "Past", + }, + strawberrysweet: { + inherit: true, + isNonstandard: "Past", + }, + sunstone: { + inherit: true, + isNonstandard: "Past", + }, + sweetapple: { + inherit: true, + isNonstandard: "Past", + }, + syrupyapple: { + inherit: true, + isNonstandard: "Past", + }, + tamatoberry: { + inherit: true, + isNonstandard: "Past", + }, + tartapple: { + inherit: true, + isNonstandard: "Past", + }, + terrainextender: { + inherit: true, + isNonstandard: "Past", + }, + throatspray: { + inherit: true, + isNonstandard: "Past", + }, + thunderstone: { + inherit: true, + isNonstandard: "Past", + }, + timerball: { + inherit: true, + isNonstandard: "Past", + }, + toxicorb: { + inherit: true, + isNonstandard: "Past", + }, + toxicplate: { + inherit: true, + isNonstandard: "Past", + }, + tyranitarite: { + inherit: true, + isNonstandard: null, + }, + ultraball: { + inherit: true, + isNonstandard: "Past", + }, + unremarkableteacup: { + inherit: true, + isNonstandard: "Past", + }, + upgrade: { + inherit: true, + isNonstandard: "Past", + }, + utilityumbrella: { + inherit: true, + isNonstandard: "Past", + }, + venusaurite: { + inherit: true, + isNonstandard: null, + }, + victreebelite: { + inherit: true, + isNonstandard: null, + }, + waterstone: { + inherit: true, + isNonstandard: "Past", + }, + weaknesspolicy: { + inherit: true, + isNonstandard: "Past", + }, + wellspringmask: { + inherit: true, + isNonstandard: "Past", + }, + whiteherb: { + inherit: true, + onAnyAfterMove() { + // Desync: proceed from Parting Shot's point of view + this.queue.insertChoice({ + choice: 'event', + event: 'WhiteHerb', + order: 99, // before switches + pokemon: this.effectState.target, + }); + }, + onWhiteHerb(pokemon) { + ((this.effect as any).onStart as (p: Pokemon) => void).call(this, this.effectState.target); + }, + }, + widelens: { + inherit: true, + isNonstandard: "Past", + }, + wikiberry: { + inherit: true, + isNonstandard: "Past", + }, + wiseglasses: { + inherit: true, + isNonstandard: "Past", + }, + zapplate: { + inherit: true, + isNonstandard: "Past", + }, + zoomlens: { + inherit: true, + isNonstandard: "Past", + }, +}; diff --git a/data/mods/champions/learnsets.ts b/data/mods/champions/learnsets.ts new file mode 100644 index 0000000000..622a4184da --- /dev/null +++ b/data/mods/champions/learnsets.ts @@ -0,0 +1,13451 @@ +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { + venusaur: { + learnset: { + acidspray: ["9M"], + amnesia: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9M"], + knockoff: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + outrage: ["9M"], + petalblizzard: ["9M"], + petaldance: ["9M"], + poisonjab: ["9M"], + poisonpowder: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + roar: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeppowder: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + terrainpulse: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M"], + weatherball: ["9M"], + worryseed: ["9M"], + }, + }, + charizard: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + ancientpower: ["9M"], + beatup: ["9M"], + bellydrum: ["9M"], + bite: ["9M"], + blastburn: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + counter: ["9M"], + crunch: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + inferno: ["9M"], + irontail: ["9M"], + megakick: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + temperflare: ["9M"], + thunderpunch: ["9M"], + weatherball: ["9M"], + willowisp: ["9M"], + }, + }, + blastoise: { + learnset: { + aquajet: ["9M"], + aquaring: ["9M"], + aquatail: ["9M"], + aurasphere: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bulldoze: ["9M"], + brickbreak: ["9M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + dragonpulse: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + flail: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lifedew: ["9M"], + liquidation: ["9M"], + megakick: ["9M"], + mirrorcoat: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shellsmash: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + terrainpulse: ["9M"], + waterpulse: ["9M"], + waterspout: ["9M"], + waterfall: ["9M"], + wavecrash: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + beedrill: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + assurance: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + crosspoison: ["9M"], + doublehit: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + dualwingbeat: ["9M"], + electroweb: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fellstinger: ["9M"], + focusenergy: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + knockoff: ["9M"], + lunge: ["9M"], + payback: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + pollenpuff: ["9M"], + pounce: ["9M"], + protect: ["9M"], + rest: ["9M"], + round: ["9M"], + screech: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stringshot: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + pidgeot: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + airslash: ["9M"], + attract: ["9M"], + bravebird: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + quickattack: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roost: ["9M"], + round: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + whirlwind: ["9M"], + }, + }, + arbok: { + learnset: { + acidspray: ["9M"], + beatup: ["9M"], + belch: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + coil: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gastroacid: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + glare: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + poisonfang: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + seedbomb: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spitup: ["9M"], + spite: ["9M"], + stockpile: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swallow: ["9M"], + switcheroo: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M"], + wrap: ["9M"], + }, + }, + pikachu: { + learnset: { + agility: ["9M"], + alluringvoice: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + dig: ["9M"], + discharge: ["9M"], + doubleteam: ["9M"], + drainingkiss: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + feint: ["9M"], + flail: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + nuzzle: ["9M"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + risingvoltage: ["9M"], + round: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + sweetkiss: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + upperhand: ["9M"], + voltswitch: ["9M"], + volttackle: ["9M"], + wildcharge: ["9M"], + wish: ["9M"], + zapcannon: ["9M"], + }, + }, + raichu: { + learnset: { + agility: ["9M"], + alluringvoice: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + discharge: ["9M"], + doubleteam: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + feint: ["9M"], + flail: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + nuzzle: ["9M"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + risingvoltage: ["9M"], + round: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + sweetkiss: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + upperhand: ["9M"], + voltswitch: ["9M"], + volttackle: ["9M"], + wildcharge: ["9M"], + wish: ["9M"], + zapcannon: ["9M"], + }, + }, + raichualola: { + learnset: { + agility: ["9M"], + alluringvoice: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + discharge: ["9M"], + doubleteam: ["9M"], + drainingkiss: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + feint: ["9M"], + flail: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + nuzzle: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + risingvoltage: ["9M"], + round: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + speedswap: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + surf: ["9M"], + sweetkiss: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + upperhand: ["9M"], + voltswitch: ["9M"], + volttackle: ["9M"], + wildcharge: ["9M"], + wish: ["9M"], + zapcannon: ["9M"], + }, + }, + clefable: { + learnset: { + afteryou: ["9M"], + airslash: ["9M"], + alluringvoice: ["9M"], + amnesia: ["9M"], + batonpass: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + cosmicpower: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + dualwingbeat: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + followme: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + healpulse: ["9M"], + healingwish: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + meteorbeam: ["9M"], + meteormash: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + moonlight: ["9M"], + mysticalfire: ["9M"], + nightshade: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + sing: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + triattack: ["9M"], + trick: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + wish: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + ninetales: { + learnset: { + agility: ["9M"], + attract: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bodyslam: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + disable: ["9M"], + doubleedge: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flail: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + healingwish: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + imprison: ["9M"], + inferno: ["9M"], + irontail: ["9M"], + memento: ["9M"], + mysticalfire: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + overheat: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psyshock: ["9M"], + quickattack: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scorchingsands: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailslap: ["9M"], + weatherball: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + ninetalesalola: { + learnset: { + agility: ["9M"], + attract: ["9M"], + auroraveil: ["9M"], + avalanche: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + disable: ["9M"], + doubleedge: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + foulplay: ["9M"], + freezedry: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + icebeam: ["9M"], + iceshard: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irontail: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + nastyplot: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + playrough: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + tailslap: ["9M"], + tripleaxel: ["9M"], + weatherball: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + arcanine: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + burnup: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + covet: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonpulse: ["9M"], + endure: ["9M"], + extremespeed: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + morningsun: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + ragingfury: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thrash: ["9M"], + thunderfang: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + }, + }, + arcaninehisui: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + burnup: ["9M"], + closecombat: ["9M"], + covet: ["9M"], + crunch: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonpulse: ["9M"], + endure: ["9M"], + extremespeed: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + headsmash: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + morningsun: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + ragingfury: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thrash: ["9M"], + thunderfang: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + }, + }, + alakazam: { + learnset: { + allyswitch: ["9M"], + attract: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + dazzlinggleam: ["9M"], + disable: ["9M"], + doubleteam: ["9M"], + drainpunch: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guardsplit: ["9M"], + guardswap: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + imprison: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + recover: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roleplay: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + speedswap: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + triattack: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + machamp: { + learnset: { + assurance: ["9M"], + attract: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + bulletpunch: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + crosschop: ["9M"], + crosspoison: ["9M"], + darkestlariat: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seismictoss: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + stormthrow: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + tickle: ["9M"], + wideguard: ["9M"], + }, + }, + victreebel: { + learnset: { + acidspray: ["9M"], + bodyslam: ["9M"], + bugbite: ["9M"], + bulletseed: ["9M"], + clearsmog: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gastroacid: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9M"], + knockoff: ["9M"], + leafblade: ["9M"], + leafstorm: ["9M"], + leechlife: ["9M"], + lunge: ["9M"], + poisonjab: ["9M"], + poisonpowder: ["9M"], + pounce: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeppowder: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spitup: ["9M"], + stockpile: ["9M"], + strengthsap: ["9M"], + stunspore: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swallow: ["9M"], + sweetscent: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + thief: ["9M"], + tickle: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M"], + weatherball: ["9M"], + worryseed: ["9M"], + wrap: ["9M"], + }, + }, + slowbro: { + learnset: { + amnesia: ["9M"], + avalanche: ["9M"], + belch: ["9M"], + bellydrum: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + curse: ["9M"], + dig: ["9M"], + disable: ["9M"], + dive: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + nastyplot: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + razorshell: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scald: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + thunderwave: ["9M"], + triattack: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + slowbrogalar: { + learnset: { + acidspray: ["9M"], + amnesia: ["9M"], + avalanche: ["9M"], + belch: ["9M"], + bellydrum: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + curse: ["9M"], + dig: ["9M"], + disable: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + nastyplot: ["9M"], + poisonjab: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psychup: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + razorshell: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + shellsidearm: ["9M"], + skillswap: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + thunderwave: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + triattack: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + gengar: { + learnset: { + acidspray: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + clearsmog: ["9M"], + confuseray: ["9M"], + corrosivegas: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + drainpunch: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + meanlook: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + perishsong: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + raindance: ["9M"], + reflecttype: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9M"], + skillswap: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + spite: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + }, + }, + kangaskhan: { + learnset: { + assurance: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + beatup: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + circlethrow: ["9M"], + counter: ["9M"], + crunch: ["9M"], + dig: ["9M"], + disable: ["9M"], + doublehit: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + hammerarm: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + lastresort: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sandstorm: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + terrainpulse: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + uproar: ["9M"], + whirlpool: ["9M"], + }, + }, + starmie: { + learnset: { + agility: ["9M"], + allyswitch: ["9M"], + ancientpower: ["9M"], + aquajet: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bulkup: ["9M"], + chargebeam: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + cosmicpower: ["9M"], + dazzlinggleam: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + gyroball: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + meteorbeam: ["9M"], + minimize: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychocut: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + recover: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scald: ["9M"], + selfdestruct: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + triattack: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + pinsir: { + learnset: { + aerialace: ["9M"], + attract: ["9M"], + bind: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bugbite: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + circlethrow: ["9M"], + closecombat: ["9M"], + detect: ["9M"], + dig: ["9M"], + doublehit: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + flail: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + guillotine: ["9M"], + hardpress: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lunge: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + seismictoss: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stoneedge: ["9M"], + stormthrow: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + xscissor: ["9M"], + }, + }, + tauros: { + learnset: { + assurance: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + megahorn: ["9M"], + outrage: ["9M"], + payback: ["9M"], + protect: ["9M"], + ragingbull: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + whirlpool: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + }, + taurospaldeacombat: { + learnset: { + assurance: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + megahorn: ["9M"], + outrage: ["9M"], + protect: ["9M"], + ragingbull: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + }, + taurospaldeablaze: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + megahorn: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + ragingbull: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thrash: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + taurospaldeaaqua: { + learnset: { + aquajet: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + megahorn: ["9M"], + outrage: ["9M"], + protect: ["9M"], + ragingbull: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swagger: ["9M"], + thief: ["9M"], + thrash: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + wavecrash: ["9M"], + whirlpool: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + }, + gyarados: { + learnset: { + aquatail: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + dragoncheer: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flail: ["9M"], + flamethrower: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + muddywater: ["9M"], + outrage: ["9M"], + payback: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scald: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spite: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thrash: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + }, + }, + ditto: { + learnset: { + transform: ["9M"], + }, + }, + vaporeon: { + learnset: { + acidarmor: ["9M"], + alluringvoice: ["9M"], + aquaring: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + detect: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + flipturn: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + lastresort: ["9M"], + liquidation: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + scald: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + jolteon: { + learnset: { + agility: ["9M"], + alluringvoice: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + detect: ["9M"], + dig: ["9M"], + discharge: ["9M"], + doubleedge: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + metalsound: ["9M"], + mudslap: ["9M"], + pinmissile: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + roar: ["9M"], + round: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + voltswitch: ["9M"], + weatherball: ["9M"], + wildcharge: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + flareon: { + learnset: { + alluringvoice: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flail: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lastresort: ["9M"], + lavaplume: ["9M"], + mudslap: ["9M"], + overheat: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + temperflare: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + weatherball: ["9M"], + willowisp: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + aerodactyl: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + ancientpower: ["9M"], + assurance: ["9M"], + attract: ["9M"], + bite: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dualwingbeat: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + flamethrower: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + meteorbeam: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + steelwing: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + whirlwind: ["9M"], + wideguard: ["9M"], + }, + }, + snorlax: { + learnset: { + amnesia: ["9M"], + attract: ["9M"], + belch: ["9M"], + bellydrum: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + counter: ["9M"], + covet: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + fissure: ["9M"], + flail: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gastroacid: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9M"], + hardpress: ["9M"], + heatcrash: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + lastresort: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recycle: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + screech: ["9M"], + seedbomb: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stockpile: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + supercellslam: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swallow: ["9M"], + terrainpulse: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + dragonite: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aquajet: ["9M"], + aquatail: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dive: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + extremespeed: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + steelwing: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + tailwind: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlwind: ["9M"], + wrap: ["9M"], + }, + }, + meganium: { + learnset: { + ancientpower: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + counter: ["9M"], + curse: ["9M"], + dazzlinggleam: ["9M"], + doubleedge: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + leafblade: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + petalblizzard: ["9M"], + petaldance: ["9M"], + poisonpowder: ["9M"], + pollenpuff: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + trailblaze: ["9M"], + weatherball: ["9M"], + zenheadbutt: ["9M"], + }, + }, + typhlosion: { + learnset: { + aerialace: ["9M"], + blastburn: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + burnup: ["9M"], + burningjealousy: ["9M"], + covet: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + eruption: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + inferno: ["9M"], + ironhead: ["9M"], + lavaplume: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + overheat: ["9M"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scorchingsands: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + temperflare: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + typhlosionhisui: { + learnset: { + aerialace: ["9M"], + blastburn: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + burnup: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + covet: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + eruption: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + heatwave: ["9M"], + hex: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + infernalparade: ["9M"], + inferno: ["9M"], + ironhead: ["9M"], + lavaplume: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mysticalfire: ["9M"], + nightshade: ["9M"], + overheat: ["9M"], + playrough: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + round: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + temperflare: ["9M"], + thunderpunch: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + feraligatr: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + ancientpower: ["9M"], + aquajet: ["9M"], + aquatail: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + counter: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + flatter: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + outrage: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + thrash: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + }, + }, + ariados: { + learnset: { + acidspray: ["9M"], + agility: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + crosspoison: ["9M"], + dig: ["9M"], + disable: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + fellstinger: ["9M"], + firstimpression: ["9M"], + focusenergy: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + infestation: ["9M"], + knockoff: ["9M"], + leechlife: ["9M"], + lunge: ["9M"], + megahorn: ["9M"], + nightshade: ["9M"], + nightslash: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychic: ["9M"], + ragepowder: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowsneak: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stickyweb: ["9M"], + stompingtantrum: ["9M"], + stringshot: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + toxicthread: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + ampharos: { + learnset: { + afteryou: ["9M"], + agility: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + cottonguard: ["9M"], + cottonspore: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + discharge: ["9M"], + doubleedge: ["9M"], + dragoncheer: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + flatter: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + magneticflux: ["9M"], + megakick: ["9M"], + meteorbeam: ["9M"], + outrage: ["9M"], + paraboliccharge: ["9M"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + roar: ["9M"], + round: ["9M"], + safeguard: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + supercellslam: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + zapcannon: ["9M"], + }, + }, + azumarill: { + learnset: { + alluringvoice: ["9M"], + amnesia: ["9M"], + aquajet: ["9M"], + aquaring: ["9M"], + aquatail: ["9M"], + bellydrum: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + perishsong: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + sing: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + soak: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + surf: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + }, + }, + politoed: { + learnset: { + amnesia: ["9M"], + attract: ["9M"], + bellydrum: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + perishsong: ["9M"], + pound: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swagger: ["9M"], + thief: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + }, + }, + espeon: { + learnset: { + alluringvoice: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + dazzlinggleam: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + focusenergy: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + morningsun: ["9M"], + mudslap: ["9M"], + powergem: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicfangs: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thunderwave: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + weatherball: ["9M"], + wish: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + umbreon: { + learnset: { + alluringvoice: ["9M"], + assurance: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + copycat: ["9M"], + covet: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + focusenergy: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + guardswap: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lashout: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + meanlook: ["9M"], + moonlight: ["9M"], + mudslap: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderwave: ["9M"], + tickle: ["9M"], + torment: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + weatherball: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + slowking: { + learnset: { + amnesia: ["9M"], + avalanche: ["9M"], + belch: ["9M"], + bellydrum: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + chillyreception: ["9M"], + curse: ["9M"], + dig: ["9M"], + disable: ["9M"], + dive: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + nastyplot: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + razorshell: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scald: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + triattack: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + slowkinggalar: { + learnset: { + acidspray: ["9M"], + amnesia: ["9M"], + avalanche: ["9M"], + belch: ["9M"], + bellydrum: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + chillyreception: ["9M"], + curse: ["9M"], + dig: ["9M"], + disable: ["9M"], + dive: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + eeriespell: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + nastyplot: ["9M"], + poisonjab: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + razorshell: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snarl: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + triattack: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + forretress: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + bulldoze: ["9M"], + counter: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + explosion: ["9M"], + facade: ["9M"], + flail: ["9M"], + flashcannon: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + gyroball: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + lunge: ["9M"], + magnetrise: ["9M"], + metalsound: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + powertrick: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + seedbomb: ["9M"], + selfdestruct: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelroller: ["9M"], + stoneedge: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thunderwave: ["9M"], + toxicspikes: ["9M"], + venoshock: ["9M"], + voltswitch: ["9M"], + zapcannon: ["9M"], + }, + }, + steelix: { + learnset: { + ancientpower: ["9M"], + attract: ["9M"], + bind: ["9M"], + block: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + fissure: ["9M"], + flail: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + headsmash: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + magnetrise: ["9M"], + meteorbeam: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + screech: ["9M"], + selfdestruct: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelroller: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + thunderfang: ["9M"], + wideguard: ["9M"], + }, + }, + scizor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + bulletpunch: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + curse: ["9M"], + defog: ["9M"], + doublehit: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + hardpress: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + lunge: ["9M"], + nightslash: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychocut: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roost: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + steelbeam: ["9M"], + steelwing: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + vacuumwave: ["9M"], + xscissor: ["9M"], + }, + }, + heracross: { + learnset: { + aerialace: ["9M"], + assurance: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + circlethrow: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + curse: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + flail: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lunge: ["9M"], + megahorn: ["9M"], + nightslash: ["9M"], + pinmissile: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + seismictoss: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + spikes: ["9M"], + stoneedge: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + trailblaze: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + }, + }, + skarmory: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + assurance: ["9M"], + bodypress: ["9M"], + bravebird: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + drillpeck: ["9M"], + drillrun: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + flashcannon: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + metalsound: ["9M"], + nightslash: ["9M"], + payback: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + thief: ["9M"], + whirlwind: ["9M"], + xscissor: ["9M"], + }, + }, + houndoom: { + learnset: { + beatup: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + burningjealousy: ["9M"], + comeuppance: ["9M"], + counter: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + doubleedge: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + inferno: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + overheat: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + torment: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + willowisp: ["9M"], + }, + }, + tyranitar: { + learnset: { + aerialace: ["9M"], + ancientpower: ["9M"], + assurance: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + outrage: ["9M"], + payback: ["9M"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thrash: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + uproar: ["9M"], + }, + }, + pelipper: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aquaring: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bravebird: ["9M"], + chillingwater: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + fling: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + liquidation: ["9M"], + muddywater: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roost: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + soak: ["9M"], + spitup: ["9M"], + steelwing: ["9M"], + stockpile: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swallow: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wideguard: ["9M"], + }, + }, + gardevoir: { + learnset: { + alluringvoice: ["9M"], + aurasphere: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + doubleteam: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + guardswap: ["9M"], + healpulse: ["9M"], + healingwish: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + meanlook: ["9M"], + memento: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + mysticalfire: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + tripleaxel: ["9M"], + vacuumwave: ["9M"], + willowisp: ["9M"], + wish: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + sableye: { + learnset: { + aerialace: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + detect: ["9M"], + dig: ["9M"], + disable: ["9M"], + drainpunch: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + feint: ["9M"], + firepunch: ["9M"], + flatter: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + gyroball: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + meanlook: ["9M"], + megakick: ["9M"], + metalburst: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + nightslash: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + poltergeist: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + quash: ["9M"], + raindance: ["9M"], + recover: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9M"], + shadowsneak: ["9M"], + skillswap: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + torment: ["9M"], + trick: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + aggron: { + learnset: { + ancientpower: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + headsmash: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + metalburst: ["9M"], + metalsound: ["9M"], + meteorbeam: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelroller: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + uproar: ["9M"], + whirlpool: ["9M"], + }, + }, + medicham: { + learnset: { + acupressure: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aurasphere: ["9M"], + axekick: ["9M"], + batonpass: ["9M"], + blazekick: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulletpunch: ["9M"], + calmmind: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + detect: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + feint: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + guardswap: ["9M"], + helpinghand: ["9M"], + highjumpkick: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + imprison: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + poisonjab: ["9M"], + powerswap: ["9M"], + powertrick: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9M"], + psyshock: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + recover: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + zenheadbutt: ["9M"], + }, + }, + manectric: { + learnset: { + agility: ["9M"], + attract: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + crunch: ["9M"], + curse: ["9M"], + discharge: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + flamethrower: ["9M"], + gigaimpact: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + overheat: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + substitute: ["9M"], + supercellslam: ["9M"], + switcheroo: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + sharpedo: { + learnset: { + agility: ["9M"], + ancientpower: ["9M"], + aquajet: ["9M"], + assurance: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bounce: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + flipturn: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + nightslash: ["9M"], + payback: ["9M"], + poisonfang: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scald: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thrash: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + zenheadbutt: ["9M"], + }, + }, + camerupt: { + learnset: { + amnesia: ["9M"], + ancientpower: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + burningjealousy: ["9M"], + charm: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + eruption: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + fissure: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + flashcannon: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + growth: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + lavaplume: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + overheat: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + selfdestruct: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spitup: ["9M"], + stealthrock: ["9M"], + stockpile: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swallow: ["9M"], + temperflare: ["9M"], + trailblaze: ["9M"], + willowisp: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + torkoal: { + learnset: { + amnesia: ["9M"], + ancientpower: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + burningjealousy: ["9M"], + clearsmog: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + eruption: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + fissure: ["9M"], + flail: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + inferno: ["9M"], + irondefense: ["9M"], + lavaplume: ["9M"], + overheat: ["9M"], + protect: ["9M"], + rapidspin: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scorchingsands: ["9M"], + selfdestruct: ["9M"], + shellsmash: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + temperflare: ["9M"], + weatherball: ["9M"], + willowisp: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + altaria: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + alluringvoice: ["9M"], + bodyslam: ["9M"], + bravebird: ["9M"], + breakingswipe: ["9M"], + bulldoze: ["9M"], + cottonguard: ["9M"], + dazzlinggleam: ["9M"], + defog: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dualwingbeat: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamethrower: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + moonblast: ["9M"], + outrage: ["9M"], + perishsong: ["9M"], + playrough: ["9M"], + pluck: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + roost: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sing: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + weatherball: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + }, + }, + milotic: { + learnset: { + alluringvoice: ["9M"], + aquaring: ["9M"], + aquatail: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + coil: ["9M"], + confuseray: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + dragoncheer: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + flail: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + mirrorcoat: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + protect: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + recover: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scald: ["9M"], + scaleshot: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + tickle: ["9M"], + tripleaxel: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wrap: ["9M"], + }, + }, + castform: { + learnset: { + amnesia: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + cosmicpower: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + futuresight: ["9M"], + guardswap: ["9M"], + hex: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scald: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + weatherball: ["9M"], + }, + }, + banette: { + learnset: { + burningjealousy: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + magicroom: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roleplay: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9M"], + shadowsneak: ["9M"], + skillswap: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spite: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + torment: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + chimecho: { + learnset: { + allyswitch: ["9M"], + batonpass: ["9M"], + boomburst: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + cosmicpower: ["9M"], + curse: ["9M"], + dazzlinggleam: ["9M"], + disable: ["9M"], + doubleedge: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flashcannon: ["9M"], + futuresight: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + healbell: ["9M"], + healpulse: ["9M"], + healingwish: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + metalsound: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + recover: ["9M"], + recycle: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + screech: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + wish: ["9M"], + wrap: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + absol: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + assurance: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brutalswing: ["9M"], + calmmind: ["9M"], + closecombat: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + detect: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + focusenergy: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + meanlook: ["9M"], + megahorn: ["9M"], + nightslash: ["9M"], + payback: ["9M"], + perishsong: ["9M"], + phantomforce: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychocut: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + willowisp: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + glalie: { + learnset: { + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + disable: ["9M"], + doubleteam: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + explosion: ["9M"], + facade: ["9M"], + faketears: ["9M"], + foulplay: ["9M"], + freezedry: ["9M"], + frostbreath: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + iceshard: ["9M"], + icespinner: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + sheercold: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + spikes: ["9M"], + spite: ["9M"], + steelroller: ["9M"], + substitute: ["9M"], + switcheroo: ["9M"], + taunt: ["9M"], + trailblaze: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + }, + }, + torterra: { + learnset: { + amnesia: ["9M"], + attract: ["9M"], + bite: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + crunch: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + hardpress: ["9M"], + headlongrush: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + seedbomb: ["9M"], + shellsmash: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spitup: ["9M"], + stealthrock: ["9M"], + stockpile: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swallow: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + thrash: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + wideguard: ["9M"], + woodhammer: ["9M"], + worryseed: ["9M"], + zenheadbutt: ["9M"], + }, + }, + infernape: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + attract: ["9M"], + aurasphere: ["9M"], + blastburn: ["9M"], + blazekick: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + feint: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + machpunch: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + overheat: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychup: ["9M"], + ragingfury: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + switcheroo: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + torment: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + empoleon: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aquajet: ["9M"], + aquaring: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + drillpeck: ["9M"], + dualwingbeat: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + metalsound: ["9M"], + mudslap: ["9M"], + powertrip: ["9M"], + protect: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swagger: ["9M"], + swordsdance: ["9M"], + throatchop: ["9M"], + tripleaxel: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + wavecrash: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + yawn: ["9M"], + }, + }, + luxray: { + learnset: { + agility: ["9M"], + babydolleyes: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + discharge: ["9M"], + doubleedge: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + nightslash: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + supercellslam: ["9M"], + superpower: ["9M"], + swagger: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + roserade: { + learnset: { + attract: ["9M"], + bodyslam: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + cottonspore: ["9M"], + dazzlinggleam: ["9M"], + endure: ["9M"], + energyball: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lifedew: ["9M"], + petalblizzard: ["9M"], + petaldance: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sleeppowder: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + stunspore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + venoshock: ["9M"], + weatherball: ["9M"], + worryseed: ["9M"], + }, + }, + rampardos: { + learnset: { + ancientpower: ["9M"], + assurance: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + hammerarm: ["9M"], + headsmash: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + meteorbeam: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + supercellslam: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + thrash: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + whirlwind: ["9M"], + zenheadbutt: ["9M"], + }, + }, + bastiodon: { + learnset: { + ancientpower: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + counter: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + fissure: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + focusenergy: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + guardsplit: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + metalburst: ["9M"], + metalsound: ["9M"], + meteorbeam: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelroller: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + wideguard: ["9M"], + }, + }, + lopunny: { + learnset: { + acrobatics: ["9M"], + afteryou: ["9M"], + agility: ["9M"], + assurance: ["9M"], + attract: ["9M"], + aurasphere: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + blizzard: ["9M"], + bounce: ["9M"], + brutalswing: ["9M"], + charm: ["9M"], + circlethrow: ["9M"], + closecombat: ["9M"], + copycat: ["9M"], + cosmicpower: ["9M"], + cottonguard: ["9M"], + dig: ["9M"], + doublehit: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + dynamicpunch: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + firepunch: ["9M"], + flail: ["9M"], + flatter: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + healingwish: ["9M"], + helpinghand: ["9M"], + highjumpkick: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + irontail: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + machpunch: ["9M"], + megakick: ["9M"], + mirrorcoat: ["9M"], + payback: ["9M"], + playrough: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + round: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9M"], + switcheroo: ["9M"], + swordsdance: ["9M"], + teeterdance: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + }, + }, + spiritomb: { + learnset: { + allyswitch: ["9M"], + bodyslam: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + thief: ["9M"], + toxic: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + }, + }, + garchomp: { + learnset: { + aerialace: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + outrage: ["9M"], + poisonjab: ["9M"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + thrash: ["9M"], + thunderfang: ["9M"], + }, + }, + lucario: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aurasphere: ["9M"], + bite: ["9M"], + blazekick: ["9M"], + bodyslam: ["9M"], + bonerush: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + bulletpunch: ["9M"], + calmmind: ["9M"], + circlethrow: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + copycat: ["9M"], + counter: ["9M"], + crosschop: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + detect: ["9M"], + dig: ["9M"], + dragonpulse: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + extremespeed: ["9M"], + facade: ["9M"], + feint: ["9M"], + finalgambit: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + highjumpkick: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + irontail: ["9M"], + lifedew: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + metalsound: ["9M"], + meteormash: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + terrainpulse: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + waterpulse: ["9M"], + zenheadbutt: ["9M"], + }, + }, + hippowdon: { + learnset: { + amnesia: ["9M"], + bite: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + fissure: ["9M"], + gigaimpact: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + ironhead: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scorchingsands: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spitup: ["9M"], + stealthrock: ["9M"], + stockpile: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swallow: ["9M"], + thunderfang: ["9M"], + whirlwind: ["9M"], + yawn: ["9M"], + }, + }, + toxicroak: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + belch: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + bulletpunch: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + corrosivegas: ["9M"], + counter: ["9M"], + crosschop: ["9M"], + crosspoison: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + feint: ["9M"], + flatter: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + spite: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swagger: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + toxic: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + abomasnow: { + learnset: { + auroraveil: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + frostbreath: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + growth: ["9M"], + hardpress: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icehammer: ["9M"], + icepunch: ["9M"], + iceshard: ["9M"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + ingrain: ["9M"], + irontail: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sheercold: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + swagger: ["9M"], + swordsdance: ["9M"], + trailblaze: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + woodhammer: ["9M"], + }, + }, + weavile: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + assurance: ["9M"], + avalanche: ["9M"], + batonpass: ["9M"], + beatup: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + counter: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doublehit: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + feint: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + iceshard: ["9M"], + icespinner: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + nightslash: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychocut: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + upperhand: ["9M"], + waterpulse: ["9M"], + xscissor: ["9M"], + }, + }, + rhyperior: { + learnset: { + avalanche: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + counter: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + guardsplit: ["9M"], + hammerarm: ["9M"], + heatcrash: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + horndrill: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + megakick: ["9M"], + megahorn: ["9M"], + metalburst: ["9M"], + meteorbeam: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockpolish: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rockwrecker: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + supercellslam: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + uproar: ["9M"], + }, + }, + leafeon: { + learnset: { + aerialace: ["9M"], + alluringvoice: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + bulletseed: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + focusenergy: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + knockoff: ["9M"], + lastresort: ["9M"], + leafblade: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + weatherball: ["9M"], + wish: ["9M"], + xscissor: ["9M"], + yawn: ["9M"], + }, + }, + glaceon: { + learnset: { + alluringvoice: ["9M"], + avalanche: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + focusenergy: ["9M"], + freezedry: ["9M"], + frostbreath: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + iceshard: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + lastresort: ["9M"], + mirrorcoat: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + gliscor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + assurance: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + counter: ["9M"], + crabhammer: ["9M"], + crosspoison: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dualwingbeat: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + firefang: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lunge: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9M"], + payback: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snore: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + steelwing: ["9M"], + stoneedge: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + mamoswine: { + learnset: { + amnesia: ["9M"], + ancientpower: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + curse: ["9M"], + dig: ["9M"], + doublehit: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9M"], + flail: ["9M"], + freezedry: ["9M"], + gigaimpact: ["9M"], + hardpress: ["9M"], + haze: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + iceshard: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + trailblaze: ["9M"], + }, + }, + gallade: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + airslash: ["9M"], + alluringvoice: ["9M"], + aquacutter: ["9M"], + aurasphere: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + doubleteam: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + feint: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + leafblade: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicroom: ["9M"], + meanlook: ["9M"], + megakick: ["9M"], + memento: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["9M"], + nightshade: ["9M"], + nightslash: ["9M"], + painsplit: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9M"], + psyshock: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sacredsword: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarblade: ["9M"], + stoneedge: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + tripleaxel: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + wideguard: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + froslass: { + learnset: { + auroraveil: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodyslam: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + curse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + doubleteam: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + frostbreath: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + iceshard: ["9M"], + icespinner: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + lightscreen: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + spikes: ["9M"], + spite: ["9M"], + substitute: ["9M"], + switcheroo: ["9M"], + taunt: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + tripleaxel: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + willowisp: ["9M"], + }, + }, + rotom: { + learnset: { + charge: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M"], + discharge: ["9M"], + doubleteam: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hypervoice: ["9M"], + lightscreen: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + round: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trick: ["9M"], + uproar: ["9M"], + voltswitch: ["9M"], + willowisp: ["9M"], + }, + }, + rotomheat: { + learnset: { + overheat: ["9R"], + }, + }, + rotomwash: { + learnset: { + hydropump: ["9R"], + }, + }, + rotomfrost: { + learnset: { + blizzard: ["9R"], + }, + }, + rotomfan: { + learnset: { + airslash: ["9R"], + }, + }, + rotommow: { + learnset: { + leafstorm: ["9R"], + }, + }, + serperior: { + learnset: { + aerialace: ["9M"], + attract: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulletseed: ["9M"], + calmmind: ["9M"], + coil: ["9M"], + doubleedge: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + frenzyplant: ["9M"], + gastroacid: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + glare: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + leafblade: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + meanlook: ["9M"], + mirrorcoat: ["9M"], + outrage: ["9M"], + petalblizzard: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + taunt: ["9M"], + trailblaze: ["9M"], + wrap: ["9M"], + }, + }, + emboar: { + learnset: { + assurance: ["9M"], + blastburn: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + burnup: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gyroball: ["9M"], + hammerarm: ["9M"], + hardpress: ["9M"], + headsmash: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudslap: ["9M"], + overheat: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scald: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + stormthrow: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thrash: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + samurott: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + aquacutter: ["9M"], + aquajet: ["9M"], + aquatail: ["9M"], + assurance: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + detect: ["9M"], + dig: ["9M"], + dive: ["9M"], + drillrun: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + liquidation: ["9M"], + megahorn: ["9M"], + nightslash: ["9M"], + protect: ["9M"], + raindance: ["9M"], + razorshell: ["9M"], + rest: ["9M"], + round: ["9M"], + sacredsword: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + soak: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + xscissor: ["9M"], + }, + }, + samurotthisui: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + aquacutter: ["9M"], + aquajet: ["9M"], + aquatail: ["9M"], + assurance: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + ceaselessedge: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + darkpulse: ["9M"], + detect: ["9M"], + dig: ["9M"], + dive: ["9M"], + drillrun: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + megahorn: ["9M"], + nightslash: ["9M"], + protect: ["9M"], + raindance: ["9M"], + razorshell: ["9M"], + rest: ["9M"], + round: ["9M"], + sacredsword: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + soak: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + whirlpool: ["9M"], + xscissor: ["9M"], + }, + }, + watchog: { + learnset: { + afteryou: ["9M"], + assurance: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bulletseed: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + icepunch: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + meanlook: ["9M"], + mudshot: ["9M"], + nastyplot: ["9M"], + protect: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + screech: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swordsdance: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + zenheadbutt: ["9M"], + }, + }, + liepard: { + learnset: { + assurance: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + burningjealousy: ["9M"], + charm: ["9M"], + copycat: ["9M"], + covet: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + doubleteam: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + nastyplot: ["9M"], + nightslash: ["9M"], + payback: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + psychocut: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + screech: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + thunderwave: ["9M"], + torment: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + uturn: ["9M"], + yawn: ["9M"], + }, + }, + simisage: { + learnset: { + acrobatics: ["9M"], + attract: ["9M"], + belch: ["9M"], + bite: ["9M"], + brickbreak: ["9M"], + bulletseed: ["9M"], + crunch: ["9M"], + dig: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + protect: ["9M"], + recycle: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + stuffcheeks: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + torment: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + }, + }, + simisear: { + learnset: { + acrobatics: ["9M"], + amnesia: ["9M"], + attract: ["9M"], + belch: ["9M"], + bite: ["9M"], + blazekick: ["9M"], + brickbreak: ["9M"], + burningjealousy: ["9M"], + crunch: ["9M"], + dig: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M"], + overheat: ["9M"], + payback: ["9M"], + protect: ["9M"], + recycle: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stuffcheeks: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + uproar: ["9M"], + willowisp: ["9M"], + yawn: ["9M"], + }, + }, + simipour: { + learnset: { + acrobatics: ["9M"], + aquaring: ["9M"], + attract: ["9M"], + belch: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + brickbreak: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + dig: ["9M"], + dive: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recycle: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scald: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stuffcheeks: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + surf: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + uproar: ["9M"], + waterfall: ["9M"], + }, + }, + excadrill: { + learnset: { + aerialace: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crushclaw: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + horndrill: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + megahorn: ["9M"], + metalsound: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + rapidspin: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + smartstrike: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + throatchop: ["9M"], + xscissor: ["9M"], + }, + }, + audino: { + learnset: { + afteryou: ["9M"], + allyswitch: ["9M"], + amnesia: ["9M"], + attract: ["9M"], + babydolleyes: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + healpulse: ["9M"], + healingwish: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + lastresort: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mistyterrain: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + simplebeam: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + sweetkiss: ["9M"], + throatchop: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + wish: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + conkeldurr: { + learnset: { + attract: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + curse: ["9M"], + defog: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + hammerarm: ["9M"], + hardpress: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + machpunch: ["9M"], + megakick: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + upperhand: ["9M"], + wideguard: ["9M"], + }, + }, + whimsicott: { + learnset: { + attract: ["9M"], + beatup: ["9M"], + charm: ["9M"], + cottonguard: ["9M"], + cottonspore: ["9M"], + dazzlinggleam: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + memento: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + playrough: ["9M"], + poisonpowder: ["9M"], + protect: ["9M"], + psychic: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stunspore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + switcheroo: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + thief: ["9M"], + tickle: ["9M"], + trickroom: ["9M"], + uturn: ["9M"], + worryseed: ["9M"], + }, + }, + krookodile: { + learnset: { + aerialace: ["9M"], + aquatail: ["9M"], + assurance: ["9M"], + beatup: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + fissure: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + payback: ["9M"], + powertrip: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + torment: ["9M"], + uproar: ["9M"], + }, + }, + cofagrigus: { + learnset: { + allyswitch: ["9M"], + attract: ["9M"], + bodypress: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guardsplit: ["9M"], + guardswap: ["9M"], + haze: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + meanlook: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + powersplit: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaryface: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + thief: ["9M"], + toxicspikes: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + garbodor: { + learnset: { + acidspray: ["9M"], + amnesia: ["9M"], + ancientpower: ["9M"], + attract: ["9M"], + belch: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + clearsmog: ["9M"], + corrosivegas: ["9M"], + crosspoison: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + drainpunch: ["9M"], + endure: ["9M"], + explosion: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + hyperbeam: ["9M"], + mudshot: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + recycle: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + round: ["9M"], + screech: ["9M"], + seedbomb: ["9M"], + selfdestruct: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + stockpile: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swallow: ["9M"], + thief: ["9M"], + thunderbolt: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + venoshock: ["9M"], + }, + }, + zoroark: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + assurance: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + counter: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + detect: ["9M"], + dig: ["9M"], + encore: ["9M"], + endure: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightdaze: ["9M"], + nightshade: ["9M"], + nightslash: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + torment: ["9M"], + toxic: ["9M"], + trick: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + }, + }, + zoroarkhisui: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + assurance: ["9M"], + bittermalice: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + comeuppance: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + detect: ["9M"], + dig: ["9M"], + endure: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + spite: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + torment: ["9M"], + trick: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + willowisp: ["9M"], + }, + }, + reuniclus: { + learnset: { + acidarmor: ["9M"], + allyswitch: ["9M"], + attract: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + drainpunch: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + guardswap: ["9M"], + gyroball: ["9M"], + hammerarm: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + recover: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + steelroller: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + vanilluxe: { + learnset: { + acidarmor: ["9M"], + allyswitch: ["9M"], + attract: ["9M"], + auroraveil: ["9M"], + avalanche: ["9M"], + beatup: ["9M"], + blizzard: ["9M"], + chillingwater: ["9M"], + endure: ["9M"], + explosion: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + freezedry: ["9M"], + frostbreath: ["9M"], + gigaimpact: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + iceshard: ["9M"], + icespinner: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + magnetrise: ["9M"], + mirrorcoat: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + selfdestruct: ["9M"], + sheercold: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + taunt: ["9M"], + uproar: ["9M"], + weatherball: ["9M"], + }, + }, + emolga: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + airslash: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + covet: ["9M"], + defog: ["9M"], + discharge: ["9M"], + doubleteam: ["9M"], + dualwingbeat: ["9M"], + eerieimpulse: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fling: ["9M"], + helpinghand: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + nuzzle: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + roost: ["9M"], + round: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + speedswap: ["9M"], + substitute: ["9M"], + taunt: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + uturn: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + chandelure: { + learnset: { + acidarmor: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + clearsmog: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + doubleteam: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + heatwave: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + inferno: ["9M"], + lashout: ["9M"], + memento: ["9M"], + minimize: ["9M"], + mysticalfire: ["9M"], + nightshade: ["9M"], + overheat: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + poltergeist: ["9M"], + powersplit: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + }, + }, + beartic: { + learnset: { + aerialace: ["9M"], + aquajet: ["9M"], + assurance: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + flail: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + frostbreath: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sheercold: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swagger: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + trailblaze: ["9M"], + waterpulse: ["9M"], + xscissor: ["9M"], + yawn: ["9M"], + }, + }, + stunfisk: { + learnset: { + attract: ["9M"], + bounce: ["9M"], + bulldoze: ["9M"], + charge: ["9M"], + curse: ["9M"], + dig: ["9M"], + discharge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9M"], + flail: ["9M"], + foulplay: ["9M"], + lashout: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflecttype: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scald: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + surf: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + uproar: ["9M"], + yawn: ["9M"], + }, + }, + stunfiskgalar: { + learnset: { + attract: ["9M"], + bind: ["9M"], + bounce: ["9M"], + bulldoze: ["9M"], + counter: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9M"], + flail: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + icefang: ["9M"], + irondefense: ["9M"], + lashout: ["9M"], + metalsound: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflecttype: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scald: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snaptrap: ["9M"], + snore: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + surf: ["9M"], + terrainpulse: ["9M"], + thunderwave: ["9M"], + uproar: ["9M"], + yawn: ["9M"], + }, + }, + golurk: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + chargebeam: ["9M"], + closecombat: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + gyroball: ["9M"], + hammerarm: ["9M"], + hardpress: ["9M"], + headlongrush: ["9M"], + heatcrash: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scorchingsands: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + shadowpunch: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + trick: ["9M"], + zenheadbutt: ["9M"], + }, + }, + hydreigon: { + learnset: { + acrobatics: ["9M"], + assurance: ["9M"], + beatup: ["9M"], + belch: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + doublehit: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + dualwingbeat: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + headsmash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + nastyplot: ["9M"], + outrage: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + steelwing: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + thunderwave: ["9M"], + triattack: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + zenheadbutt: ["9M"], + }, + }, + volcarona: { + learnset: { + acrobatics: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + amnesia: ["9M"], + bodyslam: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + calmmind: ["9M"], + doubleedge: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + fierydance: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fly: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + leechlife: ["9M"], + lightscreen: ["9M"], + lunge: ["9M"], + morningsun: ["9M"], + mysticalfire: ["9M"], + overheat: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychic: ["9M"], + quiverdance: ["9M"], + ragepowder: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + screech: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stringshot: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + thrash: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + whirlwind: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + chesnaught: { + learnset: { + aerialace: ["9M"], + bellydrum: ["9M"], + bite: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dragonclaw: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + feint: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + gyroball: ["9M"], + hammerarm: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spikyshield: ["9M"], + steelroller: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + superpower: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + taunt: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + wideguard: ["9M"], + woodhammer: ["9M"], + zenheadbutt: ["9M"], + }, + }, + delphox: { + learnset: { + agility: ["9M"], + blastburn: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + copycat: ["9M"], + dazzlinggleam: ["9M"], + doubleteam: ["9M"], + encore: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + howl: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9M"], + imprison: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + magicroom: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + mysticalfire: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + overheat: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roleplay: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scorchingsands: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + switcheroo: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + wish: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + greninja: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + blizzard: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + chillingwater: ["9M"], + counter: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + dive: ["9M"], + doubleteam: ["9M"], + endure: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roleplay: ["9M"], + round: ["9M"], + shadowsneak: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgewave: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + surf: ["9M"], + switcheroo: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + waterpulse: ["9M"], + watershuriken: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + }, + }, + diggersby: { + learnset: { + agility: ["9M"], + attract: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fissure: ["9M"], + flail: ["9M"], + fling: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scorchingsands: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snore: ["9M"], + spikes: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + superfang: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + }, + }, + talonflame: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + blazekick: ["9M"], + bravebird: ["9M"], + bulkup: ["9M"], + defog: ["9M"], + doubleedge: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + feint: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flail: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + overheat: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roost: ["9M"], + round: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + whirlwind: ["9M"], + willowisp: ["9M"], + }, + }, + vivillon: { + learnset: { + acrobatics: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + poisonpowder: ["9M"], + pollenpuff: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychic: ["9M"], + quiverdance: ["9M"], + ragepowder: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + skittersmack: ["9M"], + sleeppowder: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stringshot: ["9M"], + strugglebug: ["9M"], + stunspore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + uturn: ["9M"], + weatherball: ["9M"], + whirlwind: ["9M"], + }, + }, + vivillonfancy: {}, + vivillonpokeball: {}, + floetteeternal: { + learnset: { + alluringvoice: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + dazzlinggleam: ["9M"], + drainingkiss: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + lightofruin: ["9M"], + lightscreen: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + petalblizzard: ["9M"], + petaldance: ["9M"], + pollenpuff: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + safeguard: ["9M"], + seedbomb: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + synthesis: ["9M"], + tearfullook: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + wish: ["9M"], + }, + }, + florges: { + learnset: { + alluringvoice: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + dazzlinggleam: ["9M"], + drainingkiss: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + lightscreen: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + petalblizzard: ["9M"], + petaldance: ["9M"], + pollenpuff: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + seedbomb: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + synthesis: ["9M"], + tearfullook: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + wish: ["9M"], + }, + }, + pangoro: { + learnset: { + attract: ["9M"], + beatup: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + bulletpunch: ["9M"], + circlethrow: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + comeuppance: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + darkestlariat: ["9M"], + detect: ["9M"], + dig: ["9M"], + dragonclaw: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9M"], + headlongrush: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icepunch: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + nightslash: ["9M"], + outrage: ["9M"], + partingshot: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + powertrip: ["9M"], + protect: ["9M"], + quash: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seismictoss: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + stormthrow: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + uproar: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + furfrou: { + learnset: { + attract: ["9M"], + babydolleyes: ["9M"], + bite: ["9M"], + charm: ["9M"], + cottonguard: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + irontail: ["9M"], + lastresort: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + thunderfang: ["9M"], + thunderwave: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + }, + meowstic: { + learnset: { + alluringvoice: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + covet: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + meanlook: ["9M"], + mistyterrain: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psychup: ["9M"], + psyshock: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roleplay: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + tailslap: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wish: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + meowsticf: { + learnset: { + alluringvoice: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + covet: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psychup: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roleplay: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + tailslap: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + aegislash: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + attract: ["9M"], + block: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + closecombat: ["9M"], + destinybond: ["9M"], + doublehit: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + headsmash: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + kingsshield: ["9M"], + metalsound: ["9M"], + nightslash: ["9M"], + poltergeist: ["9M"], + powertrick: ["9M"], + protect: ["9M"], + psychocut: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + round: ["9M"], + sacredsword: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarblade: ["9M"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + wideguard: ["9M"], + zenheadbutt: ["9M"], + }, + }, + aromatisse: { + learnset: { + afteryou: ["9M"], + alluringvoice: ["9M"], + allyswitch: ["9M"], + aromaticmist: ["9M"], + attract: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + disable: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + lightscreen: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + nastyplot: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9M"], + sweetscent: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + trickroom: ["9M"], + wish: ["9M"], + }, + }, + slurpuff: { + learnset: { + afteryou: ["9M"], + amnesia: ["9M"], + attract: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + copycat: ["9M"], + cottonguard: ["9M"], + cottonspore: ["9M"], + dazzlinggleam: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flamethrower: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + lightscreen: ["9M"], + mistyexplosion: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stickyweb: ["9M"], + stringshot: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + sweetscent: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + clawitzer: { + learnset: { + aquajet: ["9M"], + aquatail: ["9M"], + aurasphere: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + chillingwater: ["9M"], + crabhammer: ["9M"], + darkpulse: ["9M"], + dive: ["9M"], + dragonpulse: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + flail: ["9M"], + flashcannon: ["9M"], + flipturn: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + healpulse: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + round: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + terrainpulse: ["9M"], + thief: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + }, + }, + heliolisk: { + learnset: { + agility: ["9M"], + allyswitch: ["9M"], + attract: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + discharge: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electrify: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + glare: ["9M"], + grassknot: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + morningsun: ["9M"], + mudslap: ["9M"], + paraboliccharge: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + shedtail: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + voltswitch: ["9M"], + weatherball: ["9M"], + wildcharge: ["9M"], + }, + }, + tyrantrum: { + learnset: { + ancientpower: ["9M"], + assurance: ["9M"], + attract: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + crunch: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + headsmash: ["9M"], + highhorsepower: ["9M"], + horndrill: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lashout: ["9M"], + meteorbeam: ["9M"], + outrage: ["9M"], + playrough: ["9M"], + poisonfang: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockpolish: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + thrash: ["9M"], + thunderfang: ["9M"], + zenheadbutt: ["9M"], + }, + }, + aurorus: { + learnset: { + ancientpower: ["9M"], + attract: ["9M"], + auroraveil: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + darkpulse: ["9M"], + discharge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + freezedry: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + meteorbeam: ["9M"], + mirrorcoat: ["9M"], + mudshot: ["9M"], + outrage: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + weatherball: ["9M"], + zenheadbutt: ["9M"], + }, + }, + sylveon: { + learnset: { + alluringvoice: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + copycat: ["9M"], + covet: ["9M"], + curse: ["9M"], + dazzlinggleam: ["9M"], + detect: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flail: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + mudslap: ["9M"], + mysticalfire: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tickle: ["9M"], + trailblaze: ["9M"], + weatherball: ["9M"], + wish: ["9M"], + yawn: ["9M"], + }, + }, + hawlucha: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + airslash: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bounce: ["9M"], + bravebird: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + crosschop: ["9M"], + defog: ["9M"], + detect: ["9M"], + dig: ["9M"], + drainpunch: ["9M"], + dualwingbeat: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + feint: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + fly: ["9M"], + flyingpress: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + highjumpkick: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + lunge: ["9M"], + meanlook: ["9M"], + megakick: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + steelwing: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + dedenne: { + learnset: { + agility: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + covet: ["9M"], + dazzlinggleam: ["9M"], + dig: ["9M"], + discharge: ["9M"], + drainingkiss: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irontail: ["9M"], + lightscreen: ["9M"], + magnetrise: ["9M"], + mistyterrain: ["9M"], + nuzzle: ["9M"], + paraboliccharge: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + risingvoltage: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + tearfullook: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + goodra: { + learnset: { + acidarmor: ["9M"], + acidspray: ["9M"], + aquatail: ["9M"], + assurance: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + counter: ["9M"], + curse: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flail: ["9M"], + flamethrower: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lifedew: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + outrage: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + round: ["9M"], + scald: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + tearfullook: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + toxic: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + }, + }, + goodrahisui: { + learnset: { + acidspray: ["9M"], + ancientpower: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + counter: ["9M"], + curse: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + fireblast: ["9M"], + firepunch: ["9M"], + flail: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + heavyslam: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lifedew: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shelter: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + tearfullook: ["9M"], + thunder: ["9M"], + thunderpunch: ["9M"], + thunderbolt: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + }, + }, + klefki: { + learnset: { + calmmind: ["9M"], + dazzlinggleam: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairylock: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + magnetrise: ["9M"], + metalsound: ["9M"], + mistyterrain: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + recycle: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sandstorm: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spikes: ["9M"], + steelbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + switcheroo: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + torment: ["9M"], + trickroom: ["9M"], + }, + }, + trevenant: { + learnset: { + allyswitch: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + dig: ["9M"], + disable: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + focusblast: ["9M"], + forestscurse: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + haze: ["9M"], + hex: ["9M"], + hornleech: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + ingrain: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9M"], + skillswap: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + thief: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + woodhammer: ["9M"], + xscissor: ["9M"], + }, + }, + gourgeist: { + learnset: { + allyswitch: ["9M"], + attract: ["9M"], + brutalswing: ["9M"], + bulletseed: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + endure: ["9M"], + energyball: ["9M"], + explosion: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + gyroball: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + imprison: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + moonblast: ["9M"], + mysticalfire: ["9M"], + nastyplot: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + psychic: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9M"], + skillswap: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + trickortreat: ["9M"], + willowisp: ["9M"], + worryseed: ["9M"], + }, + }, + gourgeistsuper: {}, + avalugg: { + learnset: { + auroraveil: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + frostbreath: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icespinner: ["9M"], + iciclecrash: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + mirrorcoat: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + recover: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + superpower: ["9M"], + surf: ["9M"], + wideguard: ["9M"], + }, + }, + avalugghisui: { + learnset: { + ancientpower: ["9M"], + auroraveil: ["9M"], + avalanche: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + meteorbeam: ["9M"], + mirrorcoat: ["9M"], + mountaingale: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + recover: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + wideguard: ["9M"], + }, + }, + noivern: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + boomburst: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + darkpulse: ["9M"], + defog: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + flamethrower: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + irontail: ["9M"], + leechlife: ["9M"], + moonlight: ["9M"], + outrage: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + rest: ["9M"], + roost: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + switcheroo: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + thief: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + whirlwind: ["9M"], + wildcharge: ["9M"], + xscissor: ["9M"], + }, + }, + decidueye: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + batonpass: ["9M"], + bravebird: ["9M"], + bulletseed: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + defog: ["9M"], + doubleteam: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + knockoff: ["9M"], + leafblade: ["9M"], + leafstorm: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M"], + pluck: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychocut: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roost: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + spiritshackle: ["9M"], + spite: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + tailwind: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + }, + }, + decidueyehisui: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aurasphere: ["9M"], + batonpass: ["9M"], + bravebird: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulletseed: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + confuseray: ["9M"], + defog: ["9M"], + doubleteam: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + knockoff: ["9M"], + leafblade: ["9M"], + leafstorm: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + pluck: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocktomb: ["9M"], + roost: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + synthesis: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + trailblaze: ["9M"], + triplearrows: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + }, + }, + incineroar: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + assurance: ["9M"], + attract: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + blastburn: ["9M"], + blazekick: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + burningjealousy: ["9M"], + closecombat: ["9M"], + crosschop: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + darkestlariat: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + partingshot: ["9M"], + powertrip: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swagger: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + willowisp: ["9M"], + }, + }, + primarina: { + learnset: { + acrobatics: ["9M"], + alluringvoice: ["9M"], + amnesia: ["9M"], + aquajet: ["9M"], + aquaring: ["9M"], + attract: ["9M"], + babydolleyes: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + dazzlinggleam: ["9M"], + dive: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + irontail: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9M"], + perishsong: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + shadowball: ["9M"], + sing: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + sparklingaria: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + surf: ["9M"], + tripleaxel: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + weatherball: ["9M"], + whirlpool: ["9M"], + wonderroom: ["9M"], + }, + }, + toucannon: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["9M"], + beakblast: ["9M"], + boomburst: ["9M"], + bravebird: ["9M"], + brickbreak: ["9M"], + bulletseed: ["9M"], + drillpeck: ["9M"], + dualwingbeat: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + flamecharge: ["9M"], + flashcannon: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + knockoff: ["9M"], + overheat: ["9M"], + pluck: ["9M"], + protect: ["9M"], + psychup: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + roost: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + seedbomb: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + }, + }, + crabominable: { + learnset: { + amnesia: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + crabhammer: ["9M"], + dig: ["9M"], + drainpunch: ["9M"], + dynamicpunch: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hardpress: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icehammer: ["9M"], + icepunch: ["9M"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + liquidation: ["9M"], + machpunch: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swagger: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + upperhand: ["9M"], + wideguard: ["9M"], + zenheadbutt: ["9M"], + }, + }, + lycanroc: { + learnset: { + accelerock: ["9M"], + agility: ["9M"], + assurance: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + crunch: ["9M"], + dig: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hypervoice: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lastresort: ["9M"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tailslap: ["9M"], + taunt: ["9M"], + thrash: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + zenheadbutt: ["9M"], + }, + }, + lycanrocmidnight: { + learnset: { + bite: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + crunch: ["9M"], + dig: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hypervoice: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lastresort: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + payback: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], + zenheadbutt: ["9M"], + }, + }, + lycanrocdusk: { + learnset: { + accelerock: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + crunch: ["9M"], + crushclaw: ["9M"], + dig: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + howl: ["9M"], + hypervoice: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lastresort: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + swordsdance: ["9M"], + tailslap: ["9M"], + taunt: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + zenheadbutt: ["9M"], + }, + }, + toxapex: { + learnset: { + acidspray: ["9M"], + banefulbunker: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + crosspoison: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + infestation: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + liquidation: ["9M"], + lunge: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + pinmissile: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + spitup: ["9M"], + stockpile: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swallow: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + venoshock: ["9M"], + waterpulse: ["9M"], + wideguard: ["9M"], + }, + }, + mudsdale: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + }, + }, + araquanid: { + learnset: { + aquaring: ["9M"], + attract: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + dive: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + infestation: ["9M"], + irondefense: ["9M"], + leechlife: ["9M"], + liquidation: ["9M"], + lunge: ["9M"], + magicroom: ["9M"], + mirrorcoat: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + powersplit: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + soak: ["9M"], + spitup: ["9M"], + stickyweb: ["9M"], + stockpile: ["9M"], + substitute: ["9M"], + surf: ["9M"], + trailblaze: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + wideguard: ["9M"], + wonderroom: ["9M"], + xscissor: ["9M"], + }, + }, + salazzle: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + agility: ["9M"], + beatup: ["9M"], + belch: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + burningjealousy: ["9M"], + corrosivegas: ["9M"], + crosspoison: ["9M"], + disable: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firelash: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + leechlife: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + overheat: ["9M"], + payback: ["9M"], + poisonfang: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + rest: ["9M"], + round: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + sweetscent: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + torment: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M"], + willowisp: ["9M"], + }, + }, + tsareena: { + learnset: { + acrobatics: ["9M"], + acupressure: ["9M"], + aromaticmist: ["9M"], + bounce: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + drainingkiss: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + flail: ["9M"], + fling: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + highjumpkick: ["9M"], + hyperbeam: ["9M"], + knockoff: ["9M"], + leafstorm: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + payback: ["9M"], + petalblizzard: ["9M"], + playrough: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + rapidspin: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + sweetscent: ["9M"], + synthesis: ["9M"], + taunt: ["9M"], + teeterdance: ["9M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + tropkick: ["9M"], + uturn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + oranguru: { + learnset: { + afteryou: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + chillingwater: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + instruct: ["9M"], + knockoff: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + megakick: ["9M"], + nastyplot: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quash: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + terrainpulse: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wonderroom: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + passimian: { + learnset: { + acrobatics: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + beatup: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + feint: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + gyroball: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + seismictoss: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thrash: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + }, + }, + mimikyu: { + learnset: { + babydolleyes: ["9M"], + beatup: ["9M"], + bulkup: ["9M"], + burningjealousy: ["9M"], + charm: ["9M"], + confuseray: ["9M"], + copycat: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + destinybond: ["9M"], + doubleteam: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + leechlife: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + mistyterrain: ["9M"], + nightshade: ["9M"], + nightslash: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + playrough: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + woodhammer: ["9M"], + xscissor: ["9M"], + }, + }, + drampa: { + learnset: { + amnesia: ["9M"], + attract: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + glare: ["9M"], + grassknot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + outrage: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + roost: ["9M"], + round: ["9M"], + safeguard: ["9M"], + scaleshot: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + surf: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + triattack: ["9M"], + uproar: ["9M"], + whirlwind: ["9M"], + }, + }, + kommoo: { + learnset: { + aerialace: ["9M"], + attract: ["9M"], + aurasphere: ["9M"], + bellydrum: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + boomburst: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + clangingscales: ["9M"], + clangoroussoul: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + lowkick: ["9M"], + megakick: ["9M"], + metalsound: ["9M"], + nobleroar: ["9M"], + outrage: ["9M"], + payback: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + xscissor: ["9M"], + }, + }, + corviknight: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + assurance: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bravebird: ["9M"], + bulkup: ["9M"], + curse: ["9M"], + defog: ["9M"], + doubleedge: ["9M"], + drillpeck: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + featherdance: ["9M"], + flashcannon: ["9M"], + fly: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + metalsound: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + pluck: ["9M"], + powertrip: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roost: ["9M"], + round: ["9M"], + scaryface: ["9M"], + screech: ["9M"], + skyattack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spite: ["9M"], + steelbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + tailwind: ["9M"], + taunt: ["9M"], + thief: ["9M"], + uturn: ["9M"], + }, + }, + flapple: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + aerialace: ["9M"], + airslash: ["9M"], + bulletseed: ["9M"], + dracometeor: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dualwingbeat: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fly: ["9M"], + focusenergy: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + gravapple: ["9M"], + growth: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + outrage: ["9M"], + pounce: ["9M"], + protect: ["9M"], + recycle: ["9M"], + rest: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + }, + }, + appletun: { + learnset: { + amnesia: ["9M"], + appleacid: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + curse: ["9M"], + dracometeor: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + gyroball: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lightscreen: ["9M"], + outrage: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9M"], + recycle: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + superpower: ["9M"], + sweetscent: ["9M"], + trailblaze: ["9M"], + zenheadbutt: ["9M"], + }, + }, + sandaconda: { + learnset: { + belch: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + coil: ["9M"], + dig: ["9M"], + dragonrush: ["9M"], + drillrun: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + glare: ["9M"], + highhorsepower: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lastresort: ["9M"], + minimize: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + protect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + screech: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + thunderfang: ["9M"], + wrap: ["9M"], + zenheadbutt: ["9M"], + }, + }, + polteageist: { + learnset: { + allyswitch: ["9M"], + aromaticmist: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + lightscreen: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + shellsmash: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + strengthsap: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sweetscent: ["9M"], + teatime: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + }, + }, + polteageistantique: {}, + hatterene: { + learnset: { + afteryou: ["9M"], + agility: ["9M"], + aromaticmist: ["9M"], + batonpass: ["9M"], + brutalswing: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + futuresight: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + guardswap: ["9M"], + healpulse: ["9M"], + healingwish: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + lifedew: ["9M"], + lightscreen: ["9M"], + magicpowder: ["9M"], + magicroom: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["9M"], + nuzzle: ["9M"], + painsplit: ["9M"], + playrough: ["9M"], + powerswap: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9M"], + psyshock: ["9M"], + quash: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wonderroom: ["9M"], + }, + }, + mrrime: { + learnset: { + afteryou: ["9M"], + allyswitch: ["9M"], + attract: ["9M"], + avalanche: ["9M"], + batonpass: ["9M"], + blizzard: ["9M"], + block: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + copycat: ["9M"], + dazzlinggleam: ["9M"], + drainpunch: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + freezedry: ["9M"], + frostbreath: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guardswap: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + iceshard: ["9M"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + megakick: ["9M"], + mirrorcoat: ["9M"], + mistyterrain: ["9M"], + nastyplot: ["9M"], + payback: ["9M"], + powersplit: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + recycle: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roleplay: ["9M"], + round: ["9M"], + safeguard: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + sheercold: ["9M"], + skillswap: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + snowscape: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + teeterdance: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + torment: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + tripleaxel: ["9M"], + uproar: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + runerigus: { + learnset: { + allyswitch: ["9M"], + amnesia: ["9M"], + attract: ["9M"], + bodypress: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + dragonpulse: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guardsplit: ["9M"], + guardswap: ["9M"], + haze: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + meanlook: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + payback: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + powersplit: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + selfdestruct: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + taunt: ["9M"], + thief: ["9M"], + toxicspikes: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + wonderroom: ["9M"], + zenheadbutt: ["9M"], + }, + }, + alcremie: { + learnset: { + acidarmor: ["9M"], + alluringvoice: ["9M"], + aromaticmist: ["9M"], + attract: ["9M"], + babydolleyes: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + decorate: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + entrainment: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + magicroom: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["9M"], + painsplit: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + recover: ["9M"], + rest: ["9M"], + round: ["9M"], + safeguard: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sweetkiss: ["9M"], + sweetscent: ["9M"], + triattack: ["9M"], + wonderroom: ["9M"], + }, + }, + morpeko: { + learnset: { + agility: ["9M"], + assurance: ["9M"], + aurawheel: ["9M"], + batonpass: ["9M"], + bite: ["9M"], + brickbreak: ["9M"], + bulletseed: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + doubleedge: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + flatter: ["9M"], + fling: ["9M"], + foulplay: ["9M"], + icefang: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + nastyplot: ["9M"], + outrage: ["9M"], + partingshot: ["9M"], + payback: ["9M"], + powertrip: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quash: ["9M"], + quickattack: ["9M"], + rapidspin: ["9M"], + rest: ["9M"], + reversal: ["9M"], + risingvoltage: ["9M"], + round: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + snore: ["9M"], + spite: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + superfang: ["9M"], + swagger: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thrash: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + tickle: ["9M"], + torment: ["9M"], + uproar: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + dragapult: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + beatup: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + disable: ["9M"], + dive: ["9M"], + doublehit: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragondarts: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9M"], + dragontail: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + infestation: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + lockon: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + phantomforce: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + quickattack: ["9M"], + reflect: ["9M"], + rest: ["9M"], + round: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snore: ["9M"], + solarbeam: ["9M"], + steelwing: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + triattack: ["9M"], + uturn: ["9M"], + willowisp: ["9M"], + }, + }, + wyrdeer: { + learnset: { + agility: ["9M"], + bite: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + dig: ["9M"], + disable: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + extrasensory: ["9M"], + facade: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9M"], + imprison: ["9M"], + lightscreen: ["9M"], + lunge: ["9M"], + megahorn: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psyshieldbash: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + roleplay: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thief: ["9M"], + thrash: ["9M"], + throatchop: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + }, + kleavor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + ancientpower: ["9M"], + batonpass: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + defog: ["9M"], + doublehit: ["9M"], + doubleteam: ["9M"], + doubleedge: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + lightscreen: ["9M"], + lunge: ["9M"], + nightslash: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + stealthrock: ["9M"], + stoneaxe: ["9M"], + stoneedge: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + vacuumwave: ["9M"], + xscissor: ["9M"], + }, + }, + basculegion: { + learnset: { + agility: ["9M"], + aquajet: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + doubleedge: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + flail: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + headsmash: ["9M"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9M"], + spite: ["9M"], + substitute: ["9M"], + surf: ["9M"], + thrash: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + wavecrash: ["9M"], + whirlpool: ["9M"], + zenheadbutt: ["9M"], + }, + }, + basculegionf: { + learnset: { + agility: ["9M"], + aquajet: ["9M"], + bite: ["9M"], + blizzard: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + doubleedge: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + flail: ["9M"], + flipturn: ["9M"], + gigaimpact: ["9M"], + headsmash: ["9M"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9M"], + liquidation: ["9M"], + mudshot: ["9M"], + muddywater: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9M"], + spite: ["9M"], + substitute: ["9M"], + surf: ["9M"], + thrash: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + wavecrash: ["9M"], + whirlpool: ["9M"], + zenheadbutt: ["9M"], + }, + }, + sneasler: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + dig: ["9M"], + direclaw: ["9M"], + doublehit: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + feint: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + hyperbeam: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M"], + nightslash: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + quickattack: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + screech: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + switcheroo: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + meowscarada: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + allyswitch: ["9M"], + aurasphere: ["9M"], + bite: ["9M"], + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + darkpulse: ["9M"], + doubleteam: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + flowertrick: ["9M"], + foulplay: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + nightslash: ["9M"], + petalblizzard: ["9M"], + playrough: ["9M"], + pollenpuff: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychup: ["9M"], + quickattack: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + tripleaxel: ["9M"], + uturn: ["9M"], + worryseed: ["9M"], + }, + }, + skeledirge: { + learnset: { + alluringvoice: ["9M"], + belch: ["9M"], + bite: ["9M"], + blastburn: ["9M"], + bodyslam: ["9M"], + burnup: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M"], + round: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sing: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + temperflare: ["9M"], + thunderfang: ["9M"], + torchsong: ["9M"], + willowisp: ["9M"], + yawn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + quaquaval: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aquacutter: ["9M"], + aquajet: ["9M"], + aquastep: ["9M"], + batonpass: ["9M"], + bravebird: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + coaching: ["9M"], + counter: ["9M"], + detect: ["9M"], + doublehit: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusenergy: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + lastresort: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9M"], + mistyterrain: ["9M"], + protect: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + rapidspin: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roost: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + tripleaxel: ["9M"], + uturn: ["9M"], + upperhand: ["9M"], + waterpulse: ["9M"], + wavecrash: ["9M"], + whirlpool: ["9M"], + }, + }, + maushold: { + learnset: { + aerialace: ["9M"], + afteryou: ["9M"], + agility: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + beatup: ["9M"], + bite: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + copycat: ["9M"], + crunch: ["9M"], + dig: ["9M"], + doublehit: ["9M"], + doubleedge: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + feint: ["9M"], + followme: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M"], + populationbomb: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + switcheroo: ["9M"], + taunt: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + tickle: ["9M"], + tidyup: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + waterpulse: ["9M"], + }, + }, + garganacl: { + learnset: { + ancientpower: ["9M"], + avalanche: ["9M"], + block: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + dynamicpunch: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + explosion: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fissure: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + hammerarm: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + meteorbeam: ["9M"], + mudshot: ["9M"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + saltcure: ["9M"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thunderpunch: ["9M"], + wideguard: ["9M"], + zenheadbutt: ["9M"], + }, + }, + armarouge: { + learnset: { + acidspray: ["9M"], + allyswitch: ["9M"], + armorcannon: ["9M"], + aurasphere: ["9M"], + burnup: ["9M"], + calmmind: ["9M"], + clearsmog: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + dragonpulse: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lavaplume: ["9M"], + lightscreen: ["9M"], + meteorbeam: ["9M"], + mysticalfire: ["9M"], + nightshade: ["9M"], + overheat: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + reflect: ["9M"], + rest: ["9M"], + scorchingsands: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + taunt: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + weatherball: ["9M"], + wideguard: ["9M"], + willowisp: ["9M"], + }, + }, + ceruledge: { + learnset: { + allyswitch: ["9M"], + bitterblade: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + burnup: ["9M"], + clearsmog: ["9M"], + closecombat: ["9M"], + confuseray: ["9M"], + curse: ["9M"], + destinybond: ["9M"], + disable: ["9M"], + dragonclaw: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lavaplume: ["9M"], + lightscreen: ["9M"], + nightshade: ["9M"], + nightslash: ["9M"], + overheat: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychocut: ["9M"], + quickguard: ["9M"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9M"], + sleeptalk: ["9M"], + solarblade: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + throatchop: ["9M"], + vacuumwave: ["9M"], + willowisp: ["9M"], + xscissor: ["9M"], + }, + }, + bellibolt: { + learnset: { + acidspray: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + discharge: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + flail: ["9M"], + gigaimpact: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lightscreen: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + muddywater: ["9M"], + paraboliccharge: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + slackoff: ["9M"], + sleeptalk: ["9M"], + soak: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + supercellslam: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + toxic: ["9M"], + voltswitch: ["9M"], + waterpulse: ["9M"], + weatherball: ["9M"], + wildcharge: ["9M"], + zapcannon: ["9M"], + }, + }, + scovillain: { + learnset: { + bite: ["9M"], + bulletseed: ["9M"], + burningjealousy: ["9M"], + crunch: ["9M"], + doublehit: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9M"], + lashout: ["9M"], + leafstorm: ["9M"], + leechseed: ["9M"], + overheat: ["9M"], + protect: ["9M"], + ragepowder: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spicyextract: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swagger: ["9M"], + temperflare: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + willowisp: ["9M"], + worryseed: ["9M"], + zenheadbutt: ["9M"], + }, + }, + espathra: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + allyswitch: ["9M"], + babydolleyes: ["9M"], + batonpass: ["9M"], + bodyslam: ["9M"], + bravebird: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + doubleedge: ["9M"], + drillpeck: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + featherdance: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9M"], + lastresort: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + luminacrash: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + pluck: ["9M"], + pounce: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roost: ["9M"], + sandstorm: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uturn: ["9M"], + uproar: ["9M"], + zenheadbutt: ["9M"], + }, + }, + tinkaton: { + learnset: { + babydolleyes: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9M"], + bulldoze: ["9M"], + covet: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9M"], + faketears: ["9M"], + feint: ["9M"], + flashcannon: ["9M"], + flatter: ["9M"], + fling: ["9M"], + foulplay: ["9M"], + gigatonhammer: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + icehammer: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M"], + metalsound: ["9M"], + playrough: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quash: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + screech: ["9M"], + skillswap: ["9M"], + skittersmack: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9M"], + swordsdance: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + woodhammer: ["9M"], + }, + }, + palafin: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + aquajet: ["9M"], + aquatail: ["9M"], + aurasphere: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + boomburst: ["9M"], + bounce: ["9M"], + bulkup: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + counter: ["9M"], + dive: ["9M"], + doublehit: ["9M"], + drainpunch: ["9M"], + drainingkiss: ["9M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusblast: ["9M"], + focusenergy: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + hardpress: ["9M"], + haze: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + jetpunch: ["9M"], + liquidation: ["9M"], + outrage: ["9M"], + protect: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + taunt: ["9M"], + throatchop: ["9M"], + tickle: ["9M"], + waterpulse: ["9M"], + waterfall: ["9M"], + wavecrash: ["9M"], + whirlpool: ["9M"], + zenheadbutt: ["9M"], + }, + }, + orthworm: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + coil: ["9M"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + irontail: ["9M"], + metalburst: ["9M"], + metalsound: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + protect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + shedtail: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + wrap: ["9M"], + }, + }, + glimmora: { + learnset: { + acidarmor: ["9M"], + acidspray: ["9M"], + ancientpower: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M"], + explosion: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + memento: ["9M"], + meteorbeam: ["9M"], + mortalspin: ["9M"], + mudshot: ["9M"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandtomb: ["9M"], + sandstorm: ["9M"], + selfdestruct: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + smackdown: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spikyshield: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + venoshock: ["9M"], + }, + }, + farigiraf: { + learnset: { + agility: ["9M"], + allyswitch: ["9M"], + amnesia: ["9M"], + assurance: ["9M"], + batonpass: ["9M"], + beatup: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + curse: ["9M"], + dazzlinggleam: ["9M"], + doublehit: ["9M"], + doubleedge: ["9M"], + earthquake: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + guardswap: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + meanlook: ["9M"], + mirrorcoat: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + powerswap: ["9M"], + protect: ["9M"], + psychup: ["9M"], + psychic: ["9M"], + psychicfangs: ["9M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + twinbeam: ["9M"], + uproar: ["9M"], + wish: ["9M"], + zenheadbutt: ["9M"], + }, + }, + kingambit: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + assurance: ["9M"], + brickbreak: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guillotine: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + kowtowcleave: ["9M"], + lashout: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + meanlook: ["9M"], + metalburst: ["9M"], + metalsound: ["9M"], + nightslash: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + quickguard: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderwave: ["9M"], + torment: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + sinistcha: { + learnset: { + calmmind: ["9M"], + curse: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + grassyterrain: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M"], + lifedew: ["9M"], + matchagotcha: ["9M"], + memento: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + ragepowder: ["9M"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + strengthsap: ["9M"], + stunspore: ["9M"], + substitute: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + }, + }, + sinistchamasterpiece: {}, + archaludon: { + learnset: { + aurasphere: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M"], + darkpulse: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthquake: ["9M"], + electroshot: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + focusenergy: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + metalburst: ["9M"], + metalsound: ["9M"], + meteorbeam: ["9M"], + mirrorcoat: ["9M"], + nightslash: ["9M"], + outrage: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + }, + }, + hydrapple: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + bugbite: ["9M"], + bulletseed: ["9M"], + curse: ["9M"], + doublehit: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + ficklebeam: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9M"], + gyroball: ["9M"], + heavyslam: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + infestation: ["9M"], + leafstorm: ["9M"], + nastyplot: ["9M"], + outrage: ["9M"], + pollenpuff: ["9M"], + pounce: ["9M"], + powerwhip: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9M"], + recycle: ["9M"], + reflect: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9M"], + syrupbomb: ["9M"], + uproar: ["9M"], + yawn: ["9M"], + }, + }, +}; diff --git a/data/mods/champions/moves.ts b/data/mods/champions/moves.ts new file mode 100644 index 0000000000..00b73821cf --- /dev/null +++ b/data/mods/champions/moves.ts @@ -0,0 +1,1109 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + absorb: { + inherit: true, + isNonstandard: "Past", + }, + acid: { + inherit: true, + isNonstandard: "Past", + }, + aeroblast: { + inherit: true, + isNonstandard: "Past", + }, + anchorshot: { + inherit: true, + basePower: 90, + }, + appleacid: { + inherit: true, + basePower: 90, + }, + armthrust: { + inherit: true, + isNonstandard: "Past", + }, + astonish: { + inherit: true, + isNonstandard: "Past", + }, + astralbarrage: { + inherit: true, + basePower: 110, + isNonstandard: "Past", + }, + attackorder: { + inherit: true, + isNonstandard: "Past", + }, + aurorabeam: { + inherit: true, + isNonstandard: "Past", + }, + banefulbunker: { + inherit: true, + pp: 5, + }, + barbbarrage: { + inherit: true, + isNonstandard: "Past", + }, + beakblast: { + inherit: true, + basePower: 120, + pp: 5, + }, + behemothbash: { + inherit: true, + isNonstandard: "Past", + }, + behemothblade: { + inherit: true, + isNonstandard: "Past", + }, + blazingtorque: { + inherit: true, + isNonstandard: "Past", + }, + bleakwindstorm: { + inherit: true, + isNonstandard: "Past", + }, + bloodmoon: { + inherit: true, + basePower: 130, + isNonstandard: "Past", + }, + blueflare: { + inherit: true, + isNonstandard: "Past", + }, + boltbeak: { + inherit: true, + basePower: 80, + }, + boltstrike: { + inherit: true, + isNonstandard: "Past", + }, + bonerush: { + inherit: true, + basePower: 30, + }, + branchpoke: { + inherit: true, + isNonstandard: "Past", + }, + brine: { + inherit: true, + isNonstandard: "Past", + }, + bubblebeam: { + inherit: true, + isNonstandard: "Past", + }, + burningbulwark: { + inherit: true, + isNonstandard: "Past", + }, + burnup: { + inherit: true, + isNonstandard: null, + }, + celebrate: { + inherit: true, + isNonstandard: "Past", + }, + chloroblast: { + inherit: true, + isNonstandard: "Past", + }, + clangoroussoul: { + inherit: true, + accuracy: true, + }, + collisioncourse: { + inherit: true, + isNonstandard: "Past", + }, + combattorque: { + inherit: true, + isNonstandard: "Past", + }, + confide: { + inherit: true, + isNonstandard: "Past", + }, + confusion: { + inherit: true, + isNonstandard: "Past", + }, + conversion: { + inherit: true, + isNonstandard: "Past", + }, + conversion2: { + inherit: true, + isNonstandard: "Past", + }, + corrosivegas: { + inherit: true, + isNonstandard: null, + }, + courtchange: { + inherit: true, + isNonstandard: "Past", + }, + crabhammer: { + inherit: true, + accuracy: 95, + }, + crushclaw: { + inherit: true, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, + }, + crushgrip: { + inherit: true, + isNonstandard: "Past", + }, + cut: { + inherit: true, + isNonstandard: "Past", + }, + darkvoid: { + inherit: true, + isNonstandard: "Past", + }, + defendorder: { + inherit: true, + isNonstandard: "Past", + }, + defensecurl: { + inherit: true, + isNonstandard: "Past", + }, + diamondstorm: { + inherit: true, + isNonstandard: "Past", + }, + direclaw: { + inherit: true, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, + secondary: { + chance: 30, + onHit(target, source) { + const status = this.sample(['psn', 'par', 'slp']); + target.trySetStatus(status, source); + }, + }, + desc: "Has a 30% chance to cause the target to either fall asleep, become poisoned, or become paralyzed.", + shortDesc: "30% chance to sleep, poison, or paralyze target.", + }, + disarmingvoice: { + inherit: true, + isNonstandard: "Past", + }, + doodle: { + inherit: true, + isNonstandard: "Past", + }, + doomdesire: { + inherit: true, + isNonstandard: "Past", + }, + doublekick: { + inherit: true, + isNonstandard: "Past", + }, + doubleshock: { + inherit: true, + isNonstandard: "Custom", + }, + dragonascent: { + inherit: true, + isNonstandard: "Past", + }, + dragonbreath: { + inherit: true, + isNonstandard: "Past", + }, + dragoncheer: { + inherit: true, + flags: { bypasssub: 1, allyanim: 1, metronome: 1, sound: 1 }, + }, + dragonclaw: { + inherit: true, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, + }, + dragonenergy: { + inherit: true, + isNonstandard: "Past", + }, + dragonhammer: { + inherit: true, + basePower: 100, + isNonstandard: "Past", + }, + dreameater: { + inherit: true, + isNonstandard: "Past", + }, + drumbeating: { + inherit: true, + isNonstandard: "Past", + }, + dynamaxcannon: { + inherit: true, + isNonstandard: "Past", + }, + echoedvoice: { + inherit: true, + isNonstandard: "Past", + }, + electrify: { + inherit: true, + isNonstandard: null, + }, + electrodrift: { + inherit: true, + isNonstandard: "Past", + }, + ember: { + inherit: true, + isNonstandard: "Past", + }, + encore: { + inherit: true, + condition: { + inherit: true, + onStart(target) { + let move: Move | ActiveMove | null = target.lastMove; + if (!move || target.volatiles['dynamax']) return false; + + // Encore only works on Max Moves if the base move is not itself a Max Move + if (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove); + const moveSlot = target.getMoveData(move.id); + if (move.isZ || move.isMax || move.flags['failencore'] || !moveSlot || moveSlot.pp <= 0) { + // it failed + return false; + } + this.effectState.move = move.id; + this.add('-start', target, 'Encore'); + const action = this.queue.willMove(target); + if (!action) { + this.effectState.duration!++; + // TODO: this is a quick fix, check if move priority is changed when Mental Herb cures Encore + } else if (!target.hasItem('mentalherb')) { + this.queue.changeAction(target, { + choice: 'move', + // target: undefined, + // targetLoc: undefined, + moveid: move.id, + order: action.order, // TODO: check Quash + Encore interaction + }); + } + }, + }, + }, + esperwing: { + inherit: true, + isNonstandard: "Past", + }, + fairywind: { + inherit: true, + isNonstandard: "Past", + }, + falsesurrender: { + inherit: true, + isNonstandard: "Past", + }, + falseswipe: { + inherit: true, + isNonstandard: "Past", + }, + fierywrath: { + inherit: true, + isNonstandard: "Past", + }, + filletaway: { + inherit: true, + isNonstandard: "Past", + }, + firelash: { + inherit: true, + basePower: 90, + }, + firepledge: { + inherit: true, + isNonstandard: "Past", + }, + firstimpression: { + inherit: true, + basePower: 100, + }, + fishiousrend: { + inherit: true, + basePower: 80, + }, + flamewheel: { + inherit: true, + isNonstandard: "Past", + }, + fleurcannon: { + inherit: true, + isNonstandard: "Past", + }, + floralhealing: { + inherit: true, + isNonstandard: "Past", + }, + forcepalm: { + inherit: true, + isNonstandard: "Past", + }, + freezeshock: { + inherit: true, + isNonstandard: "Past", + }, + freezingglare: { + inherit: true, + isNonstandard: "Past", + }, + furyattack: { + inherit: true, + isNonstandard: "Past", + }, + furycutter: { + inherit: true, + isNonstandard: "Past", + }, + furyswipes: { + inherit: true, + isNonstandard: "Past", + }, + fusionbolt: { + inherit: true, + isNonstandard: "Past", + }, + fusionflare: { + inherit: true, + isNonstandard: "Past", + }, + geargrind: { + inherit: true, + accuracy: 90, + basePower: 60, + }, + glaciallance: { + inherit: true, + isNonstandard: "Past", + }, + glaciate: { + inherit: true, + isNonstandard: "Past", + }, + glaiverush: { + inherit: true, + isNonstandard: "Past", + }, + grasspledge: { + inherit: true, + isNonstandard: "Past", + }, + gravapple: { + inherit: true, + basePower: 90, + }, + growl: { + inherit: true, + isNonstandard: "Past", + }, + growth: { + inherit: true, + type: "Grass", + }, + gust: { + inherit: true, + isNonstandard: "Past", + }, + happyhour: { + inherit: true, + isNonstandard: "Past", + }, + harden: { + inherit: true, + isNonstandard: "Past", + }, + headbutt: { + inherit: true, + isNonstandard: "Past", + }, + heartswap: { + inherit: true, + isNonstandard: "Past", + }, + holdback: { + inherit: true, + isNonstandard: "Past", + }, + holdhands: { + inherit: true, + isNonstandard: "Past", + }, + honeclaws: { + inherit: true, + isNonstandard: "Past", + }, + hornattack: { + inherit: true, + isNonstandard: "Past", + }, + hydrosteam: { + inherit: true, + isNonstandard: "Past", + }, + hyperdrill: { + inherit: true, + basePower: 120, + isNonstandard: "Past", + }, + hyperspacefury: { + inherit: true, + isNonstandard: "Past", + }, + hyperspacehole: { + inherit: true, + isNonstandard: "Past", + }, + iceburn: { + inherit: true, + isNonstandard: "Past", + }, + incinerate: { + inherit: true, + isNonstandard: "Past", + }, + infernalparade: { + inherit: true, + basePower: 65, + }, + ironhead: { + inherit: true, + secondary: { + chance: 20, + volatileStatus: 'flinch', + }, + desc: "Has a 20% chance to make the target flinch.", + shortDesc: "20% chance to make the target flinch.", + }, + ivycudgel: { + inherit: true, + isNonstandard: "Past", + }, + jawlock: { + inherit: true, + isNonstandard: "Past", + }, + judgment: { + inherit: true, + isNonstandard: "Past", + }, + junglehealing: { + inherit: true, + isNonstandard: "Past", + }, + kingsshield: { + inherit: true, + isNonstandard: null, + pp: 5, + }, + leafage: { + inherit: true, + isNonstandard: "Past", + }, + leer: { + inherit: true, + isNonstandard: "Past", + }, + lick: { + inherit: true, + isNonstandard: "Past", + }, + lightofruin: { + inherit: true, + isNonstandard: null, + }, + lunarblessing: { + inherit: true, + isNonstandard: "Past", + }, + lunardance: { + inherit: true, + isNonstandard: "Past", + }, + lusterpurge: { + inherit: true, + isNonstandard: "Past", + }, + magicalleaf: { + inherit: true, + isNonstandard: "Past", + }, + magicaltorque: { + inherit: true, + isNonstandard: "Past", + }, + magmastorm: { + inherit: true, + isNonstandard: "Past", + }, + makeitrain: { + inherit: true, + accuracy: 95, + isNonstandard: "Past", + }, + malignantchain: { + inherit: true, + isNonstandard: "Past", + }, + megadrain: { + inherit: true, + isNonstandard: "Past", + }, + megapunch: { + inherit: true, + isNonstandard: "Past", + }, + metalclaw: { + inherit: true, + isNonstandard: "Past", + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, + }, + metronome: { + inherit: true, + isNonstandard: "Past", + }, + mightycleave: { + inherit: true, + isNonstandard: "Past", + }, + mimic: { + inherit: true, + isNonstandard: "Past", + }, + mist: { + inherit: true, + isNonstandard: "Past", + }, + mistball: { + inherit: true, + isNonstandard: "Past", + }, + moonblast: { + inherit: true, + secondary: { + chance: 10, + boosts: { + spa: -1, + }, + }, + desc: "Has a 10% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Atk by 1.", + }, + moongeistbeam: { + inherit: true, + isNonstandard: "Past", + }, + mountaingale: { + inherit: true, + basePower: 120, + }, + mysticalpower: { + inherit: true, + isNonstandard: "Past", + }, + nightdaze: { + inherit: true, + basePower: 90, + }, + nightslash: { + inherit: true, + pp: 20, + }, + nihillight: { + inherit: true, + pp: 5, + }, + noretreat: { + inherit: true, + isNonstandard: "Past", + }, + noxioustorque: { + inherit: true, + isNonstandard: "Past", + }, + obstruct: { + inherit: true, + pp: 5, + }, + orderup: { + inherit: true, + isNonstandard: "Past", + }, + originpulse: { + inherit: true, + isNonstandard: "Past", + }, + overdrive: { + inherit: true, + isNonstandard: "Past", + }, + payday: { + inherit: true, + isNonstandard: "Past", + }, + peck: { + inherit: true, + isNonstandard: "Past", + }, + photongeyser: { + inherit: true, + isNonstandard: "Past", + }, + playnice: { + inherit: true, + isNonstandard: "Past", + }, + poisongas: { + inherit: true, + isNonstandard: "Past", + }, + poisonsting: { + inherit: true, + isNonstandard: "Past", + }, + poisontail: { + inherit: true, + isNonstandard: "Past", + }, + powdersnow: { + inherit: true, + isNonstandard: "Past", + }, + powershift: { + inherit: true, + isNonstandard: null, + }, + precipiceblades: { + inherit: true, + isNonstandard: "Past", + }, + present: { + inherit: true, + isNonstandard: "Past", + }, + prismaticlaser: { + inherit: true, + isNonstandard: "Past", + }, + protect: { + inherit: true, + pp: 5, + }, + psybeam: { + inherit: true, + isNonstandard: "Past", + }, + psyblade: { + inherit: true, + isNonstandard: "Past", + }, + psychoboost: { + inherit: true, + isNonstandard: "Past", + }, + psyshieldbash: { + inherit: true, + basePower: 90, + }, + psystrike: { + inherit: true, + isNonstandard: "Past", + }, + purify: { + inherit: true, + pp: 5, + }, + pyroball: { + inherit: true, + isNonstandard: "Past", + }, + ragefist: { + inherit: true, + isNonstandard: "Past", + }, + // ragepowder: { + // inherit: true, + // flags: { noassist: 1, failcopycat: 1 }, + // }, + razorleaf: { + inherit: true, + isNonstandard: "Past", + }, + relicsong: { + inherit: true, + isNonstandard: "Past", + }, + retaliate: { + inherit: true, + isNonstandard: "Past", + }, + revelationdance: { + inherit: true, + basePower: 100, + isNonstandard: "Past", + }, + revivalblessing: { + inherit: true, + isNonstandard: "Custom", + }, + roaroftime: { + inherit: true, + isNonstandard: "Past", + }, + rocksmash: { + inherit: true, + isNonstandard: "Past", + }, + rockthrow: { + inherit: true, + isNonstandard: "Past", + }, + rollout: { + inherit: true, + isNonstandard: "Past", + }, + ruination: { + inherit: true, + isNonstandard: "Past", + }, + sacredfire: { + inherit: true, + isNonstandard: "Past", + }, + saltcure: { + inherit: true, + condition: { + inherit: true, + onResidual(pokemon) { + this.damage(pokemon.baseMaxhp / (pokemon.hasType(['Water', 'Steel']) ? 8 : 16)); + }, + }, + desc: "Causes damage to the target equal to 1/16 of its maximum HP (1/8 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.", + shortDesc: "Deals 1/16 max HP each turn; 1/8 on Steel, Water.", + }, + sandattack: { + inherit: true, + isNonstandard: "Past", + }, + sandsearstorm: { + inherit: true, + isNonstandard: "Past", + }, + sandstorm: { + inherit: true, + pp: 5, + }, + scratch: { + inherit: true, + isNonstandard: "Past", + }, + secretsword: { + inherit: true, + isNonstandard: "Past", + }, + seedflare: { + inherit: true, + isNonstandard: "Past", + }, + shadowclaw: { + inherit: true, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, + }, + shadowforce: { + inherit: true, + isNonstandard: "Past", + }, + shelltrap: { + inherit: true, + pp: 10, + }, + shiftgear: { + inherit: true, + isNonstandard: "Past", + }, + shockwave: { + inherit: true, + isNonstandard: "Past", + }, + shoreup: { + inherit: true, + isNonstandard: "Past", + }, + silktrap: { + inherit: true, + isNonstandard: "Past", + }, + sketch: { + inherit: true, + isNonstandard: "Past", + }, + slam: { + inherit: true, + isNonstandard: "Past", + }, + slash: { + inherit: true, + isNonstandard: "Past", + }, + sludge: { + inherit: true, + isNonstandard: "Past", + }, + smog: { + inherit: true, + isNonstandard: "Past", + }, + smokescreen: { + inherit: true, + isNonstandard: "Past", + }, + snaptrap: { + inherit: true, + isNonstandard: null, + type: "Steel", + }, + snipeshot: { + inherit: true, + basePower: 85, + isNonstandard: "Past", + }, + snowscape: { + inherit: true, + pp: 5, + }, + spacialrend: { + inherit: true, + isNonstandard: "Past", + }, + spark: { + inherit: true, + isNonstandard: "Past", + }, + spikyshield: { + inherit: true, + pp: 5, + }, + spinout: { + inherit: true, + isNonstandard: "Past", + pp: 10, + }, + spiritbreak: { + inherit: true, + isNonstandard: "Past", + }, + spiritshackle: { + inherit: true, + basePower: 90, + }, + splash: { + inherit: true, + isNonstandard: "Past", + }, + springtidestorm: { + inherit: true, + isNonstandard: "Past", + }, + steameruption: { + inherit: true, + isNonstandard: "Past", + }, + stomp: { + inherit: true, + isNonstandard: "Past", + }, + stormthrow: { + inherit: true, + isNonstandard: null, + }, + strangesteam: { + inherit: true, + isNonstandard: "Past", + }, + strength: { + inherit: true, + isNonstandard: "Past", + }, + sunsteelstrike: { + inherit: true, + isNonstandard: "Past", + }, + supersonic: { + inherit: true, + isNonstandard: "Past", + }, + surgingstrikes: { + inherit: true, + isNonstandard: "Past", + }, + swift: { + inherit: true, + isNonstandard: "Past", + }, + syrupbomb: { + inherit: true, + accuracy: 90, + }, + tachyoncutter: { + inherit: true, + isNonstandard: "Past", + }, + tackle: { + inherit: true, + isNonstandard: "Past", + }, + tailglow: { + inherit: true, + isNonstandard: "Past", + }, + tailwhip: { + inherit: true, + isNonstandard: "Past", + }, + takedown: { + inherit: true, + isNonstandard: "Past", + }, + takeheart: { + inherit: true, + isNonstandard: "Past", + }, + tarshot: { + inherit: true, + isNonstandard: "Past", + }, + teleport: { + inherit: true, + isNonstandard: "Past", + }, + terablast: { + inherit: true, + isNonstandard: "Past", + }, + terastarstorm: { + inherit: true, + isNonstandard: "Past", + }, + thundercage: { + inherit: true, + isNonstandard: "Past", + }, + thunderclap: { + inherit: true, + isNonstandard: "Past", + }, + thunderouskick: { + inherit: true, + isNonstandard: "Past", + }, + thundershock: { + inherit: true, + isNonstandard: "Past", + }, + topsyturvy: { + inherit: true, + isNonstandard: "Past", + }, + toxicthread: { + inherit: true, + boosts: { + spe: -2, + }, + desc: "Lowers the target's Speed by 2 stages and poisons it.", + shortDesc: "Lowers the target's Speed by 2 and poisons it.", + }, + trickortreat: { + inherit: true, + isNonstandard: null, + }, + tripledive: { + inherit: true, + basePower: 35, + isNonstandard: "Past", + }, + triplekick: { + inherit: true, + isNonstandard: "Past", + }, + tropkick: { + inherit: true, + basePower: 85, + }, + twister: { + inherit: true, + isNonstandard: "Past", + }, + vcreate: { + inherit: true, + isNonstandard: "Past", + }, + victorydance: { + inherit: true, + isNonstandard: "Past", + }, + vinewhip: { + inherit: true, + isNonstandard: "Past", + }, + visegrip: { + inherit: true, + isNonstandard: "Past", + }, + watergun: { + inherit: true, + isNonstandard: "Past", + }, + waterpledge: { + inherit: true, + isNonstandard: "Past", + }, + wickedblow: { + inherit: true, + isNonstandard: "Past", + }, + wickedtorque: { + inherit: true, + isNonstandard: "Past", + }, + wildboltstorm: { + inherit: true, + isNonstandard: "Past", + }, + wingattack: { + inherit: true, + isNonstandard: "Past", + }, + withdraw: { + inherit: true, + isNonstandard: "Past", + }, + workup: { + inherit: true, + isNonstandard: "Past", + }, + zingzap: { + inherit: true, + isNonstandard: "Past", + }, +}; diff --git a/data/mods/champions/rulesets.ts b/data/mods/champions/rulesets.ts new file mode 100644 index 0000000000..0d5f5ee076 --- /dev/null +++ b/data/mods/champions/rulesets.ts @@ -0,0 +1,39 @@ +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { + standardag: { + inherit: true, + ruleset: [ + 'Obtainable', 'Team Preview', 'Cancel Mod', 'Endless Battle Clause', + 'Adjust Level = 50', 'Species Clause', 'Item Clause = 1', + ], + onBegin() { + this.reportPercentages = true; + }, + }, + standard: { + inherit: true, + ruleset: [ + 'Standard AG', + 'Sleep Moves Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', + ], + }, + standarddraft: { + inherit: true, + ruleset: [ + 'Standard AG', + 'Nickname Clause', 'Beat Up Nicknames Mod', 'Sleep Clause Mod', 'OHKO Clause', 'Evasion Clause', + ], + onBegin() { + this.reportPercentages = true; + }, + // timer: {starting: 60 * 60, grace: 0, addPerTurn: 10, maxPerTurn: 100, timeoutAutoChoose: true}, + }, + flatrules: { + inherit: true, + desc: "The in-game Flat Rules: Adjust Level 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 = 50', 'Picked Team Size = Auto', 'Cancel Mod'], + banlist: ['Mythical', 'Restricted Legendary'], + onBegin() { + this.reportPercentages = true; + }, + }, +}; diff --git a/data/mods/champions/scripts.ts b/data/mods/champions/scripts.ts new file mode 100644 index 0000000000..965ab93cd4 --- /dev/null +++ b/data/mods/champions/scripts.ts @@ -0,0 +1,498 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + init() { + for (const i in this.data.Moves) { + if (this.data.Moves[i].pp > 20) { + this.modData('Moves', i).pp = 20; + } + } + }, + statModify(baseStats, set, statName) { + const tr = this.trunc; + let stat = baseStats[statName]; + const evs = set.evs[statName]; + if (statName === 'hp') { + return stat + evs + 75; + } + stat = stat + evs + 20; + const nature = this.dex.natures.get(set.nature); + // Natures are calculated with 16-bit truncation. + // This only affects Eternatus-Eternamax in Pure Hackmons. + if (nature.plus === statName) { + stat = this.ruleTable.has('overflowstatmod') ? Math.min(stat, 595) : stat; + stat = tr(tr(stat * 110, 16) / 100); + } else if (nature.minus === statName) { + stat = this.ruleTable.has('overflowstatmod') ? Math.min(stat, 728) : stat; + stat = tr(tr(stat * 90, 16) / 100); + } + return stat; + }, + calculatePP(move, ppUps) { + return move.noPPBoosts ? move.pp : (move.pp / 5 + 1) * 4; + }, + checkMoveBreaksProtect(move, attacker, defender, blockStatus = true) { + if (move.flags['protect'] && (move.category !== 'Status' || blockStatus)) { + return false; + } + if ((move.isZOrMaxPowered || attacker.hasAbility(['piercingdrill', 'unseenfist'])) && + !['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) { + defender.getMoveHitData(move).brokeProtect = true; + } + return true; + }, + pokemon: { + // Remove Trick Room underflow + getActionSpeed() { + let speed = this.getStat('spe', false, false); + const trickRoomCheck = this.battle.ruleTable.has('twisteddimensionmod') ? + !this.battle.field.getPseudoWeather('trickroom') : this.battle.field.getPseudoWeather('trickroom'); + if (trickRoomCheck) { + speed = -speed; + } + return speed; + }, + // Don't revert Mega Evolutions after fainting + // TODO: confirm interaction with Revival Blessing + formeChange(speciesId, source, isPermanent, abilitySlot = '0', message) { + 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 = this.getUpdatedDetails(); + let details = (this.illusion || this).details; + if (this.terastallized) details += `, tera:${this.terastallized}`; + this.battle.add('detailschange', this, details); + this.updateMaxHp(); + if (!source) { + // Tera forme + // Ogerpon/Terapagos text goes here + this.formeRegression = true; + } 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.isPrimalOrb) { + if (this.illusion) { + this.ability = ''; + this.battle.add('-primal', this.illusion, species.requiredItem); + } else { + this.battle.add('-primal', this, species.requiredItem); + } + } 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 && (!source || !['disguise', 'iceface'].includes(source.id))) { + if (this.illusion && source) { + // Tera forme by Ogerpon or Terapagos breaks the Illusion + this.ability = ''; // Don't allow Illusion to wear off + } + 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, null, true); + // However, its ability does reset upon switching out + this.baseAbility = this.battle.toID(ability); + } + if (this.terastallized) { + this.knownType = true; + this.apparentType = this.terastallized; + } + return true; + }, + // Announce status immunities from abilities without revealing the ability + // TODO: check if this happens to other abilities besides Spicy Spray (Static, Poison Touch, etc.) + 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') && ['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 || sourceEffect?.effectType === 'Ability') { + 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 = this.battle.initEffectState({ 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; + }, + // Disable Fake Out if the user has already acted since switching in + getMoves(lockedMove, restrictData) { + if (lockedMove) { + lockedMove = this.battle.toID(lockedMove); + if (lockedMove === 'recharge') { + return [{ + move: 'Recharge', + id: 'recharge' as ID, + }]; + } + for (const moveSlot of this.moveSlots) { + if (moveSlot.id !== lockedMove) continue; + return [{ + move: moveSlot.move, + id: moveSlot.id, + }]; + } + // does this happen? + return [{ + move: this.battle.dex.moves.get(lockedMove).name, + id: lockedMove, + }]; + } + const moves = []; + let hasValidMove = false; + for (const moveSlot of this.moveSlots) { + let moveName = moveSlot.move; + if (moveSlot.id === 'hiddenpower') { + moveName = `Hidden Power ${this.hpType}`; + if (this.battle.gen < 6) moveName += ` ${this.hpPower}`; + } else if (moveSlot.id === 'return' || moveSlot.id === 'frustration') { + const basePowerCallback = this.battle.dex.moves.get(moveSlot.id).basePowerCallback as (pokemon: Pokemon) => number; + moveName += ` ${basePowerCallback(this)}`; + } + let target = moveSlot.target; + switch (moveSlot.id) { + case 'curse': + if (!this.hasType('Ghost')) { + 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']) { + // if each of a Pokemon's base moves are disabled by one of these effects, it will Struggle + const canCauseStruggle = ['Encore', 'Disable', 'Taunt', 'Assault Vest', 'Belch', 'Stuff Cheeks']; + disabled = this.maxMoveDisabled(moveSlot.id) || disabled && canCauseStruggle.includes(moveSlot.disabledSource!); + } else if (moveSlot.pp <= 0 || (moveSlot.id === 'fakeout' && this.activeMoveActions > 0)) { + disabled = true; + } + + if (disabled === 'hidden') { + disabled = !restrictData; + } + if (!disabled) { + hasValidMove = true; + } + + moves.push({ + move: moveName, + id: moveSlot.id, + pp: moveSlot.pp, + maxpp: moveSlot.maxpp, + target, + disabled, + }); + } + return hasValidMove ? moves : []; + }, + }, + actions: { + canTerastallize(pokemon) { + return null; + }, + // Announce 4x and 0.25x effectiveness + 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 = 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 === '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); + } + + // 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, Math.min(typeMod, 2)); + + for (let i = 0; i < typeMod; i++) { + baseDamage *= 2; + } + } + if (typeMod < 0) { + if (!suppressMessages) this.battle.add('-resisted', target, Math.min(-typeMod, 2)); + + 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 (target.getMoveHitData(move).brokeProtect) { + baseDamage = this.battle.modify(baseDamage, 0.25); + if (move.isZOrMaxPowered) 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); + }, + // Run `AfterHit` events even if the source fainted + 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!; + 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) { + if (this.battle.gen >= 5) { + 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 (this.battle.gen < 5) { + this.battle.runEvent('DamagingHit', damagedTargets, pokemon, move, damagedDamage); + } + if (pokemon.hp && pokemon.hp <= pokemon.maxhp / 2 && pokemonOriginalHP > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon); + } + } + + return [damage, targets]; + }, + }, +}; diff --git a/data/mods/chatbats/moves.ts b/data/mods/chatbats/moves.ts index 4dafec9af8..05372a44e8 100644 --- a/data/mods/chatbats/moves.ts +++ b/data/mods/chatbats/moves.ts @@ -575,7 +575,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { } source.switchFlag = true; }, - hasSheerForce: true, + hasSheerForceBoost: true, target: "normal", type: "Dragon", desc: "Dondozo eats a mon on the user's team, KOing it. Dondozo then gains a stat boost depending on the eaten mon's highest stat: +3 Attack for Atk/SpA, +2 Def/+2 SpD for Def/SpD, and +3 Speed for Speed.", @@ -1106,10 +1106,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, onTryHitPriority: 3, onTryHit(target, source, move) { - if (!move.flags['protect'] || move.category === 'Status') { - if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; - return; - } + if (this.checkMoveBreaksProtect(move, source, target, false)) return; if (move.smartTarget) { move.smartTarget = false; } else { diff --git a/data/mods/gen1/conditions.ts b/data/mods/gen1/conditions.ts index 7947c9d867..ea7d52cfe5 100644 --- a/data/mods/gen1/conditions.ts +++ b/data/mods/gen1/conditions.ts @@ -80,6 +80,9 @@ export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDa onAfterMoveSelf(pokemon) { if (pokemon.statusState.time <= 0) pokemon.cureStatus(); }, + onDisableMove(target) { + target.maybeLocked = false; // the player knows it is locked + }, }, frz: { name: 'frz', @@ -98,6 +101,9 @@ export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDa target.cureStatus(); } }, + onDisableMove(target) { + target.maybeLocked = false; // the player knows it is locked + }, }, psn: { name: 'psn', @@ -202,8 +208,11 @@ export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDa onAccuracy(accuracy, target, source, move) { if (source === this.effectState.source) return true; }, + onDisableMovePriority: 1, // higher priority so it gets undone by frz, slp or Bide onDisableMove(target) { - target.maybeLocked = true; + if (this.effectState.maybeLocked) { + target.maybeLocked = true; + } }, }, fakepartiallytrapped: { @@ -211,6 +220,7 @@ export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDa // Wrap ended this turn, but you don't know that // until you try to use an attack duration: 2, + onDisableMovePriority: 1, // higher priority so it gets undone by frz, slp or Bide onDisableMove(target) { target.maybeLocked = true; }, @@ -230,9 +240,6 @@ export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDa this.effectState.locked = foe; foe.addVolatile('partiallytrapped', target, effect); }, - onOverrideAction(pokemon, target, move) { - return this.effectState.move; - }, onBeforeMove(pokemon, target, move) { if (target !== this.effectState.locked) { pokemon.removeVolatile('partialtrappinglock'); @@ -252,13 +259,18 @@ export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDa } } else { target.addVolatile('partiallytrapped', pokemon, move); + if (this.effectState.totalDuration - this.effectState.duration! > 0) { + target.volatiles['partiallytrapped'].maybeLocked = true; + } } }, - onLockMove() { + onSemiLockMove() { return this.effectState.move; }, onDisableMove(pokemon) { - pokemon.maybeLocked = true; + if (this.effectState.totalDuration - this.effectState.duration! > 1) { + pokemon.maybeLocked = true; + } }, }, mustrecharge: { diff --git a/data/mods/gen1/moves.ts b/data/mods/gen1/moves.ts index 528b9bbd88..11f8d8f6e9 100644 --- a/data/mods/gen1/moves.ts +++ b/data/mods/gen1/moves.ts @@ -32,7 +32,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, bide: { inherit: true, - priority: 0, accuracy: true, condition: { onStart(pokemon) { @@ -60,15 +59,9 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { this.add('-activate', pokemon, 'Bide'); return false; }, - onDisableMove(pokemon) { - if (!pokemon.hasMove('bide')) { - return; - } - for (const moveSlot of pokemon.moveSlots) { - if (moveSlot.id !== 'bide') { - pokemon.disableMove(moveSlot.id); - } - } + onSemiLockMove: 'bide', + onDisableMove(target) { + target.maybeLocked = false; // the player knows it is locked }, }, type: "???", // Will look as Normal but it's STAB-less @@ -334,6 +327,12 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { for (const pokemon of this.getAllActive()) { pokemon.clearBoosts(); if (pokemon !== source) { + if (['frz', 'slp'].includes(pokemon.status)) { + pokemon.side.lastSelectedMove = 'cannotmove' as ID; + if (this.queue.willMove(pokemon)) { + this.queue.changeAction(pokemon, { choice: 'move', pokemon, moveid: 'cannotmove' }); + } + } pokemon.cureStatus(true); } if (pokemon.status === 'tox') { @@ -463,7 +462,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { move: move.name, id: move.id, pp: source.moveSlots[moveslot].pp, - maxpp: move.pp * 8 / 5, + maxpp: this.calculatePP(move, source.ppUps[moveslot] || 0), target: move.target, disabled: false, used: false, diff --git a/data/mods/gen1/scripts.ts b/data/mods/gen1/scripts.ts index 34b187d61d..6e9cc33f16 100644 --- a/data/mods/gen1/scripts.ts +++ b/data/mods/gen1/scripts.ts @@ -43,6 +43,17 @@ export const Scripts: ModdedBattleScriptsData = { if (!amount) amount = 1; ppData.pp -= amount; + + if (ppData.pp < 0) { + this.battle.hint("In Gen 1, if a Pokémon is forced to use a move with 0 PP, the move will underflow to have 63 PP."); + } + ppData.pp = ((ppData.pp % 64) + 64) % 64; + + if (ppData.virtual && !this.transformed) { + // sync PP from Mimic's slot, or Metronome/Mirror Move that called Mimic + this.baseMoveSlots[this.side.lastSelectedMoveSlot].pp = ppData.pp; + } + return amount; }, getStat(statName, unmodified) { @@ -156,50 +167,62 @@ export const Scripts: ModdedBattleScriptsData = { } } - // 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. - if (move.id === 'recharge' && !pokemon.volatiles['mustrecharge'] && !pokemon.volatiles['partiallytrapped']) { - move = this.battle.dex.getActiveMove('hyperbeam'); - this.battle.hint(`In Gen 1, partial trapping moves like Wrap remove Hyper Beam recharges. ` + - `If the target would have recharged, it will automatically use Hyper Beam instead.`, true); + const abortMove = () => { + this.battle.clearActiveMove(true); + this.battle.runEvent('AfterMoveSelf', pokemon, target, move); + }; + + if (move.id === 'cannotmove') { + if (pokemon.status === 'slp') { + this.battle.hint( + "In Gen 1, if a Pokémon spends a turn partially trapped and switches to a Pokémon that is asleep, " + + "the sleep counter will not decrease until you select a move with a different Pokémon." + ); + } else if (pokemon.getLockedMove()) { + this.battle.hint( + "In Gen 1, when Haze cures the sleep/freeze status of a Pokémon during a multi-turn move, " + + "that Pokémon will become soft-locked." + ); + } else if (pokemon.getSemiLockedMove()) { + this.battle.hint( + "In Gen 1, when Haze cures the sleep/freeze status of a Pokémon during Bide, " + + "the move execution will never resolve." + ); + } + abortMove(); + return; } if (target?.subFainted) target.subFainted = null; this.battle.setActiveMove(move, pokemon, target); - if (pokemon.moveThisTurn || move.id === 'cantmove' || !this.battle.runEvent('BeforeMove', pokemon, target, move)) { - this.battle.clearActiveMove(true); - // This is only run for sleep. - this.battle.runEvent('AfterMoveSelf', pokemon, target, move); + if (pokemon.moveThisTurn || !this.battle.runEvent('BeforeMove', pokemon, target, move)) { + abortMove(); return; } if (move.beforeMoveCallback?.call(this.battle, pokemon, target, move)) { - this.battle.clearActiveMove(true); + abortMove(); return; } if (move.id !== 'struggle') { - const lockedMove = pokemon.getLockedMove(); + const lockedMove = pokemon.getLockedMove() || pokemon.getSemiLockedMove(); if (lockedMove) sourceEffect = move; // Locked moves don't deduct PP // Two-turn moves like Sky Attack deduct PP on their second turn. if ((!lockedMove && !TWO_TURN_MOVES.includes(move.id)) || pokemon.volatiles['twoturnmove']) { const moveSlot = pokemon.getMoveSlot(pokemon.side.lastSelectedMoveSlot); - if (moveSlot && pokemon.deductPP(moveSlot.id, null, target) && moveSlot.pp < 0) { - moveSlot.pp += 64; - this.battle.hint("In Gen 1, if a Pokémon is forced to use a move with 0 PP, the move will underflow to have 63 PP."); - } + if (moveSlot) pokemon.deductPP(moveSlot.id, null, target); } - if (move.id !== pokemon.getMoveSlot(pokemon.side.lastSelectedMoveSlot)?.id) { + if (!lockedMove && move.id !== pokemon.getMoveSlot(pokemon.side.lastSelectedMoveSlot)?.id) { this.battle.hint("Desync Clause Mod activated!"); this.battle.hint( - "In Gen 1, a Pokémon that thaws out might try to use a move that doesn't match the move " + - "of the slot it last selected (switches reset to the first slot).", + "In Gen 1, a Pokémon might default to using a move that doesn't match the move of the slot it last selected.", ); - this.battle.clearActiveMove(true); + abortMove(); return; } } @@ -221,8 +244,16 @@ export const Scripts: ModdedBattleScriptsData = { if (sourceEffect) move.sourceEffect = sourceEffect.id; if (sourceEffect?.id === 'metronome' || sourceEffect?.id === 'mirrormove') { - const moveSlot = pokemon.getMoveSlot(pokemon.side.lastSelectedMoveSlot); - if (moveSlot) pokemon.deductPP(moveSlot.id, -1, target); + if (TWO_TURN_MOVES.includes(move.id)) { + const moveSlot = pokemon.getMoveSlot(pokemon.side.lastSelectedMoveSlot); + if (moveSlot) pokemon.deductPP(moveSlot.id, -1, target); + } + // FIXME: this should happen even if the slot was empty before Transform + // https://bulbapedia.bulbagarden.net/wiki/List_of_Transform_glitches#Transform_.2B_Mirror_Move.2FMetronome_PP_error + if (pokemon.transformed && pokemon.side.lastSelectedMoveSlot < pokemon.baseMoveSlots.length) { + pokemon.baseMoveSlots[pokemon.side.lastSelectedMoveSlot].pp += 1; + pokemon.baseMoveSlots[pokemon.side.lastSelectedMoveSlot].pp %= 64; + } } this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move); @@ -444,7 +475,7 @@ export const Scripts: ModdedBattleScriptsData = { let i: number; for (i = 0; i < hits && target.hp && pokemon.hp; i++) { move.hit = i + 1; - if (move.hit === hits) move.lastHit = true; + move.lastHit = move.hit === hits; moveDamage = this.moveHit(target, pokemon, move); if (moveDamage === false) break; damage = (moveDamage || 0); diff --git a/data/mods/gen1stadium/scripts.ts b/data/mods/gen1stadium/scripts.ts index 04071bb678..fb6380a046 100644 --- a/data/mods/gen1stadium/scripts.ts +++ b/data/mods/gen1stadium/scripts.ts @@ -93,8 +93,7 @@ export const Scripts: ModdedBattleScriptsData = { return; } } - let lockedMove = this.battle.runEvent('LockMove', pokemon); - if (lockedMove === true) lockedMove = false; + const lockedMove = pokemon.getLockedMove() || pokemon.getSemiLockedMove(); if ( !lockedMove && (!pokemon.volatiles['partialtrappinglock'] || pokemon.volatiles['partialtrappinglock'].locked !== target) @@ -332,7 +331,7 @@ export const Scripts: ModdedBattleScriptsData = { let i: number; for (i = 0; i < hits && target.hp && pokemon.hp; i++) { move.hit = i + 1; - if (move.hit === hits) move.lastHit = true; + move.lastHit = move.hit === hits; moveDamage = this.moveHit(target, pokemon, move); if (moveDamage === false) break; damage = (moveDamage || 0); diff --git a/data/mods/gen2/moves.ts b/data/mods/gen2/moves.ts index 1dacedaf18..2f5ccd8892 100644 --- a/data/mods/gen2/moves.ts +++ b/data/mods/gen2/moves.ts @@ -55,6 +55,8 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { durationCallback(target, source, effect) { return this.random(3, 5); }, + onLockMove: undefined, // no inherit + onSemiLockMove: 'bide', }, }, counter: { @@ -752,7 +754,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { triattack: { inherit: true, onHit(target, source, move) { - move.statusRoll = ['par', 'frz', 'brn'][this.random(3)]; + move.statusRoll = this.sample(['par', 'frz', 'brn']); }, secondary: { chance: 20, diff --git a/data/mods/gen2/scripts.ts b/data/mods/gen2/scripts.ts index b6a4702f6a..c66fef1c0d 100644 --- a/data/mods/gen2/scripts.ts +++ b/data/mods/gen2/scripts.ts @@ -138,8 +138,7 @@ export const Scripts: ModdedBattleScriptsData = { } } pokemon.lastDamage = 0; - let lockedMove = this.battle.runEvent('LockMove', pokemon); - if (lockedMove === true) lockedMove = false; + const lockedMove = pokemon.getLockedMove() || pokemon.getSemiLockedMove(); if (!lockedMove) { if (!pokemon.deductPP(move, null, target) && (move.id !== 'struggle')) { this.battle.add('cant', pokemon, 'nopp', move); @@ -286,7 +285,7 @@ export const Scripts: ModdedBattleScriptsData = { for (i = 0; i < hits && target.hp && pokemon.hp; i++) { if (pokemon.status === 'slp' && !isSleepUsable) break; move.hit = i + 1; - if (move.hit === hits) move.lastHit = true; + move.lastHit = move.hit === hits; moveDamage = this.moveHit(target, pokemon, move); if (moveDamage === false) break; if (nullDamage && (moveDamage || moveDamage === 0 || moveDamage === undefined)) nullDamage = false; diff --git a/data/mods/gen2stadium2/scripts.ts b/data/mods/gen2stadium2/scripts.ts index 9a9ddce00a..3487c31df4 100644 --- a/data/mods/gen2stadium2/scripts.ts +++ b/data/mods/gen2stadium2/scripts.ts @@ -208,7 +208,7 @@ export const Scripts: ModdedBattleScriptsData = { for (i = 0; i < hits && target.hp && pokemon.hp; i++) { if (pokemon.status === 'slp' && !isSleepUsable) break; move.hit = i + 1; - if (move.hit === hits) move.lastHit = true; + move.lastHit = move.hit === hits; moveDamage = this.moveHit(target, pokemon, move); if (moveDamage === false) break; if (nullDamage && (moveDamage || moveDamage === 0 || moveDamage === undefined)) nullDamage = false; diff --git a/data/mods/gen3/abilities.ts b/data/mods/gen3/abilities.ts index 33ce5bcff8..05d84a50c5 100644 --- a/data/mods/gen3/abilities.ts +++ b/data/mods/gen3/abilities.ts @@ -12,15 +12,9 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa effectspore: { inherit: true, onDamagingHit(damage, target, source, move) { - if (damage && move.flags['contact'] && !source.status) { - const r = this.random(300); - if (r < 10) { - source.setStatus('slp', target); - } else if (r < 20) { - source.setStatus('par', target); - } else if (r < 30) { - source.setStatus('psn', target); - } + if (damage && move.flags['contact'] && this.randomChance(1, 10)) { + const status = this.sample(['slp', 'par', 'psn']); + source.trySetStatus(status, target); } }, }, diff --git a/data/mods/gen3/scripts.ts b/data/mods/gen3/scripts.ts index 257218af6c..7288052434 100644 --- a/data/mods/gen3/scripts.ts +++ b/data/mods/gen3/scripts.ts @@ -420,6 +420,7 @@ export const Scripts: ModdedBattleScriptsData = { for (i = 0; i < hits && target.hp && pokemon.hp; i++) { if (pokemon.status === 'slp' && !isSleepUsable) break; move.hit = i + 1; + move.lastHit = move.hit === hits; if (move.multiaccuracy && i > 0) { accuracy = move.accuracy; diff --git a/data/mods/gen3frlg/abilities.ts b/data/mods/gen3frlg/abilities.ts new file mode 100644 index 0000000000..adfe8653b3 --- /dev/null +++ b/data/mods/gen3frlg/abilities.ts @@ -0,0 +1,63 @@ +function attemptStatuses(battle: Battle, target: Pokemon, source: Pokemon, move: ActiveMove, status: string) { + const attackerStatused = source.trySetStatus(status, target); + if (move.multihit && move.id !== 'triplekick' && + (move.lastHit || (attackerStatused && status === 'slp')) && + battle.randomChance(1, 100)) { + const defenderStatused = target.trySetStatus(status, target, move); + if (defenderStatused) { + battle.hint("In Pokemon Ruby, Sapphire, FireRed, LeafGreen, and Colosseum, if the final hit of a multihit move (except for Triple Kick) that makes contact triggers an ability that inflicts status, then there is a 1% chance that the defender is afflicted by the same status."); + } + } +} + +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + effectspore: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact'] && !source.status) { + const r = this.random(300); + let status = null; + if (r < 10) { + status = 'slp'; + } else if (r < 20) { + status = 'par'; + } else if (r < 30) { + status = 'psn'; + } + if (status) { + attemptStatuses(this, target, source, move, status); + } + } + }, + }, + flamebody: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact']) { + if (this.randomChance(1, 3)) { + attemptStatuses(this, target, source, move, 'brn'); + } + } + }, + }, + poisonpoint: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact']) { + if (this.randomChance(1, 3)) { + attemptStatuses(this, target, source, move, 'psn'); + } + } + }, + }, + static: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact']) { + if (this.randomChance(1, 3)) { + attemptStatuses(this, target, source, move, 'par'); + } + } + }, + }, +}; diff --git a/data/mods/gen3frlg/formats-data.ts b/data/mods/gen3frlg/formats-data.ts new file mode 100644 index 0000000000..5b403df56a --- /dev/null +++ b/data/mods/gen3frlg/formats-data.ts @@ -0,0 +1,1354 @@ +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + bulbasaur: { + tier: "LC", + }, + ivysaur: { + tier: "NFE", + }, + venusaur: { + tier: "OU", + }, + charmander: { + tier: "LC", + }, + charmeleon: { + tier: "NFE", + }, + charizard: { + tier: "OU", + }, + squirtle: { + tier: "LC", + }, + wartortle: { + tier: "NFE", + }, + blastoise: { + tier: "OU", + }, + caterpie: { + tier: "LC", + }, + metapod: { + tier: "NFE", + }, + butterfree: { + tier: "OU", + }, + weedle: { + tier: "LC", + }, + kakuna: { + tier: "NFE", + }, + beedrill: { + tier: "OU", + }, + pidgey: { + tier: "LC", + }, + pidgeotto: { + tier: "NFE", + }, + pidgeot: { + tier: "OU", + }, + rattata: { + tier: "LC", + }, + raticate: { + tier: "OU", + }, + spearow: { + tier: "LC", + }, + fearow: { + tier: "OU", + }, + ekans: { + tier: "LC", + }, + arbok: { + tier: "OU", + }, + pichu: { + tier: "LC", + }, + pikachu: { + tier: "NFE", + }, + raichu: { + tier: "OU", + }, + sandshrew: { + tier: "LC", + }, + sandslash: { + tier: "OU", + }, + nidoranf: { + tier: "LC", + }, + nidorina: { + tier: "NFE", + }, + nidoqueen: { + tier: "OU", + }, + nidoranm: { + tier: "LC", + }, + nidorino: { + tier: "NFE", + }, + nidoking: { + tier: "OU", + }, + cleffa: { + tier: "LC", + }, + clefairy: { + tier: "NFE", + }, + clefable: { + tier: "OU", + }, + vulpix: { + tier: "LC", + }, + ninetales: { + tier: "OU", + }, + igglybuff: { + tier: "LC", + }, + jigglypuff: { + tier: "NFE", + }, + wigglytuff: { + tier: "OU", + }, + zubat: { + tier: "LC", + }, + golbat: { + tier: "NFE", + }, + crobat: { + tier: "OU", + }, + oddish: { + tier: "LC", + }, + gloom: { + tier: "NFE", + }, + vileplume: { + tier: "OU", + }, + bellossom: { + tier: "OU", + }, + paras: { + tier: "LC", + }, + parasect: { + tier: "OU", + }, + venonat: { + tier: "LC", + }, + venomoth: { + tier: "OU", + }, + diglett: { + tier: "LC", + }, + dugtrio: { + tier: "OU", + }, + meowth: { + tier: "LC", + }, + persian: { + tier: "OU", + }, + psyduck: { + tier: "LC", + }, + golduck: { + tier: "OU", + }, + mankey: { + tier: "LC", + }, + primeape: { + tier: "OU", + }, + growlithe: { + tier: "LC", + }, + arcanine: { + tier: "OU", + }, + poliwag: { + tier: "LC", + }, + poliwhirl: { + tier: "NFE", + }, + poliwrath: { + tier: "OU", + }, + politoed: { + tier: "OU", + }, + abra: { + tier: "LC", + }, + kadabra: { + tier: "NFE", + }, + alakazam: { + tier: "OU", + }, + machop: { + tier: "LC", + }, + machoke: { + tier: "NFE", + }, + machamp: { + tier: "OU", + }, + bellsprout: { + tier: "LC", + }, + weepinbell: { + tier: "NFE", + }, + victreebel: { + tier: "OU", + }, + tentacool: { + tier: "LC", + }, + tentacruel: { + tier: "OU", + }, + geodude: { + tier: "LC", + }, + graveler: { + tier: "NFE", + }, + golem: { + tier: "OU", + }, + ponyta: { + tier: "LC", + }, + rapidash: { + tier: "OU", + }, + slowpoke: { + tier: "LC", + }, + slowbro: { + tier: "OU", + }, + slowking: { + tier: "OU", + }, + magnemite: { + tier: "LC", + }, + magneton: { + tier: "OU", + }, + farfetchd: { + tier: "OU", + }, + doduo: { + tier: "LC", + }, + dodrio: { + tier: "OU", + }, + seel: { + tier: "LC", + }, + dewgong: { + tier: "OU", + }, + grimer: { + tier: "LC", + }, + muk: { + tier: "OU", + }, + shellder: { + tier: "LC", + }, + cloyster: { + tier: "OU", + }, + gastly: { + tier: "LC", + }, + haunter: { + tier: "NFE", + }, + gengar: { + tier: "OU", + }, + onix: { + tier: "LC", + }, + steelix: { + tier: "OU", + }, + drowzee: { + tier: "LC", + }, + hypno: { + tier: "OU", + }, + krabby: { + tier: "LC", + }, + kingler: { + tier: "OU", + }, + voltorb: { + tier: "LC", + }, + electrode: { + tier: "OU", + }, + exeggcute: { + tier: "LC", + }, + exeggutor: { + tier: "OU", + }, + cubone: { + tier: "LC", + }, + marowak: { + tier: "OU", + }, + tyrogue: { + tier: "LC", + }, + hitmonlee: { + tier: "OU", + }, + hitmonchan: { + tier: "OU", + }, + hitmontop: { + tier: "OU", + }, + lickitung: { + tier: "OU", + }, + koffing: { + tier: "LC", + }, + weezing: { + tier: "OU", + }, + rhyhorn: { + tier: "LC", + }, + rhydon: { + tier: "OU", + }, + chansey: { + tier: "OU", + }, + blissey: { + tier: "OU", + }, + tangela: { + tier: "OU", + }, + kangaskhan: { + tier: "OU", + }, + horsea: { + tier: "LC", + }, + seadra: { + tier: "NFE", + }, + kingdra: { + tier: "OU", + }, + goldeen: { + tier: "LC", + }, + seaking: { + tier: "OU", + }, + staryu: { + tier: "LC", + }, + starmie: { + tier: "OU", + }, + mrmime: { + tier: "OU", + }, + scyther: { + tier: "OU", + }, + scizor: { + tier: "OU", + }, + smoochum: { + tier: "LC", + }, + jynx: { + tier: "OU", + }, + elekid: { + tier: "LC", + }, + electabuzz: { + tier: "OU", + }, + magby: { + tier: "LC", + }, + magmar: { + tier: "OU", + }, + pinsir: { + tier: "OU", + }, + tauros: { + tier: "OU", + }, + magikarp: { + tier: "LC", + }, + gyarados: { + tier: "OU", + }, + lapras: { + tier: "OU", + }, + ditto: { + tier: "OU", + }, + eevee: { + tier: "LC", + }, + vaporeon: { + tier: "OU", + }, + jolteon: { + tier: "OU", + }, + flareon: { + tier: "OU", + }, + espeon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + umbreon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + porygon: { + tier: "OU", + }, + porygon2: { + tier: "OU", + }, + omanyte: { + tier: "LC", + }, + omastar: { + tier: "OU", + }, + kabuto: { + tier: "LC", + }, + kabutops: { + tier: "OU", + }, + aerodactyl: { + tier: "OU", + }, + snorlax: { + tier: "OU", + }, + articuno: { + tier: "OU", + }, + zapdos: { + tier: "OU", + }, + moltres: { + tier: "OU", + }, + dratini: { + tier: "LC", + }, + dragonair: { + tier: "NFE", + }, + dragonite: { + tier: "OU", + }, + mewtwo: { + tier: "Uber", + }, + mew: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + chikorita: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + bayleef: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + meganium: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + cyndaquil: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + quilava: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + typhlosion: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + totodile: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + croconaw: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + feraligatr: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sentret: { + tier: "LC", + }, + furret: { + tier: "OU", + }, + hoothoot: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + noctowl: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + ledyba: { + tier: "LC", + }, + ledian: { + tier: "OU", + }, + spinarak: { + tier: "LC", + }, + ariados: { + tier: "OU", + }, + chinchou: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + lanturn: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + togepi: { + tier: "LC", + }, + togetic: { + tier: "OU", + }, + natu: { + tier: "LC", + }, + xatu: { + tier: "OU", + }, + mareep: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + flaaffy: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + ampharos: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + azurill: { + tier: "LC", + }, + marill: { + tier: "NFE", + }, + azumarill: { + tier: "OU", + }, + sudowoodo: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + hoppip: { + tier: "LC", + }, + skiploom: { + tier: "NFE", + }, + jumpluff: { + tier: "OU", + }, + aipom: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sunkern: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sunflora: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + yanma: { + tier: "OU", + }, + wooper: { + tier: "LC", + }, + quagsire: { + tier: "OU", + }, + murkrow: { + tier: "OU", + }, + misdreavus: { + tier: "OU", + }, + unown: { + tier: "OU", + }, + wynaut: { + tier: "Uber", + }, + wobbuffet: { + tier: "Uber", + }, + girafarig: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + pineco: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + forretress: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + dunsparce: { + tier: "OU", + }, + gligar: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + snubbull: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + granbull: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + qwilfish: { + tier: "OU", + }, + shuckle: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + heracross: { + tier: "OU", + }, + sneasel: { + tier: "OU", + }, + teddiursa: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + ursaring: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + slugma: { + tier: "LC", + }, + magcargo: { + tier: "OU", + }, + swinub: { + tier: "LC", + }, + piloswine: { + tier: "OU", + }, + corsola: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + remoraid: { + tier: "LC", + }, + octillery: { + tier: "OU", + }, + delibird: { + tier: "OU", + }, + mantine: { + tier: "OU", + }, + skarmory: { + tier: "OU", + }, + houndour: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + houndoom: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + phanpy: { + tier: "LC", + }, + donphan: { + tier: "OU", + }, + stantler: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + smeargle: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + miltank: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + raikou: { + tier: "OU", + }, + entei: { + tier: "OU", + }, + suicune: { + tier: "OU", + }, + larvitar: { + tier: "LC", + }, + pupitar: { + tier: "NFE", + }, + tyranitar: { + tier: "OU", + }, + lugia: { + tier: "Uber", + }, + hooh: { + tier: "Uber", + }, + celebi: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + treecko: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + grovyle: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sceptile: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + torchic: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + combusken: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + blaziken: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + mudkip: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + marshtomp: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + swampert: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + poochyena: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + mightyena: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + zigzagoon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + linoone: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + wurmple: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + silcoon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + beautifly: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + cascoon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + dustox: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + lotad: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + lombre: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + ludicolo: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + seedot: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + nuzleaf: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + shiftry: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + taillow: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + swellow: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + wingull: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + pelipper: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + ralts: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + kirlia: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + gardevoir: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + surskit: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + masquerain: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + shroomish: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + breloom: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + slakoth: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + vigoroth: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + slaking: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + nincada: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + ninjask: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + shedinja: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + whismur: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + loudred: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + exploud: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + makuhita: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + hariyama: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + nosepass: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + skitty: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + delcatty: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sableye: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + mawile: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + aron: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + lairon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + aggron: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + meditite: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + medicham: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + electrike: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + manectric: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + plusle: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + minun: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + volbeat: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + illumise: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + roselia: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + gulpin: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + swalot: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + carvanha: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sharpedo: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + wailmer: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + wailord: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + numel: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + camerupt: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + torkoal: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + spoink: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + grumpig: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + spinda: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + trapinch: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + vibrava: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + flygon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + cacnea: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + cacturne: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + swablu: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + altaria: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + zangoose: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + seviper: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + lunatone: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + solrock: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + barboach: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + whiscash: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + corphish: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + crawdaunt: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + baltoy: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + claydol: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + lileep: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + cradily: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + anorith: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + armaldo: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + feebas: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + milotic: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + castform: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + castformsunny: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + castformrainy: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + castformsnowy: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + kecleon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + shuppet: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + banette: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + duskull: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + dusclops: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + tropius: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + chimecho: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + absol: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + snorunt: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + glalie: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + spheal: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + sealeo: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + walrein: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + clamperl: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + huntail: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + gorebyss: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + relicanth: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + luvdisc: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + bagon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + shelgon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + salamence: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + beldum: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + metang: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + metagross: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + regirock: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + regice: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + registeel: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + latias: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + latios: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + kyogre: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + groudon: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + rayquaza: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + jirachi: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + deoxys: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, + deoxysattack: { + tier: "Uber", + }, + deoxysdefense: { + tier: "Uber", + }, + deoxysspeed: { + tier: "Unreleased", + isNonstandard: "Unobtainable", + }, +}; diff --git a/data/mods/gen3frlg/items.ts b/data/mods/gen3frlg/items.ts new file mode 100644 index 0000000000..02a3138aa6 --- /dev/null +++ b/data/mods/gen3frlg/items.ts @@ -0,0 +1,146 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + aguavberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + apicotberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + brightpowder: { + inherit: true, + isNonstandard: "Unobtainable", + }, + choiceband: { + inherit: true, + isNonstandard: "Unobtainable", + }, + clawfossil: { + inherit: true, + isNonstandard: "Unobtainable", + }, + cornnberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + deepseascale: { + inherit: true, + isNonstandard: "Unobtainable", + }, + deepseatooth: { + inherit: true, + isNonstandard: "Unobtainable", + }, + diveball: { + inherit: true, + isNonstandard: "Unobtainable", + }, + enigmaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + figyberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + ganlonberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + grepaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + hondewberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + kelpsyberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + lansatberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + liechiberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + lightball: { + inherit: true, + isNonstandard: "Unobtainable", + }, + magoberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + magostberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + mentalherb: { + inherit: true, + isNonstandard: "Unobtainable", + }, + nomelberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + petayaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + pomegberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + premierball: { + inherit: true, + isNonstandard: "Unobtainable", + }, + qualotberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + rabutaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + rootfossil: { + inherit: true, + isNonstandard: "Unobtainable", + }, + salacberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + scopelens: { + inherit: true, + isNonstandard: "Unobtainable", + }, + shellbell: { + inherit: true, + isNonstandard: "Unobtainable", + }, + souldew: { + inherit: true, + isNonstandard: "Unobtainable", + }, + starfberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + tamatoberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + whiteherb: { + inherit: true, + isNonstandard: "Unobtainable", + }, + wikiberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, +}; diff --git a/data/mods/gen3frlg/learnsets.ts b/data/mods/gen3frlg/learnsets.ts new file mode 100644 index 0000000000..efdd42881e --- /dev/null +++ b/data/mods/gen3frlg/learnsets.ts @@ -0,0 +1,9336 @@ +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { + bulbasaur: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + curse: ["3E"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + growl: ["3L4"], + growth: ["3L32"], + hiddenpower: ["3M"], + leechseed: ["3L7"], + lightscreen: ["3E"], + magicalleaf: ["3E"], + mimic: ["3T"], + petaldance: ["3E"], + poisonpowder: ["3L15"], + protect: ["3M"], + razorleaf: ["3L20"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + safeguard: ["3E"], + secretpower: ["3M"], + skullbash: ["3E"], + sleeppowder: ["3L15"], + sludgebomb: ["3M"], + solarbeam: ["3M", "3L46"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L25"], + swordsdance: ["3T"], + synthesis: ["3L39"], + tackle: ["3L1"], + toxic: ["3M"], + vinewhip: ["3L10"], + }, + }, + ivysaur: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + growl: ["3L1"], + growth: ["3L38"], + hiddenpower: ["3M"], + leechseed: ["3L1"], + mimic: ["3T"], + poisonpowder: ["3L15"], + protect: ["3M"], + razorleaf: ["3L22"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L15"], + sludgebomb: ["3M"], + solarbeam: ["3M", "3L56"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L29"], + swordsdance: ["3T"], + synthesis: ["3L47"], + tackle: ["3L1"], + toxic: ["3M"], + vinewhip: ["3L10"], + }, + }, + venusaur: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + flash: ["3M"], + frenzyplant: ["3T"], + frustration: ["3M"], + gigadrain: ["3M"], + growl: ["3L1"], + growth: ["3L41"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechseed: ["3L1"], + mimic: ["3T"], + poisonpowder: ["3L15"], + protect: ["3M"], + razorleaf: ["3L22"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L15"], + sludgebomb: ["3M"], + solarbeam: ["3M", "3L65"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L29"], + swordsdance: ["3T"], + synthesis: ["3L53"], + tackle: ["3L1"], + toxic: ["3M"], + vinewhip: ["3L1"], + }, + }, + charmander: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + beatup: ["3E"], + bellydrum: ["3E"], + bite: ["3E"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonclaw: ["3M"], + dragondance: ["3E"], + dragonrage: ["3L43"], + ember: ["3L7"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3L49"], + flamethrower: ["3M", "3L31"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hiddenpower: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["3L13"], + mimic: ["3T"], + outrage: ["3E"], + overheat: ["3M"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + scaryface: ["3L25"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + slash: ["3L37"], + smokescreen: ["3L13"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3E"], + toxic: ["3M"], + }, + }, + charmeleon: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonclaw: ["3M"], + dragonrage: ["3L48"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3L55"], + flamethrower: ["3M", "3L34"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hiddenpower: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["3L13"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + scaryface: ["3L27"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + slash: ["3L41"], + smokescreen: ["3L13"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + toxic: ["3M"], + }, + }, + charizard: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + blastburn: ["3T"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonclaw: ["3M"], + dragonrage: ["3L54"], + earthquake: ["3M"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3L64"], + flamethrower: ["3M", "3L34"], + fly: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + heatwave: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["3L1"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + scaryface: ["3L27"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + slash: ["3L44"], + smokescreen: ["3L1"], + steelwing: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + toxic: ["3M"], + wingattack: ["3L36"], + }, + }, + squirtle: { + learnset: { + attract: ["3M"], + bite: ["3L18"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bubble: ["3L7"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flail: ["3E"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hydropump: ["3L47"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mist: ["3E"], + protect: ["3M", "3L28"], + raindance: ["3M", "3L33"], + rapidspin: ["3L23"], + refresh: ["3E"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + skullbash: ["3L40"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L4"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + withdraw: ["3L10"], + yawn: ["3E"], + }, + }, + wartortle: { + learnset: { + attract: ["3M"], + bite: ["3L19"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bubble: ["3L1"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L53"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M", "3L31"], + raindance: ["3M", "3L37"], + rapidspin: ["3L25"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + skullbash: ["3L45"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + withdraw: ["3L10"], + }, + }, + blastoise: { + learnset: { + attract: ["3M"], + bite: ["3L19"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bubble: ["3L1"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydrocannon: ["3T"], + hydropump: ["3L68"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M", "3L31"], + raindance: ["3M", "3L42"], + rapidspin: ["3L25"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + skullbash: ["3L55"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + withdraw: ["3L1"], + }, + }, + caterpie: { + learnset: { + stringshot: ["3L1"], + tackle: ["3L1"], + }, + encounters: [ + {generation: 3, level: 3}, + ], + }, + metapod: { + learnset: { + harden: ["3L1"], + }, + encounters: [ + {generation: 3, level: 4}, + ], + }, + butterfree: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + confusion: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + gust: ["3L28"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + poisonpowder: ["3L13"], + protect: ["3M"], + psybeam: ["3L34"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M", "3L40"], + secretpower: ["3M"], + shadowball: ["3M"], + silverwind: ["3L47"], + skillswap: ["3M"], + sleeppowder: ["3L15"], + solarbeam: ["3M"], + stunspore: ["3L14"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L18"], + thief: ["3M"], + toxic: ["3M"], + whirlwind: ["3L23"], + }, + }, + weedle: { + learnset: { + poisonsting: ["3L1"], + stringshot: ["3L1"], + }, + encounters: [ + {generation: 3, level: 3}, + ], + }, + kakuna: { + learnset: { + harden: ["3L1"], + }, + encounters: [ + {generation: 3, level: 4}, + ], + }, + beedrill: { + learnset: { + aerialace: ["3M"], + agility: ["3L40"], + attract: ["3M"], + brickbreak: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + endeavor: ["3L45"], + facade: ["3M"], + focusenergy: ["3L15"], + frustration: ["3M"], + furyattack: ["3L1"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + pinmissile: ["3L35"], + protect: ["3M"], + pursuit: ["3L30"], + rage: ["3L25"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + twineedle: ["3L20"], + }, + }, + pidgey: { + learnset: { + aerialace: ["3M"], + agility: ["3L39"], + aircutter: ["3E"], + attract: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + featherdance: ["3L31"], + feintattack: ["3E"], + fly: ["3M"], + frustration: ["3M"], + gust: ["3L9"], + hiddenpower: ["3M"], + mimic: ["3T"], + mirrormove: ["3L47"], + protect: ["3M"], + pursuit: ["3E"], + quickattack: ["3L13"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + sandattack: ["3L5"], + secretpower: ["3M"], + steelwing: ["3M", "3E"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + whirlwind: ["3L19"], + wingattack: ["3L25"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + pidgeotto: { + learnset: { + aerialace: ["3M"], + agility: ["3L43"], + attract: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + featherdance: ["3L34"], + fly: ["3M"], + frustration: ["3M"], + gust: ["3L1"], + hiddenpower: ["3M"], + mimic: ["3T"], + mirrormove: ["3L52"], + protect: ["3M"], + quickattack: ["3L13"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + sandattack: ["3L1"], + secretpower: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + whirlwind: ["3L20"], + wingattack: ["3L27"], + }, + encounters: [ + {generation: 3, level: 7}, + ], + }, + pidgeot: { + learnset: { + aerialace: ["3M"], + agility: ["3L48"], + attract: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + featherdance: ["3L34"], + fly: ["3M"], + frustration: ["3M"], + gust: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + mirrormove: ["3L62"], + protect: ["3M"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + sandattack: ["3L1"], + secretpower: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + whirlwind: ["3L20"], + wingattack: ["3L27"], + }, + }, + rattata: { + learnset: { + attract: ["3M"], + bite: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + counter: ["3T", "3E"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + endeavor: ["3L41"], + facade: ["3M"], + flamewheel: ["3E"], + focusenergy: ["3L20"], + frustration: ["3M"], + furyswipes: ["3E"], + hiddenpower: ["3M"], + hyperfang: ["3L13"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L27"], + quickattack: ["3L7"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + superfang: ["3L34"], + swagger: ["3E"], + tackle: ["3L1"], + tailwhip: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + raticate: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + endeavor: ["3L50"], + facade: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hyperfang: ["3L13"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L30"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + scaryface: ["3L20"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + superfang: ["3L40"], + tackle: ["3L1"], + tailwhip: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + }, + }, + spearow: { + learnset: { + aerialace: ["3M", "3L25"], + agility: ["3L43"], + astonish: ["3E"], + attract: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + drillpeck: ["3L37"], + facade: ["3M"], + falseswipe: ["3E"], + feintattack: ["3E"], + fly: ["3M"], + frustration: ["3M"], + furyattack: ["3L13"], + growl: ["3L1"], + hiddenpower: ["3M"], + leer: ["3L7"], + mimic: ["3T"], + mirrormove: ["3L31"], + peck: ["3L1"], + protect: ["3M"], + pursuit: ["3L19"], + quickattack: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + scaryface: ["3E"], + secretpower: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + triattack: ["3E"], + }, + encounters: [ + {generation: 3, level: 3}, + ], + }, + fearow: { + learnset: { + aerialace: ["3M"], + agility: ["3L47"], + attract: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + drillpeck: ["3L40"], + facade: ["3M"], + fly: ["3M"], + frustration: ["3M"], + furyattack: ["3L1"], + growl: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + mirrormove: ["3L32"], + peck: ["3L1"], + protect: ["3M"], + pursuit: ["3L26"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + ekans: { + learnset: { + acid: ["3L32"], + attract: ["3M"], + beatup: ["3E"], + bite: ["3L13"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + glare: ["3L20"], + haze: ["3L44"], + hiddenpower: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + poisonsting: ["3L8"], + protect: ["3M"], + pursuit: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + screech: ["3L25"], + secretpower: ["3M"], + slam: ["3E"], + sludgebomb: ["3M"], + snatch: ["3M"], + spite: ["3E"], + spitup: ["3L37"], + stockpile: ["3L37"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swallow: ["3L37"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + wrap: ["3L1"], + }, + }, + arbok: { + learnset: { + acid: ["3L38"], + attract: ["3M"], + bite: ["3L1"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + glare: ["3L20"], + haze: ["3L56"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + poisonsting: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + screech: ["3L28"], + secretpower: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + spitup: ["3L46"], + stockpile: ["3L46"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swallow: ["3L46"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + wrap: ["3L1"], + }, + }, + pichu: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + charm: ["3L1"], + counter: ["3T"], + doubleedge: ["3T"], + doubleslap: ["3E"], + doubleteam: ["3M"], + encore: ["3E"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + irontail: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + present: ["3E"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + substitute: ["3T"], + sweetkiss: ["3L11"], + tailwhip: ["3L6"], + thunder: ["3M"], + thunderbolt: ["3M"], + thundershock: ["3L1"], + thunderwave: ["3T", "3L8"], + toxic: ["3M"], + wish: ["3E"], + }, + }, + pikachu: { + learnset: { + agility: ["3L33"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M", "3L15"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hiddenpower: ["3M"], + irontail: ["3M"], + lightscreen: ["3M", "3L50"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L11"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + slam: ["3L20"], + strength: ["3M"], + substitute: ["3T"], + tailwhip: ["3L6"], + thunder: ["3M", "3L41"], + thunderbolt: ["3M", "3L26"], + thundershock: ["3L1"], + thunderwave: ["3T", "3L8"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 3}, + ], + }, + raichu: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + strength: ["3M"], + substitute: ["3T"], + tailwhip: ["3L1"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M", "3L1"], + thundershock: ["3L1"], + thunderwave: ["3T"], + toxic: ["3M"], + }, + }, + sandshrew: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T", "3E"], + cut: ["3M"], + defensecurl: ["3T", "3L6"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + flail: ["3E"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L37"], + hiddenpower: ["3M"], + irontail: ["3M"], + metalclaw: ["3E"], + mimic: ["3T"], + poisonsting: ["3L17"], + protect: ["3M"], + rapidspin: ["3E"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3E"], + sandattack: ["3L11"], + sandstorm: ["3M", "3L53"], + sandtomb: ["3L45"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + slash: ["3L23"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swift: ["3T", "3L30"], + swordsdance: ["3T", "3E"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + sandslash: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L42"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + poisonsting: ["3L17"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandattack: ["3L1"], + sandstorm: ["3M", "3L62"], + sandtomb: ["3L52"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + slash: ["3L24"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swift: ["3T", "3L33"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + nidoranf: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + beatup: ["3E"], + bite: ["3L20"], + blizzard: ["3M"], + bodyslam: ["3T"], + charm: ["3E"], + counter: ["3T", "3E"], + crunch: ["3L47"], + cut: ["3M"], + dig: ["3M"], + disable: ["3E"], + doubleedge: ["3T"], + doublekick: ["3L12"], + doubleteam: ["3M"], + facade: ["3M"], + flatter: ["3L38"], + focusenergy: ["3E"], + frustration: ["3M"], + furyswipes: ["3L30"], + growl: ["3L1"], + helpinghand: ["3L23"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + poisonsting: ["3L17"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3E"], + tailwhip: ["3L8"], + takedown: ["3E"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + nidorina: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bite: ["3L22"], + blizzard: ["3M"], + bodyslam: ["3T"], + counter: ["3T"], + crunch: ["3L53"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doublekick: ["3L12"], + doubleteam: ["3M"], + facade: ["3M"], + flatter: ["3L43"], + frustration: ["3M"], + furyswipes: ["3L34"], + growl: ["3L1"], + helpinghand: ["3L26"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + poisonsting: ["3L18"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tailwhip: ["3L8"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + nidoqueen: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T", "3L22"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doublekick: ["3L1"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + poisonsting: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + superpower: ["3L43"], + surf: ["3M"], + tailwhip: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + nidoranm: { + learnset: { + amnesia: ["3E"], + attract: ["3M"], + beatup: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + confusion: ["3E"], + counter: ["3T", "3E"], + cut: ["3M"], + dig: ["3M"], + disable: ["3E"], + doubleedge: ["3T"], + doublekick: ["3L12"], + doubleteam: ["3M"], + facade: ["3M"], + flatter: ["3L38"], + focusenergy: ["3L8"], + frustration: ["3M"], + furyattack: ["3L30"], + helpinghand: ["3L23"], + hiddenpower: ["3M"], + hornattack: ["3L20"], + horndrill: ["3L47"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + peck: ["3L1"], + poisonsting: ["3L17"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3E"], + takedown: ["3E"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + nidorino: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doublekick: ["3L12"], + doubleteam: ["3M"], + facade: ["3M"], + flatter: ["3L43"], + focusenergy: ["3L8"], + frustration: ["3M"], + furyattack: ["3L34"], + helpinghand: ["3L26"], + hiddenpower: ["3M"], + hornattack: ["3L22"], + horndrill: ["3L53"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + peck: ["3L1"], + poisonsting: ["3L18"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + nidoking: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doublekick: ["3L1"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L1"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megahorn: ["3L43"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + peck: ["3L1"], + poisonsting: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thrash: ["3L22"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + cleffa: { + learnset: { + amnesia: ["3E"], + attract: ["3M"], + bellydrum: ["3E"], + bodyslam: ["3T"], + charm: ["3L1"], + counter: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + encore: ["3L4"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + irontail: ["3M"], + lightscreen: ["3M"], + magicalleaf: ["3L17"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T", "3E"], + mimic: ["3T", "3E"], + pound: ["3L1"], + present: ["3E"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L8"], + softboiled: ["3T"], + solarbeam: ["3M"], + splash: ["3E"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + sweetkiss: ["3L13"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + wish: ["3E"], + }, + }, + clefairy: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + cosmicpower: ["3L33"], + counter: ["3T"], + defensecurl: ["3T", "3L25"], + dig: ["3M"], + doubleedge: ["3T"], + doubleslap: ["3L13"], + doubleteam: ["3M"], + dreameater: ["3T"], + encore: ["3L5"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + followme: ["3L17"], + frustration: ["3M"], + growl: ["3L1"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M", "3L41"], + megakick: ["3T"], + megapunch: ["3T"], + meteormash: ["3L45"], + metronome: ["3T", "3L29"], + mimic: ["3T"], + minimize: ["3L21"], + moonlight: ["3L37"], + pound: ["3L1"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L9"], + snatch: ["3M"], + softboiled: ["3T"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + clefable: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + counter: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleslap: ["3L1"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T", "3L1"], + mimic: ["3T"], + minimize: ["3L1"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L1"], + snatch: ["3M"], + softboiled: ["3T"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + vulpix: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + confuseray: ["3L21"], + dig: ["3M"], + disable: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + facade: ["3M"], + feintattack: ["3E"], + fireblast: ["3M"], + firespin: ["3L41"], + flail: ["3E"], + flamethrower: ["3M", "3L29"], + frustration: ["3M"], + grudge: ["3L37"], + hiddenpower: ["3M"], + hypnosis: ["3E"], + imprison: ["3L25"], + irontail: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + psychup: ["3E"], + quickattack: ["3L13"], + rest: ["3M"], + return: ["3M"], + roar: ["3M", "3L9"], + safeguard: ["3M", "3L33"], + secretpower: ["3M"], + spite: ["3E"], + substitute: ["3T"], + sunnyday: ["3M"], + tailwhip: ["3L5"], + toxic: ["3M"], + willowisp: ["3L17"], + }, + }, + ninetales: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + confuseray: ["3L1"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3L45"], + flamethrower: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + quickattack: ["3L1"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + safeguard: ["3M", "3L1"], + secretpower: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + toxic: ["3M"], + }, + }, + igglybuff: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + charm: ["3L1"], + counter: ["3T"], + defensecurl: ["3T", "3L4"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + perishsong: ["3E"], + pound: ["3L9"], + present: ["3E"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L1"], + solarbeam: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetkiss: ["3L14"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + wish: ["3E"], + }, + }, + jigglypuff: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T", "3L34"], + brickbreak: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L4"], + dig: ["3M"], + disable: ["3L14"], + doubleedge: ["3T", "3L49"], + doubleslap: ["3L24"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hypervoice: ["3L44"], + icebeam: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T", "3L39"], + pound: ["3L9"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M", "3L29"], + return: ["3M"], + rollout: ["3T", "3L19"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L1"], + snatch: ["3M"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 3}, + ], + }, + wigglytuff: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + disable: ["3L1"], + doubleedge: ["3T"], + doubleslap: ["3L1"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L1"], + snatch: ["3M"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + zubat: { + learnset: { + aerialace: ["3M"], + aircutter: ["3L31"], + astonish: ["3L6"], + attract: ["3M"], + bite: ["3L16"], + confuseray: ["3L26"], + curse: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + feintattack: ["3E"], + frustration: ["3M"], + gigadrain: ["3M"], + gust: ["3E"], + haze: ["3L46"], + hiddenpower: ["3M"], + leechlife: ["3L1"], + meanlook: ["3L36"], + mimic: ["3T"], + poisonfang: ["3L41"], + protect: ["3M"], + pursuit: ["3E"], + quickattack: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L6"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + whirlwind: ["3E"], + wingattack: ["3L21"], + }, + }, + golbat: { + learnset: { + aerialace: ["3M"], + aircutter: ["3L35"], + astonish: ["3L1"], + attract: ["3M"], + bite: ["3L16"], + confuseray: ["3L28"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + haze: ["3L56"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechlife: ["3L1"], + meanlook: ["3L42"], + mimic: ["3T"], + poisonfang: ["3L49"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3L1"], + secretpower: ["3M"], + shadowball: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + wingattack: ["3L21"], + }, + encounters: [ + {generation: 3, level: 5}, + ], + }, + crobat: { + learnset: { + aerialace: ["3M"], + aircutter: ["3L35"], + astonish: ["3L1"], + attract: ["3M"], + bite: ["3L16"], + confuseray: ["3L28"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + fly: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + haze: ["3L56"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechlife: ["3L1"], + meanlook: ["3L42"], + mimic: ["3T"], + poisonfang: ["3L49"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3L1"], + secretpower: ["3M"], + shadowball: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + wingattack: ["3L21"], + }, + }, + oddish: { + learnset: { + absorb: ["3L1"], + acid: ["3L23"], + attract: ["3M"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + ingrain: ["3E"], + mimic: ["3T"], + moonlight: ["3L32"], + petaldance: ["3L39"], + poisonpowder: ["3L14"], + protect: ["3M"], + razorleaf: ["3E"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L18"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L16"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L7"], + swordsdance: ["3T", "3E"], + synthesis: ["3E"], + toxic: ["3M"], + }, + }, + gloom: { + learnset: { + absorb: ["3L1"], + acid: ["3L24"], + attract: ["3M"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + mimic: ["3T"], + moonlight: ["3L35"], + petaldance: ["3L44"], + poisonpowder: ["3L1"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L18"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L16"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L1"], + swordsdance: ["3T"], + toxic: ["3M"], + }, + }, + vileplume: { + learnset: { + absorb: ["3L1"], + aromatherapy: ["3L1"], + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + megadrain: ["3L1"], + mimic: ["3T"], + petaldance: ["3L44"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + toxic: ["3M"], + }, + }, + bellossom: { + learnset: { + absorb: ["3L1"], + attract: ["3M"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + magicalleaf: ["3L1"], + mimic: ["3T"], + petaldance: ["3L44"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + sludgebomb: ["3M"], + solarbeam: ["3M", "3L55"], + stunspore: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L1"], + swordsdance: ["3T"], + toxic: ["3M"], + }, + }, + paras: { + learnset: { + aerialace: ["3M"], + aromatherapy: ["3L49"], + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + counter: ["3T", "3E"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + falseswipe: ["3E"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M", "3L43"], + growth: ["3L37"], + hiddenpower: ["3M"], + leechlife: ["3L19"], + lightscreen: ["3E"], + mimic: ["3T"], + poisonpowder: ["3L13"], + protect: ["3M"], + psybeam: ["3E"], + pursuit: ["3E"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + screech: ["3E"], + secretpower: ["3M"], + slash: ["3L31"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + spore: ["3L25"], + stunspore: ["3L7"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3E"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + parasect: { + learnset: { + aerialace: ["3M"], + aromatherapy: ["3L59"], + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M", "3L51"], + growth: ["3L43"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechlife: ["3L19"], + mimic: ["3T"], + poisonpowder: ["3L1"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + slash: ["3L35"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + spore: ["3L27"], + stunspore: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + venonat: { + learnset: { + attract: ["3M"], + batonpass: ["3E"], + confusion: ["3L17"], + disable: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + foresight: ["3L1"], + frustration: ["3M"], + gigadrain: ["3M", "3E"], + hiddenpower: ["3M"], + leechlife: ["3L25"], + mimic: ["3T"], + poisonpowder: ["3L20"], + protect: ["3M"], + psybeam: ["3L33"], + psychic: ["3M", "3L41"], + rest: ["3M"], + return: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + skillswap: ["3M"], + sleeppowder: ["3L36"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L28"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L9"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + venomoth: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + confusion: ["3L17"], + disable: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + foresight: ["3L1"], + frustration: ["3M"], + gigadrain: ["3M"], + gust: ["3L31"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechlife: ["3L25"], + mimic: ["3T"], + poisonpowder: ["3L20"], + protect: ["3M"], + psybeam: ["3L36"], + psychic: ["3M", "3L52"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + silverwind: ["3L1"], + skillswap: ["3M"], + sleeppowder: ["3L42"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L28"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L1"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + diglett: { + learnset: { + aerialace: ["3M"], + ancientpower: ["3E"], + attract: ["3M"], + beatup: ["3E"], + bodyslam: ["3T"], + cut: ["3M"], + dig: ["3M", "3L17"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L41"], + facade: ["3M"], + feintattack: ["3E"], + fissure: ["3L49"], + frustration: ["3M"], + furyswipes: ["3L21"], + growl: ["3L5"], + hiddenpower: ["3M"], + magnitude: ["3L9"], + mimic: ["3T"], + mudslap: ["3T", "3L25"], + protect: ["3M"], + pursuit: ["3E"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandattack: ["3L1"], + scratch: ["3L1"], + screech: ["3E"], + secretpower: ["3M"], + slash: ["3L33"], + sludgebomb: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + dugtrio: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bodyslam: ["3T"], + cut: ["3M"], + dig: ["3M", "3L17"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L51"], + facade: ["3M"], + fissure: ["3L64"], + frustration: ["3M"], + furyswipes: ["3L21"], + growl: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + magnitude: ["3L9"], + mimic: ["3T"], + mudslap: ["3T", "3L25"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandattack: ["3L1"], + sandtomb: ["3L26"], + scratch: ["3L1"], + secretpower: ["3M"], + slash: ["3L38"], + sludgebomb: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + triattack: ["3L1"], + }, + }, + meowth: { + learnset: { + aerialace: ["3M"], + amnesia: ["3E"], + attract: ["3M"], + bite: ["3L10"], + bodyslam: ["3T"], + charm: ["3E"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fakeout: ["3L43"], + feintattack: ["3L25"], + flash: ["3M"], + frustration: ["3M"], + furyswipes: ["3L36"], + growl: ["3L1"], + hiddenpower: ["3M"], + hypnosis: ["3E"], + irontail: ["3M"], + mimic: ["3T"], + payday: ["3L18"], + protect: ["3M"], + psychup: ["3T", "3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + scratch: ["3L1"], + screech: ["3L31"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + slash: ["3L40"], + snatch: ["3M"], + spite: ["3E"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L45"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + encounters: [ + {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"}, + ], + }, + persian: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bite: ["3L1"], + bodyslam: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fakeout: ["3L55"], + feintattack: ["3L25"], + flash: ["3M"], + frustration: ["3M"], + furyswipes: ["3L42"], + growl: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + payday: ["3L18"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + scratch: ["3L1"], + screech: ["3L34"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + slash: ["3L49"], + snatch: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L61"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + psyduck: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L16"], + counter: ["3T"], + crosschop: ["3E"], + dig: ["3M"], + disable: ["3L10"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L40"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L50"], + hypnosis: ["3E"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psybeam: ["3E"], + psychic: ["3E"], + psychup: ["3T", "3L31"], + raindance: ["3M"], + refresh: ["3E"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + screech: ["3L23"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tailwhip: ["3L5"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + watersport: ["3L1"], + }, + }, + golduck: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L16"], + counter: ["3T"], + dig: ["3M"], + disable: ["3L1"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L44"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L58"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychup: ["3T", "3L31"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + screech: ["3L23"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + watersport: ["3L1"], + }, + encounters: [ + {generation: 3, level: 25, pokeball: "safariball"}, + ], + }, + mankey: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + beatup: ["3E"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T", "3E"], + crosschop: ["3L31"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focusenergy: ["3L21"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L16"], + hiddenpower: ["3M"], + irontail: ["3M"], + karatechop: ["3L11"], + leer: ["3L1"], + lowkick: ["3L6"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + scratch: ["3L1"], + screech: ["3L41"], + secretpower: ["3M"], + seismictoss: ["3T", "3L26"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L36"], + taunt: ["3M"], + thief: ["3M"], + thrash: ["3L46"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + primeape: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T"], + crosschop: ["3L35"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focusenergy: ["3L21"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L16"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + karatechop: ["3L11"], + leer: ["3L1"], + lowkick: ["3L1"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + rage: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + scratch: ["3L1"], + screech: ["3L53"], + secretpower: ["3M"], + seismictoss: ["3T", "3L26"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L44"], + taunt: ["3M"], + thief: ["3M"], + thrash: ["3L62"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + }, + }, + growlithe: { + learnset: { + aerialace: ["3M"], + agility: ["3L43"], + attract: ["3M"], + bite: ["3L1"], + bodyslam: ["3T", "3E"], + crunch: ["3E"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L7"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3E"], + flamethrower: ["3M", "3L49"], + flamewheel: ["3L31"], + frustration: ["3M"], + helpinghand: ["3L37"], + hiddenpower: ["3M"], + irontail: ["3M"], + leer: ["3L13"], + mimic: ["3T"], + odorsleuth: ["3L19"], + overheat: ["3M"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M", "3L1"], + rocksmash: ["3M"], + safeguard: ["3E"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + takedown: ["3L25"], + thief: ["3M"], + thrash: ["3E"], + toxic: ["3M"], + }, + }, + arcanine: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bite: ["3L1"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + extremespeed: ["3L49"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + odorsleuth: ["3L1"], + overheat: ["3M"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M", "3L1"], + rocksmash: ["3M"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + poliwag: { + learnset: { + attract: ["3M"], + bellydrum: ["3L37"], + blizzard: ["3M"], + bodyslam: ["3T", "3L31"], + bubble: ["3L1"], + bubblebeam: ["3E"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleslap: ["3L19"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hydropump: ["3L43"], + hypnosis: ["3L7"], + icebeam: ["3M"], + mimic: ["3T"], + mindreader: ["3E"], + mist: ["3E"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M", "3L25"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + splash: ["3E"], + substitute: ["3T"], + surf: ["3M"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + watersport: ["3E"], + }, + }, + poliwhirl: { + learnset: { + attract: ["3M"], + bellydrum: ["3L43"], + blizzard: ["3M"], + bodyslam: ["3T", "3L35"], + brickbreak: ["3M"], + bubble: ["3L1"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleslap: ["3L19"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L51"], + hypnosis: ["3L1"], + icebeam: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M", "3L27"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 20}, + ], + }, + poliwrath: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleslap: ["3L1"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hypnosis: ["3L1"], + icebeam: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mindreader: ["3L51"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + submission: ["3L1"], + substitute: ["3T"], + surf: ["3M"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + politoed: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleslap: ["3L1"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hypnosis: ["3L1"], + icebeam: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + perishsong: ["3L1"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + swagger: ["3T", "3L51"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + abra: { + learnset: { + attract: ["3M"], + barrier: ["3E"], + bodyslam: ["3T"], + calmmind: ["3M"], + counter: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + encore: ["3E"], + facade: ["3M"], + firepunch: ["3T", "3E"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + icepunch: ["3T", "3E"], + irontail: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + teleport: ["3L1"], + thief: ["3M"], + thunderpunch: ["3T", "3E"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + kadabra: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + calmmind: ["3M"], + confusion: ["3L1"], + counter: ["3T"], + disable: ["3L18"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + futuresight: ["3L30"], + hiddenpower: ["3M"], + irontail: ["3M"], + kinesis: ["3L1"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psybeam: ["3L21"], + psychic: ["3M", "3L36"], + raindance: ["3M"], + recover: ["3L25"], + reflect: ["3M", "3L23"], + rest: ["3M"], + return: ["3M"], + roleplay: ["3L33"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + teleport: ["3L1"], + thief: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + trick: ["3L43"], + }, + }, + alakazam: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + calmmind: ["3M", "3L33"], + confusion: ["3L1"], + counter: ["3T"], + disable: ["3L18"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + futuresight: ["3L30"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + kinesis: ["3L1"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psybeam: ["3L21"], + psychic: ["3M", "3L36"], + raindance: ["3M"], + recover: ["3L25"], + reflect: ["3M", "3L23"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + teleport: ["3L1"], + thief: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + trick: ["3L43"], + }, + }, + machop: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T", "3E"], + crosschop: ["3L40"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dynamicpunch: ["3T", "3L49"], + earthquake: ["3M"], + encore: ["3E"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L7"], + focuspunch: ["3M"], + foresight: ["3L22"], + frustration: ["3M"], + hiddenpower: ["3M"], + karatechop: ["3L13"], + leer: ["3L1"], + lightscreen: ["3E"], + lowkick: ["3L1"], + meditate: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L25"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + rollingkick: ["3E"], + scaryface: ["3L43"], + secretpower: ["3M"], + seismictoss: ["3T", "3L19"], + strength: ["3M"], + submission: ["3L37"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + vitalthrow: ["3L31"], + }, + }, + machoke: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T"], + crosschop: ["3L46"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dynamicpunch: ["3T", "3L59"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L1"], + focuspunch: ["3M"], + foresight: ["3L22"], + frustration: ["3M"], + hiddenpower: ["3M"], + karatechop: ["3L13"], + leer: ["3L1"], + lowkick: ["3L1"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L25"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + scaryface: ["3L51"], + secretpower: ["3M"], + seismictoss: ["3T", "3L19"], + strength: ["3M"], + submission: ["3L41"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + vitalthrow: ["3L33"], + }, + }, + machamp: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T"], + crosschop: ["3L46"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dynamicpunch: ["3T", "3L59"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L1"], + focuspunch: ["3M"], + foresight: ["3L22"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + karatechop: ["3L13"], + leer: ["3L1"], + lowkick: ["3L1"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L25"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + scaryface: ["3L51"], + secretpower: ["3M"], + seismictoss: ["3T", "3L19"], + strength: ["3M"], + submission: ["3L41"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + vitalthrow: ["3L33"], + }, + }, + bellsprout: { + learnset: { + acid: ["3L23"], + attract: ["3M"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + encore: ["3E"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + growth: ["3L6"], + hiddenpower: ["3M"], + ingrain: ["3E"], + leechlife: ["3E"], + magicalleaf: ["3E"], + mimic: ["3T"], + poisonpowder: ["3L17"], + protect: ["3M"], + razorleaf: ["3L37"], + reflect: ["3E"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + slam: ["3L45"], + sleeppowder: ["3L15"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L19"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L30"], + swordsdance: ["3T", "3E"], + synthesis: ["3E"], + thief: ["3M"], + toxic: ["3M"], + vinewhip: ["3L1"], + wrap: ["3L11"], + }, + }, + weepinbell: { + learnset: { + acid: ["3L24"], + attract: ["3M"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + growth: ["3L1"], + hiddenpower: ["3M"], + mimic: ["3T"], + poisonpowder: ["3L17"], + protect: ["3M"], + razorleaf: ["3L42"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + slam: ["3L54"], + sleeppowder: ["3L15"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L19"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetscent: ["3L33"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + vinewhip: ["3L1"], + wrap: ["3L1"], + }, + }, + victreebel: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + bulletseed: ["3M"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + protect: ["3M"], + razorleaf: ["3L1"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L1"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + spitup: ["3L1"], + stockpile: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + swallow: ["3L1"], + sweetscent: ["3L1"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + vinewhip: ["3L1"], + }, + }, + tentacool: { + learnset: { + acid: ["3L19"], + attract: ["3M"], + aurorabeam: ["3E"], + barrier: ["3L36"], + blizzard: ["3M"], + bubblebeam: ["3L25"], + confuseray: ["3E"], + constrict: ["3L12"], + cut: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hydropump: ["3L49"], + icebeam: ["3M"], + mimic: ["3T"], + poisonsting: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rapidspin: ["3E"], + rest: ["3M"], + return: ["3M"], + screech: ["3L43"], + secretpower: ["3M"], + sludgebomb: ["3M"], + substitute: ["3T"], + supersonic: ["3L6"], + surf: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + wrap: ["3L30"], + }, + }, + tentacruel: { + learnset: { + acid: ["3L19"], + attract: ["3M"], + barrier: ["3L38"], + blizzard: ["3M"], + bubblebeam: ["3L25"], + constrict: ["3L1"], + cut: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L55"], + hyperbeam: ["3M"], + icebeam: ["3M"], + mimic: ["3T"], + poisonsting: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3L47"], + secretpower: ["3M"], + sludgebomb: ["3M"], + substitute: ["3T"], + supersonic: ["3L1"], + surf: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + wrap: ["3L30"], + }, + encounters: [ + {generation: 3, level: 20}, + ], + }, + geodude: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + doubleedge: ["3T", "3L46"], + doubleteam: ["3M"], + earthquake: ["3M", "3L36"], + explosion: ["3T", "3L41"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + magnitude: ["3L16"], + megapunch: ["3T", "3E"], + metronome: ["3T"], + mimic: ["3T"], + mudsport: ["3L6"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockblast: ["3L31"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rockthrow: ["3L11"], + rocktomb: ["3M"], + rollout: ["3T", "3L26"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + selfdestruct: ["3T", "3L21"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + toxic: ["3M"], + }, + }, + graveler: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + doubleedge: ["3T", "3L62"], + doubleteam: ["3M"], + earthquake: ["3M", "3L45"], + explosion: ["3T", "3L53"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + magnitude: ["3L16"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudsport: ["3L1"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockblast: ["3L37"], + rockslide: ["3T"], + rocksmash: ["3M"], + rockthrow: ["3L1"], + rocktomb: ["3M"], + rollout: ["3T", "3L29"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + selfdestruct: ["3T", "3L21"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + toxic: ["3M"], + }, + }, + golem: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + doubleedge: ["3T", "3L62"], + doubleteam: ["3M"], + earthquake: ["3M", "3L45"], + explosion: ["3T", "3L53"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + magnitude: ["3L16"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudsport: ["3L1"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockblast: ["3L37"], + rockslide: ["3T"], + rocksmash: ["3M"], + rockthrow: ["3L1"], + rocktomb: ["3M"], + rollout: ["3T", "3L29"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + selfdestruct: ["3T", "3L21"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + toxic: ["3M"], + }, + }, + ponyta: { + learnset: { + agility: ["3L38"], + attract: ["3M"], + bodyslam: ["3T"], + bounce: ["3L45"], + charm: ["3E"], + doubleedge: ["3T", "3E"], + doublekick: ["3E"], + doubleteam: ["3M"], + ember: ["3L14"], + facade: ["3M"], + fireblast: ["3M", "3L53"], + firespin: ["3L25"], + flamethrower: ["3M"], + flamewheel: ["3E"], + frustration: ["3M"], + growl: ["3L5"], + hiddenpower: ["3M"], + hypnosis: ["3E"], + irontail: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + quickattack: ["3L1"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + solarbeam: ["3M"], + stomp: ["3L19"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tailwhip: ["3L9"], + takedown: ["3L31"], + thrash: ["3E"], + toxic: ["3M"], + }, + }, + rapidash: { + learnset: { + agility: ["3L38"], + attract: ["3M"], + bodyslam: ["3T"], + bounce: ["3L50"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M", "3L63"], + firespin: ["3L25"], + flamethrower: ["3M"], + frustration: ["3M"], + furyattack: ["3L40"], + growl: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + quickattack: ["3L1"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + solarbeam: ["3M"], + stomp: ["3L19"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tailwhip: ["3L1"], + takedown: ["3L31"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 37}, + ], + }, + slowpoke: { + learnset: { + amnesia: ["3L36"], + attract: ["3M"], + bellydrum: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + calmmind: ["3M"], + confusion: ["3L17"], + curse: ["3L1"], + dig: ["3M"], + disable: ["3L24"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + frustration: ["3M"], + growl: ["3L6"], + hail: ["3M"], + headbutt: ["3L29"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M", "3L40"], + psychup: ["3T", "3L47"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M", "3E"], + secretpower: ["3M"], + shadowball: ["3M"], + skillswap: ["3M"], + sleeptalk: ["3T", "3E"], + snore: ["3T", "3E"], + stomp: ["3E"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + tackle: ["3L1"], + thunderwave: ["3T"], + toxic: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + yawn: ["3L1"], + }, + }, + slowbro: { + learnset: { + amnesia: ["3L36"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L17"], + counter: ["3T"], + curse: ["3L1"], + dig: ["3M"], + disable: ["3L24"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hail: ["3M"], + headbutt: ["3L29"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M", "3L44"], + psychup: ["3T", "3L55"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + skillswap: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + tackle: ["3L1"], + thunderwave: ["3T"], + toxic: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + withdraw: ["3L37"], + yawn: ["3L1"], + }, + encounters: [ + {generation: 3, level: 32}, + ], + }, + slowking: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L17"], + counter: ["3T"], + curse: ["3L1"], + dig: ["3M"], + disable: ["3L24"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L6"], + hail: ["3M"], + headbutt: ["3L29"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M", "3L40"], + psychup: ["3T", "3L47"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + skillswap: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + swagger: ["3T", "3L36"], + tackle: ["3L1"], + thunderwave: ["3T"], + toxic: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + yawn: ["3L1"], + }, + }, + magnemite: { + learnset: { + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + lockon: ["3L32"], + metalsound: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3L44"], + secretpower: ["3M"], + shockwave: ["3M"], + sonicboom: ["3L16"], + spark: ["3L26"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L11"], + swift: ["3T", "3L38"], + tackle: ["3L1"], + thunder: ["3M"], + thunderbolt: ["3M"], + thundershock: ["3L6"], + thunderwave: ["3T", "3L21"], + toxic: ["3M"], + zapcannon: ["3L50"], + }, + }, + magneton: { + learnset: { + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lockon: ["3L35"], + metalsound: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3L53"], + secretpower: ["3M"], + shockwave: ["3M"], + sonicboom: ["3L16"], + spark: ["3L26"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L1"], + tackle: ["3L1"], + thunder: ["3M"], + thunderbolt: ["3M"], + thundershock: ["3L1"], + thunderwave: ["3T", "3L21"], + toxic: ["3M"], + triattack: ["3L44"], + zapcannon: ["3L62"], + }, + encounters: [ + {generation: 3, level: 26}, + ], + }, + farfetchd: { + learnset: { + aerialace: ["3M"], + agility: ["3L36"], + attract: ["3M"], + bodyslam: ["3T"], + curse: ["3E"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + falseswipe: ["3L46"], + featherdance: ["3E"], + flail: ["3E"], + fly: ["3M"], + frustration: ["3M"], + furyattack: ["3L16"], + furycutter: ["3L26"], + gust: ["3E"], + hiddenpower: ["3M"], + irontail: ["3M"], + knockoff: ["3L21"], + leer: ["3L11"], + mimic: ["3T"], + mirrormove: ["3E"], + peck: ["3L1"], + protect: ["3M"], + quickattack: ["3E"], + rest: ["3M"], + return: ["3M"], + sandattack: ["3L6"], + secretpower: ["3M"], + slash: ["3L41"], + steelwing: ["3M", "3E"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3L31"], + thief: ["3M"], + toxic: ["3M"], + }, + encounters: [ + {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"}, + ], + }, + doduo: { + learnset: { + aerialace: ["3M"], + agility: ["3L45"], + attract: ["3M"], + bodyslam: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + drillpeck: ["3L37"], + facade: ["3M"], + feintattack: ["3E"], + flail: ["3E"], + fly: ["3M"], + frustration: ["3M"], + furyattack: ["3L13"], + growl: ["3L1"], + haze: ["3E"], + hiddenpower: ["3M"], + mimic: ["3T"], + peck: ["3L1"], + protect: ["3M"], + pursuit: ["3L9"], + quickattack: ["3E"], + rage: ["3L25"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3E"], + thief: ["3M"], + toxic: ["3M"], + triattack: ["3L21"], + uproar: ["3L33"], + }, + }, + dodrio: { + learnset: { + aerialace: ["3M"], + agility: ["3L60"], + attract: ["3M"], + bodyslam: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + drillpeck: ["3L47"], + facade: ["3M"], + fly: ["3M"], + frustration: ["3M"], + furyattack: ["3L1"], + growl: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + peck: ["3L1"], + protect: ["3M"], + pursuit: ["3L1"], + rage: ["3L25"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + triattack: ["3L21"], + uproar: ["3L38"], + }, + encounters: [ + {generation: 3, level: 29, pokeball: "safariball"}, + ], + }, + seel: { + learnset: { + attract: ["3M"], + aurorabeam: ["3L21"], + blizzard: ["3M"], + bodyslam: ["3T"], + disable: ["3E"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + encore: ["3E"], + facade: ["3M"], + fakeout: ["3E"], + frustration: ["3M"], + growl: ["3L9"], + hail: ["3M"], + headbutt: ["3L1"], + hiddenpower: ["3M"], + horndrill: ["3E"], + icebeam: ["3M", "3L41"], + icywind: ["3T", "3L17"], + mimic: ["3T"], + perishsong: ["3E"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M", "3L29"], + return: ["3M"], + safeguard: ["3M", "3L49"], + secretpower: ["3M"], + slam: ["3E"], + substitute: ["3T"], + surf: ["3M"], + takedown: ["3L37"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + }, + }, + dewgong: { + learnset: { + attract: ["3M"], + aurorabeam: ["3L1"], + blizzard: ["3M"], + bodyslam: ["3T"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hail: ["3M"], + headbutt: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M", "3L51"], + icywind: ["3T", "3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M", "3L29"], + return: ["3M"], + safeguard: ["3M", "3L64"], + secretpower: ["3M"], + sheercold: ["3L34"], + signalbeam: ["3L1"], + substitute: ["3T"], + surf: ["3M"], + takedown: ["3L42"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 32}, + ], + }, + grimer: { + learnset: { + acidarmor: ["3L34"], + attract: ["3M"], + bodyslam: ["3T"], + curse: ["3E"], + dig: ["3M"], + disable: ["3L8"], + doubleteam: ["3M"], + explosion: ["3T", "3E"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + harden: ["3L4"], + haze: ["3E"], + hiddenpower: ["3M"], + lick: ["3E"], + meanlook: ["3E"], + memento: ["3L53"], + mimic: ["3T"], + minimize: ["3L19"], + poisongas: ["3L1"], + pound: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocktomb: ["3M"], + screech: ["3L26"], + secretpower: ["3M"], + shadowpunch: ["3E"], + shockwave: ["3M"], + sludge: ["3L13"], + sludgebomb: ["3M", "3L43"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + muk: { + learnset: { + acidarmor: ["3L34"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + dig: ["3M"], + disable: ["3L8"], + doubleteam: ["3M"], + explosion: ["3T"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + harden: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + memento: ["3L61"], + mimic: ["3T"], + minimize: ["3L19"], + poisongas: ["3L1"], + pound: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + screech: ["3L26"], + secretpower: ["3M"], + shockwave: ["3M"], + sludge: ["3L13"], + sludgebomb: ["3M", "3L47"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 32}, + ], + }, + shellder: { + learnset: { + attract: ["3M"], + aurorabeam: ["3L17"], + barrier: ["3E"], + blizzard: ["3M"], + bubblebeam: ["3E"], + clamp: ["3L41"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + explosion: ["3T"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + icebeam: ["3M", "3L49"], + iciclespear: ["3L8"], + leer: ["3L33"], + mimic: ["3T"], + protect: ["3M", "3L25"], + raindance: ["3M"], + rapidspin: ["3E"], + rest: ["3M"], + return: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + substitute: ["3T"], + supersonic: ["3L9"], + surf: ["3M"], + tackle: ["3L1"], + toxic: ["3M"], + waterpulse: ["3M"], + withdraw: ["3L1"], + }, + }, + cloyster: { + learnset: { + attract: ["3M"], + aurorabeam: ["3L1"], + blizzard: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + explosion: ["3T"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + mimic: ["3T"], + protect: ["3M", "3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + spikecannon: ["3L41"], + spikes: ["3L33"], + substitute: ["3T"], + supersonic: ["3L1"], + surf: ["3M"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + withdraw: ["3L1"], + }, + }, + gastly: { + learnset: { + astonish: ["3E"], + attract: ["3M"], + confuseray: ["3L21"], + curse: ["3L13"], + destinybond: ["3L33"], + doubleteam: ["3M"], + dreameater: ["3T", "3L28"], + explosion: ["3T", "3E"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + grudge: ["3E"], + haze: ["3E"], + hiddenpower: ["3M"], + hypnosis: ["3L1"], + lick: ["3L1"], + meanlook: ["3L13"], + mimic: ["3T"], + nightmare: ["3T", "3L41"], + nightshade: ["3L16"], + perishsong: ["3E"], + protect: ["3M"], + psychic: ["3M"], + psywave: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M", "3L36"], + skillswap: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + spite: ["3L8"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + haunter: { + learnset: { + attract: ["3M"], + confuseray: ["3L21"], + curse: ["3L13"], + destinybond: ["3L39"], + doubleteam: ["3M"], + dreameater: ["3T", "3L31"], + explosion: ["3T"], + facade: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hypnosis: ["3L1"], + lick: ["3L1"], + meanlook: ["3L13"], + mimic: ["3T"], + nightmare: ["3T", "3L53"], + nightshade: ["3L16"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M", "3L45"], + shadowpunch: ["3L25"], + skillswap: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + spite: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 20}, + ], + }, + gengar: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + confuseray: ["3L21"], + counter: ["3T"], + curse: ["3L13"], + destinybond: ["3L39"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T", "3L31"], + explosion: ["3T"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hypnosis: ["3L1"], + lick: ["3L1"], + meanlook: ["3L13"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + nightmare: ["3T", "3L53"], + nightshade: ["3L16"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M", "3L45"], + shadowpunch: ["3L25"], + skillswap: ["3M"], + sludgebomb: ["3M"], + snatch: ["3M"], + spite: ["3L1"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + onix: { + learnset: { + attract: ["3M"], + bind: ["3L8"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T", "3L56"], + doubleteam: ["3M"], + dragonbreath: ["3L30"], + earthquake: ["3M"], + explosion: ["3T", "3E"], + facade: ["3M"], + frustration: ["3M"], + harden: ["3L19"], + hiddenpower: ["3M"], + irontail: ["3M", "3L45"], + mimic: ["3T"], + protect: ["3M"], + rage: ["3L23"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rockthrow: ["3L12"], + rocktomb: ["3M"], + sandstorm: ["3M", "3L33"], + sandtomb: ["3L49"], + screech: ["3L1"], + secretpower: ["3M"], + slam: ["3L37"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + taunt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + steelix: { + learnset: { + attract: ["3M"], + bind: ["3L8"], + bodyslam: ["3T"], + crunch: ["3L49"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T", "3L56"], + doubleteam: ["3M"], + dragonbreath: ["3L30"], + earthquake: ["3M"], + explosion: ["3T"], + facade: ["3M"], + frustration: ["3M"], + harden: ["3L19"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M", "3L45"], + mimic: ["3T"], + protect: ["3M"], + rage: ["3L23"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rockthrow: ["3L12"], + rocktomb: ["3M"], + sandstorm: ["3M", "3L33"], + screech: ["3L1"], + secretpower: ["3M"], + slam: ["3L37"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + taunt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + drowzee: { + learnset: { + attract: ["3M"], + barrier: ["3E"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L11"], + counter: ["3T"], + disable: ["3L7"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + firepunch: ["3T", "3E"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + futuresight: ["3L45"], + headbutt: ["3L17"], + hiddenpower: ["3M"], + hypnosis: ["3L1"], + icepunch: ["3T", "3E"], + lightscreen: ["3M"], + meditate: ["3L27"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + poisongas: ["3L21"], + pound: ["3L1"], + protect: ["3M"], + psychic: ["3M", "3L31"], + psychup: ["3T", "3L37"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roleplay: ["3E"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L41"], + taunt: ["3M"], + thief: ["3M"], + thunderpunch: ["3T", "3E"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + hypno: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L1"], + counter: ["3T"], + disable: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + futuresight: ["3L57"], + headbutt: ["3L17"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hypnosis: ["3L1"], + lightscreen: ["3M"], + meditate: ["3L29"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + nightmare: ["3T", "3L1"], + poisongas: ["3L21"], + pound: ["3L1"], + protect: ["3M"], + psychic: ["3M", "3L35"], + psychup: ["3T", "3L43"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L49"], + taunt: ["3M"], + thief: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + krabby: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubble: ["3L1"], + crabhammer: ["3L45"], + cut: ["3M"], + dig: ["3M", "3E"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flail: ["3L49", "3E"], + frustration: ["3M"], + guillotine: ["3L34"], + hail: ["3M"], + harden: ["3L16"], + haze: ["3E"], + hiddenpower: ["3M"], + icebeam: ["3M"], + knockoff: ["3E"], + leer: ["3L5"], + mimic: ["3T"], + mudshot: ["3L23"], + protect: ["3M", "3L38"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + secretpower: ["3M"], + slam: ["3E"], + stomp: ["3L27"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + swordsdance: ["3T", "3E"], + thief: ["3M"], + toxic: ["3M"], + visegrip: ["3L12"], + waterpulse: ["3M"], + }, + }, + kingler: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubble: ["3L1"], + crabhammer: ["3L57"], + cut: ["3M"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flail: ["3L65"], + frustration: ["3M"], + guillotine: ["3L38"], + hail: ["3M"], + harden: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + leer: ["3L1"], + metalclaw: ["3L1"], + mimic: ["3T"], + mudshot: ["3L23"], + protect: ["3M", "3L42"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + secretpower: ["3M"], + stomp: ["3L27"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + visegrip: ["3L1"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 25}, + ], + }, + voltorb: { + learnset: { + charge: ["3L1"], + doubleteam: ["3M"], + explosion: ["3T", "3L46"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + lightscreen: ["3M", "3L37"], + mimic: ["3T"], + mirrorcoat: ["3L49"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rollout: ["3T", "3L32"], + screech: ["3L8"], + secretpower: ["3M"], + selfdestruct: ["3T", "3L27"], + shockwave: ["3M"], + sonicboom: ["3L15"], + spark: ["3L21"], + substitute: ["3T"], + swift: ["3T", "3L42"], + tackle: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + electrode: { + learnset: { + charge: ["3L1"], + doubleteam: ["3M"], + explosion: ["3T", "3L54"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lightscreen: ["3M", "3L41"], + mimic: ["3T"], + mirrorcoat: ["3L59"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rollout: ["3T", "3L34"], + screech: ["3L1"], + secretpower: ["3M"], + selfdestruct: ["3T", "3L27"], + shockwave: ["3M"], + sonicboom: ["3L1"], + spark: ["3L21"], + substitute: ["3T"], + swift: ["3T", "3L48"], + tackle: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 3, nature: "Hasty", ivs: {hp: 19, atk: 16, def: 18, spa: 25, spd: 25, spe: 19}, abilities: ["static"], pokeball: "pokeball"}, + ], + }, + exeggcute: { + learnset: { + attract: ["3M"], + barrage: ["3L1"], + bulletseed: ["3M"], + confusion: ["3L19"], + curse: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + explosion: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hypnosis: ["3L1"], + ingrain: ["3E"], + leechseed: ["3L13"], + lightscreen: ["3M"], + mimic: ["3T"], + moonlight: ["3E"], + poisonpowder: ["3L31"], + protect: ["3M"], + psychic: ["3M"], + reflect: ["3M", "3L7", "3E"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + skillswap: ["3M"], + sleeppowder: ["3L37"], + sludgebomb: ["3M"], + solarbeam: ["3M", "3L43"], + strength: ["3M"], + stunspore: ["3L25"], + substitute: ["3T"], + sunnyday: ["3M"], + synthesis: ["3E"], + thief: ["3M"], + toxic: ["3M"], + uproar: ["3L1"], + }, + }, + exeggutor: { + learnset: { + attract: ["3M"], + barrage: ["3L1"], + bulletseed: ["3M"], + confusion: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + eggbomb: ["3L31"], + explosion: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hypnosis: ["3L1"], + lightscreen: ["3M"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + skillswap: ["3M"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stomp: ["3L19"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + cubone: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bellydrum: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + boneclub: ["3L9"], + bonemerang: ["3L25"], + bonerush: ["3L41"], + brickbreak: ["3M"], + counter: ["3T"], + dig: ["3M"], + doubleedge: ["3T", "3L45"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + falseswipe: ["3L33"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L21"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + headbutt: ["3L13"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L17"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + perishsong: ["3E"], + protect: ["3M"], + rage: ["3L29"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + seismictoss: ["3T"], + skullbash: ["3E"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3E"], + tailwhip: ["3L5"], + thief: ["3M"], + thrash: ["3L37"], + toxic: ["3M"], + }, + }, + marowak: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + boneclub: ["3L1"], + bonemerang: ["3L25"], + bonerush: ["3L53"], + brickbreak: ["3M"], + counter: ["3T"], + dig: ["3M"], + doubleedge: ["3T", "3L61"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + falseswipe: ["3L39"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L21"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + headbutt: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L17"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + rage: ["3L32"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + tailwhip: ["3L1"], + thief: ["3M"], + thrash: ["3L46"], + toxic: ["3M"], + }, + }, + tyrogue: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + highjumpkick: ["3E"], + machpunch: ["3E"], + megakick: ["3T"], + mimic: ["3T"], + mindreader: ["3E"], + protect: ["3M"], + raindance: ["3M"], + rapidspin: ["3E"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + hitmonlee: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M", "3L20"], + bulkup: ["3M"], + counter: ["3T"], + doubleedge: ["3T"], + doublekick: ["3L1"], + doubleteam: ["3M"], + earthquake: ["3M"], + endure: ["3T", "3L41"], + facade: ["3M"], + focusenergy: ["3L21"], + focuspunch: ["3M"], + foresight: ["3L36"], + frustration: ["3M"], + hiddenpower: ["3M"], + highjumpkick: ["3L26"], + jumpkick: ["3L16"], + meditate: ["3L6"], + megakick: ["3T", "3L46"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mindreader: ["3L31"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L1"], + reversal: ["3L51"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + rollingkick: ["3L11"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + hitmonchan: { + learnset: { + agility: ["3L7"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + cometpunch: ["3L1"], + counter: ["3T", "3L50"], + detect: ["3L44"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + firepunch: ["3T", "3L26"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + icepunch: ["3T", "3L26"], + machpunch: ["3L20"], + megakick: ["3T"], + megapunch: ["3T", "3L38"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L13"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L1"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + skyuppercut: ["3L32"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + thunderpunch: ["3T", "3L26"], + toxic: ["3M"], + }, + }, + hitmontop: { + learnset: { + agility: ["3L37"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + counter: ["3T", "3L31"], + detect: ["3L43"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + endeavor: ["3L49"], + facade: ["3M"], + focusenergy: ["3L7"], + frustration: ["3M"], + hiddenpower: ["3M"], + megakick: ["3T"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L13"], + quickattack: ["3L19"], + raindance: ["3M"], + rapidspin: ["3L25"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L1"], + rockslide: ["3T"], + rocksmash: ["3M"], + rollingkick: ["3L1"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + triplekick: ["3L20"], + }, + }, + lickitung: { + learnset: { + attract: ["3M"], + bellydrum: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T", "3E"], + brickbreak: ["3M"], + counter: ["3T"], + curse: ["3E"], + cut: ["3M"], + defensecurl: ["3T", "3L12"], + dig: ["3M"], + disable: ["3L34"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + knockoff: ["3L18"], + lick: ["3L1"], + magnitude: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + refresh: ["3L51"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + screech: ["3L45"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + slam: ["3L40"], + sleeptalk: ["3E"], + snore: ["3T", "3E"], + solarbeam: ["3M"], + stomp: ["3L23"], + strength: ["3M"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + supersonic: ["3L7"], + surf: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + wrap: ["3L29"], + }, + }, + koffing: { + learnset: { + attract: ["3M"], + destinybond: ["3L45", "3E"], + doubleteam: ["3M"], + explosion: ["3T", "3L41"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + frustration: ["3M"], + haze: ["3L33"], + hiddenpower: ["3M"], + memento: ["3L49"], + mimic: ["3T"], + painsplit: ["3E"], + poisongas: ["3L1"], + protect: ["3M"], + psybeam: ["3E"], + psywave: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + selfdestruct: ["3T", "3L17"], + shadowball: ["3M"], + shockwave: ["3M"], + sludge: ["3L21"], + sludgebomb: ["3M"], + smog: ["3L9"], + smokescreen: ["3L25"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + weezing: { + learnset: { + attract: ["3M"], + destinybond: ["3L51"], + doubleteam: ["3M"], + explosion: ["3T", "3L44"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + frustration: ["3M"], + haze: ["3L33"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + memento: ["3L58"], + mimic: ["3T"], + poisongas: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + selfdestruct: ["3T", "3L1"], + shadowball: ["3M"], + shockwave: ["3M"], + sludge: ["3L21"], + sludgebomb: ["3M"], + smog: ["3L1"], + smokescreen: ["3L25"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 32}, + ], + }, + rhyhorn: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + counter: ["3T", "3E"], + crunch: ["3E"], + curse: ["3E"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L52"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + furyattack: ["3L15"], + hiddenpower: ["3M"], + hornattack: ["3L1"], + horndrill: ["3L38"], + icebeam: ["3M"], + irontail: ["3M"], + magnitude: ["3E"], + megahorn: ["3L57"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockblast: ["3L29"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + scaryface: ["3L24"], + secretpower: ["3M"], + shockwave: ["3M"], + stomp: ["3L10"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3E"], + tailwhip: ["3L1"], + takedown: ["3L43"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + }, + }, + rhydon: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L58"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + furyattack: ["3L1"], + hiddenpower: ["3M"], + hornattack: ["3L1"], + horndrill: ["3L38"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megahorn: ["3L66"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockblast: ["3L29"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + scaryface: ["3L24"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + stomp: ["3L1"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + swordsdance: ["3T"], + tailwhip: ["3L1"], + takedown: ["3L46"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + }, + }, + chansey: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L41"], + doubleedge: ["3T", "3L57"], + doubleslap: ["3L17"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + eggbomb: ["3L35"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M", "3L49"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T", "3E"], + mimic: ["3T"], + minimize: ["3L23"], + pound: ["3L1"], + present: ["3E"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + refresh: ["3L9"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L29"], + skillswap: ["3M"], + snatch: ["3M"], + softboiled: ["3T", "3L13"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + tailwhip: ["3L5"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + blissey: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + counter: ["3T"], + defensecurl: ["3T", "3L33"], + doubleedge: ["3T", "3L47"], + doubleslap: ["3L13"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + eggbomb: ["3L28"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M", "3L40"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + minimize: ["3L18"], + pound: ["3L1"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + refresh: ["3L7"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sing: ["3L23"], + skillswap: ["3M"], + snatch: ["3M"], + softboiled: ["3T", "3L10"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tailwhip: ["3L4"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + tangela: { + learnset: { + absorb: ["3L10"], + amnesia: ["3E"], + attract: ["3M"], + bind: ["3L28"], + bodyslam: ["3T"], + bulletseed: ["3M"], + confusion: ["3E"], + constrict: ["3L1"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + growth: ["3L13"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + ingrain: ["3L1"], + leechseed: ["3E"], + megadrain: ["3L31", "3E"], + mimic: ["3T"], + poisonpowder: ["3L19"], + protect: ["3M"], + reflect: ["3E"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + slam: ["3L40"], + sleeppowder: ["3L4"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + stunspore: ["3L37"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + tickle: ["3L46"], + toxic: ["3M"], + vinewhip: ["3L22"], + }, + }, + kangaskhan: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bite: ["3L7"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + cometpunch: ["3L1"], + counter: ["3T", "3E"], + cut: ["3M"], + dig: ["3M"], + disable: ["3E"], + dizzypunch: ["3L43"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + endure: ["3T", "3L37"], + facade: ["3M"], + fakeout: ["3L19"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3E"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + megakick: ["3T"], + megapunch: ["3T", "3L25"], + mimic: ["3T"], + protect: ["3M"], + rage: ["3L31"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + reversal: ["3L49"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3E"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + solarbeam: ["3M"], + stomp: ["3E"], + strength: ["3M"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + surf: ["3M"], + tailwhip: ["3L13"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + horsea: { + learnset: { + agility: ["3L36"], + attract: ["3M"], + aurorabeam: ["3E"], + blizzard: ["3M"], + bubble: ["3L1"], + disable: ["3E"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3L50"], + dragonrage: ["3E"], + facade: ["3M"], + flail: ["3E"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L43"], + icebeam: ["3M"], + leer: ["3L15"], + mimic: ["3T"], + octazooka: ["3E"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + smokescreen: ["3L8"], + splash: ["3E"], + substitute: ["3T"], + surf: ["3M"], + toxic: ["3M"], + twister: ["3L29"], + waterfall: ["3M"], + watergun: ["3L22"], + waterpulse: ["3M"], + }, + }, + seadra: { + learnset: { + agility: ["3L40"], + attract: ["3M"], + blizzard: ["3M"], + bubble: ["3L1"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3L62"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L51"], + hyperbeam: ["3M"], + icebeam: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + smokescreen: ["3L1"], + substitute: ["3T"], + surf: ["3M"], + toxic: ["3M"], + twister: ["3L29"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 25}, + ], + }, + kingdra: { + learnset: { + agility: ["3L40"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubble: ["3L1"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3L62"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L51"], + hyperbeam: ["3M"], + icebeam: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + smokescreen: ["3L1"], + substitute: ["3T"], + surf: ["3M"], + toxic: ["3M"], + twister: ["3L29"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + goldeen: { + learnset: { + agility: ["3L52"], + attract: ["3M"], + blizzard: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flail: ["3L24"], + frustration: ["3M"], + furyattack: ["3L29"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hornattack: ["3L15"], + horndrill: ["3L43"], + hydropump: ["3E"], + icebeam: ["3M"], + megahorn: ["3L57"], + mimic: ["3T"], + peck: ["3L1"], + protect: ["3M"], + psybeam: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + substitute: ["3T"], + supersonic: ["3L10"], + surf: ["3M"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M", "3L38"], + waterpulse: ["3M"], + watersport: ["3L1"], + }, + }, + seaking: { + learnset: { + agility: ["3L61"], + attract: ["3M"], + blizzard: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flail: ["3L24"], + frustration: ["3M"], + furyattack: ["3L29"], + hail: ["3M"], + hiddenpower: ["3M"], + hornattack: ["3L15"], + horndrill: ["3L49"], + hyperbeam: ["3M"], + icebeam: ["3M"], + megahorn: ["3L69"], + mimic: ["3T"], + peck: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + substitute: ["3T"], + supersonic: ["3L1"], + surf: ["3M"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M", "3L41"], + waterpulse: ["3M"], + watersport: ["3L1"], + }, + encounters: [ + {generation: 3, level: 20}, + ], + }, + staryu: { + learnset: { + blizzard: ["3M"], + bubblebeam: ["3L28"], + camouflage: ["3L19"], + cosmicpower: ["3L42"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hail: ["3M"], + harden: ["3L1"], + hiddenpower: ["3M"], + hydropump: ["3L46"], + icebeam: ["3M"], + lightscreen: ["3M", "3L37"], + mimic: ["3T"], + minimize: ["3L33"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rapidspin: ["3L10"], + recover: ["3L15"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + substitute: ["3T"], + surf: ["3M"], + swift: ["3T", "3L24"], + tackle: ["3L1"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L6"], + waterpulse: ["3M"], + }, + }, + starmie: { + learnset: { + blizzard: ["3M"], + confuseray: ["3L33"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rapidspin: ["3L1"], + recover: ["3L1"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + skillswap: ["3M"], + substitute: ["3T"], + surf: ["3M"], + swift: ["3T", "3L1"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + mrmime: { + learnset: { + attract: ["3M"], + barrier: ["3L1"], + batonpass: ["3L47"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + confusion: ["3L5"], + counter: ["3T"], + doubleedge: ["3T"], + doubleslap: ["3L15"], + doubleteam: ["3M"], + dreameater: ["3T"], + encore: ["3L25"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + futuresight: ["3E"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + hypnosis: ["3E"], + lightscreen: ["3M", "3L19"], + magicalleaf: ["3L22"], + meditate: ["3L12"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T", "3E"], + protect: ["3M"], + psybeam: ["3L29"], + psychic: ["3M", "3L43"], + psychup: ["3T", "3E"], + raindance: ["3M"], + recycle: ["3L33"], + reflect: ["3M", "3L19"], + rest: ["3M"], + return: ["3M"], + roleplay: ["3L40"], + safeguard: ["3M", "3L50"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + solarbeam: ["3M"], + substitute: ["3T", "3L8"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + trick: ["3L36", "3E"], + }, + }, + scyther: { + learnset: { + aerialace: ["3M"], + agility: ["3L21"], + attract: ["3M"], + batonpass: ["3E"], + counter: ["3T", "3E"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M", "3L41"], + endure: ["3T", "3E"], + facade: ["3M"], + falseswipe: ["3L16"], + focusenergy: ["3L6"], + frustration: ["3M"], + furycutter: ["3T", "3L46"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leer: ["3L1"], + lightscreen: ["3E"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L11"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + reversal: ["3E"], + rocksmash: ["3M"], + safeguard: ["3E"], + secretpower: ["3M"], + silverwind: ["3E"], + slash: ["3L31"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3L36"], + thief: ["3M"], + toxic: ["3M"], + wingattack: ["3L26"], + }, + }, + scizor: { + learnset: { + aerialace: ["3M"], + agility: ["3L21"], + attract: ["3M"], + counter: ["3T"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M", "3L41"], + facade: ["3M"], + falseswipe: ["3L16"], + focusenergy: ["3L6"], + frustration: ["3M"], + furycutter: ["3T", "3L46"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irondefense: ["3L41"], + leer: ["3L1"], + metalclaw: ["3L26"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L11"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + slash: ["3L31"], + steelwing: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3L36"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + smoochum: { + learnset: { + attract: ["3M"], + blizzard: ["3M", "3L57"], + bodyslam: ["3T"], + calmmind: ["3M"], + confusion: ["3L21"], + counter: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + faketears: ["3L37"], + flash: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + icebeam: ["3M"], + icepunch: ["3T", "3E"], + lick: ["3L1"], + lightscreen: ["3M"], + meanlook: ["3L33"], + meditate: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + perishsong: ["3L49"], + pound: ["3L1"], + powdersnow: ["3L13"], + protect: ["3M"], + psychic: ["3M", "3L45"], + psychup: ["3T", "3E"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + sing: ["3L25"], + skillswap: ["3M"], + substitute: ["3T"], + sweetkiss: ["3L9"], + thief: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + jynx: { + learnset: { + attract: ["3M"], + blizzard: ["3M", "3L67"], + bodyslam: ["3T", "3L51"], + brickbreak: ["3M"], + calmmind: ["3M"], + counter: ["3T"], + doubleedge: ["3T"], + doubleslap: ["3L21"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + faketears: ["3L41"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + icepunch: ["3T", "3L25"], + lick: ["3L1"], + lightscreen: ["3M"], + lovelykiss: ["3L1"], + meanlook: ["3L35"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + perishsong: ["3L57"], + pound: ["3L1"], + powdersnow: ["3L1"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + skillswap: ["3M"], + substitute: ["3T"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 20, nature: "Mild", ivs: {hp: 18, atk: 17, def: 18, spa: 22, spd: 25, spe: 21}, abilities: ["oblivious"], pokeball: "pokeball"}, + ], + }, + elekid: { + learnset: { + attract: ["3M"], + barrier: ["3E"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + crosschop: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + firepunch: ["3T", "3E"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + icepunch: ["3T", "3E"], + karatechop: ["3E"], + leer: ["3L1"], + lightscreen: ["3M", "3L17"], + meditate: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rollingkick: ["3E"], + screech: ["3L33"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + substitute: ["3T"], + swift: ["3T", "3L25"], + thief: ["3M"], + thunder: ["3M", "3L49"], + thunderbolt: ["3M", "3L41"], + thunderpunch: ["3T", "3L9"], + thunderwave: ["3T"], + toxic: ["3M"], + }, + }, + electabuzz: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + lightscreen: ["3M", "3L17"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + screech: ["3L36"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + strength: ["3M"], + substitute: ["3T"], + swift: ["3T", "3L25"], + thief: ["3M"], + thunder: ["3M", "3L58"], + thunderbolt: ["3M", "3L47"], + thunderpunch: ["3T", "3L1"], + thunderwave: ["3T"], + toxic: ["3M"], + }, + }, + magby: { + learnset: { + attract: ["3M"], + barrier: ["3E"], + bodyslam: ["3T"], + brickbreak: ["3M"], + confuseray: ["3L43"], + counter: ["3T"], + crosschop: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M", "3L49"], + firepunch: ["3T", "3L19"], + flamethrower: ["3M", "3L37"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + irontail: ["3M"], + karatechop: ["3E"], + leer: ["3L7"], + megakick: ["3T"], + megapunch: ["3T", "3E"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + seismictoss: ["3T"], + smog: ["3L13"], + smokescreen: ["3L25"], + substitute: ["3T"], + sunnyday: ["3M", "3L31"], + thief: ["3M"], + thunderpunch: ["3T", "3E"], + toxic: ["3M"], + }, + }, + magmar: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + confuseray: ["3L49"], + counter: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M", "3L57"], + firepunch: ["3T", "3L1"], + flamethrower: ["3M", "3L41"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + smog: ["3L1"], + smokescreen: ["3L25"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M", "3L33"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + pinsir: { + learnset: { + attract: ["3M"], + bind: ["3L7"], + bodyslam: ["3T"], + brickbreak: ["3M", "3L31"], + bulkup: ["3M"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + falseswipe: ["3E"], + focusenergy: ["3L1"], + focuspunch: ["3M"], + frustration: ["3M"], + furyattack: ["3E"], + guillotine: ["3L37"], + harden: ["3L19"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L25"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T", "3L13"], + strength: ["3M"], + submission: ["3L43"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T", "3L49"], + thief: ["3M"], + toxic: ["3M"], + visegrip: ["3L1"], + }, + }, + tauros: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hornattack: ["3L8"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L19"], + rage: ["3L4"], + raindance: ["3M"], + rest: ["3M", "3L34"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + scaryface: ["3L13"], + secretpower: ["3M"], + shockwave: ["3M"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + swagger: ["3T", "3L26"], + tackle: ["3L1"], + tailwhip: ["3L1"], + takedown: ["3L53"], + thrash: ["3L43"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + magikarp: { + learnset: { + flail: ["3L30"], + splash: ["3L1"], + tackle: ["3L15"], + }, + }, + gyarados: { + learnset: { + attract: ["3M"], + bite: ["3L20"], + blizzard: ["3M"], + bodyslam: ["3T"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3L50"], + dragonrage: ["3L25"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L40"], + hyperbeam: ["3M", "3L55"], + icebeam: ["3M"], + leer: ["3L30"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M", "3L45"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + taunt: ["3M"], + thrash: ["3L1"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + twister: ["3L35"], + waterfall: ["3M"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 5}, + ], + }, + lapras: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T", "3L13"], + confuseray: ["3L19"], + curse: ["3E"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3E"], + dreameater: ["3T"], + facade: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + hail: ["3M"], + hiddenpower: ["3M"], + horndrill: ["3E"], + hydropump: ["3L49"], + hyperbeam: ["3M"], + icebeam: ["3M", "3L31"], + irontail: ["3M"], + mimic: ["3T"], + mist: ["3L7"], + perishsong: ["3L25"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M", "3L37"], + refresh: ["3E"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M", "3L43"], + secretpower: ["3M"], + sheercold: ["3L55"], + shockwave: ["3M"], + sing: ["3L1"], + sleeptalk: ["3T", "3E"], + strength: ["3M"], + substitute: ["3T", "3E"], + surf: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + tickle: ["3E"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + ditto: { + learnset: { + transform: ["3L1"], + }, + encounters: [ + {generation: 3, level: 23}, + ], + }, + eevee: { + learnset: { + attract: ["3M"], + batonpass: ["3L36"], + bite: ["3L30"], + bodyslam: ["3T"], + charm: ["3E"], + curse: ["3E"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + endure: ["3T", "3E"], + facade: ["3M"], + flail: ["3E"], + frustration: ["3M"], + growl: ["3L16"], + helpinghand: ["3L1"], + hiddenpower: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L23"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + sandattack: ["3L8"], + secretpower: ["3M"], + shadowball: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + takedown: ["3L42"], + toxic: ["3M"], + wish: ["3E"], + }, + }, + vaporeon: { + learnset: { + acidarmor: ["3L47"], + attract: ["3M"], + aurorabeam: ["3L36"], + bite: ["3L30"], + blizzard: ["3M"], + bodyslam: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3L42"], + helpinghand: ["3L1"], + hiddenpower: ["3M"], + hydropump: ["3L52"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L23"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + sandattack: ["3L8"], + secretpower: ["3M"], + shadowball: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L16"], + waterpulse: ["3M"], + }, + }, + jolteon: { + learnset: { + agility: ["3L47"], + attract: ["3M"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doublekick: ["3L30"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + helpinghand: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + pinmissile: ["3L36"], + protect: ["3M"], + quickattack: ["3L23"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + sandattack: ["3L8"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + thunder: ["3M", "3L52"], + thunderbolt: ["3M"], + thundershock: ["3L16"], + thunderwave: ["3T", "3L42"], + toxic: ["3M"], + }, + }, + flareon: { + learnset: { + attract: ["3M"], + bite: ["3L30"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L16"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3L36"], + flamethrower: ["3M", "3L52"], + frustration: ["3M"], + helpinghand: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + leer: ["3L47"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + quickattack: ["3L23"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + sandattack: ["3L8"], + secretpower: ["3M"], + shadowball: ["3M"], + smog: ["3L42"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + }, + }, + porygon: { + learnset: { + aerialace: ["3M"], + agility: ["3L9"], + blizzard: ["3M"], + conversion: ["3L1"], + conversion2: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lockon: ["3L32"], + mimic: ["3T"], + protect: ["3M"], + psybeam: ["3L12"], + psychic: ["3M"], + raindance: ["3M"], + recover: ["3L20"], + recycle: ["3L44"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + sharpen: ["3L24"], + shockwave: ["3M"], + solarbeam: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + triattack: ["3L36"], + zapcannon: ["3L48"], + }, + }, + porygon2: { + learnset: { + aerialace: ["3M"], + agility: ["3L9"], + blizzard: ["3M"], + conversion: ["3L1"], + conversion2: ["3L1"], + defensecurl: ["3T", "3L24"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lockon: ["3L32"], + mimic: ["3T"], + protect: ["3M"], + psybeam: ["3L12"], + psychic: ["3M"], + raindance: ["3M"], + recover: ["3L20"], + recycle: ["3L44"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + solarbeam: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + triattack: ["3L36"], + zapcannon: ["3L48"], + }, + }, + omanyte: { + learnset: { + ancientpower: ["3L49"], + attract: ["3M"], + aurorabeam: ["3E"], + bite: ["3L13"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubblebeam: ["3E"], + constrict: ["3L1"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hydropump: ["3L55"], + icebeam: ["3M"], + leer: ["3L31"], + mimic: ["3T"], + mudshot: ["3L25"], + protect: ["3M", "3L37"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + slam: ["3E"], + spikes: ["3E"], + substitute: ["3T"], + supersonic: ["3E"], + surf: ["3M"], + thief: ["3M"], + tickle: ["3L43"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L19"], + waterpulse: ["3M"], + withdraw: ["3L1"], + }, + }, + omastar: { + learnset: { + ancientpower: ["3L55"], + attract: ["3M"], + bite: ["3L1"], + blizzard: ["3M"], + bodyslam: ["3T"], + constrict: ["3L1"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L65"], + hyperbeam: ["3M"], + icebeam: ["3M"], + leer: ["3L31"], + mimic: ["3T"], + mudshot: ["3L25"], + protect: ["3M", "3L37"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + spikecannon: ["3L40"], + substitute: ["3T"], + surf: ["3M"], + thief: ["3M"], + tickle: ["3L46"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + withdraw: ["3L1"], + }, + }, + kabuto: { + learnset: { + absorb: ["3L13"], + aerialace: ["3M"], + ancientpower: ["3L55"], + attract: ["3M"], + aurorabeam: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubblebeam: ["3E"], + confuseray: ["3E"], + dig: ["3M", "3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + endure: ["3T", "3L37"], + facade: ["3M"], + flail: ["3E"], + frustration: ["3M"], + gigadrain: ["3M"], + hail: ["3M"], + harden: ["3L1"], + hiddenpower: ["3M"], + icebeam: ["3M"], + knockoff: ["3E"], + leer: ["3L19"], + megadrain: ["3L49"], + metalsound: ["3L43"], + mimic: ["3T"], + mudshot: ["3L25"], + protect: ["3M"], + raindance: ["3M"], + rapidspin: ["3E"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandattack: ["3L31"], + sandstorm: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + substitute: ["3T"], + surf: ["3M"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + }, + }, + kabutops: { + learnset: { + absorb: ["3L1"], + aerialace: ["3M"], + ancientpower: ["3L65"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + cut: ["3M"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + endure: ["3T", "3L37"], + facade: ["3M"], + frustration: ["3M"], + furycutter: ["3T", "3L1"], + gigadrain: ["3M"], + hail: ["3M"], + harden: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + leer: ["3L1"], + megadrain: ["3L55"], + megakick: ["3T"], + metalsound: ["3L46"], + mimic: ["3T"], + mudshot: ["3L25"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandattack: ["3L31"], + sandstorm: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + slash: ["3L40"], + substitute: ["3T"], + surf: ["3M"], + swordsdance: ["3T"], + thief: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + }, + }, + aerodactyl: { + learnset: { + aerialace: ["3M"], + agility: ["3L8"], + ancientpower: ["3L29"], + attract: ["3M"], + bite: ["3L15"], + curse: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonclaw: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + fly: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L50"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3E"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + scaryface: ["3L36"], + secretpower: ["3M"], + steelwing: ["3M", "3E"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L22"], + takedown: ["3L43"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + whirlwind: ["3E"], + wingattack: ["3L1"], + }, + }, + snorlax: { + learnset: { + amnesia: ["3L5"], + attract: ["3M"], + bellydrum: ["3L13"], + blizzard: ["3M"], + block: ["3L37"], + bodyslam: ["3T", "3L33"], + brickbreak: ["3M"], + counter: ["3T"], + covet: ["3L42"], + curse: ["3E"], + defensecurl: ["3T", "3L9"], + doubleedge: ["3T", "3E"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + headbutt: ["3L17"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L51"], + icebeam: ["3M"], + lick: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M", "3L25"], + return: ["3M"], + rockslide: ["3T"], + rocktomb: ["3M"], + rollout: ["3T", "3L46"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + sleeptalk: ["3T", "3L37"], + snore: ["3T", "3L28"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + surf: ["3M"], + tackle: ["3L1"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + yawn: ["3L21"], + }, + }, + articuno: { + learnset: { + aerialace: ["3M"], + agility: ["3L25"], + blizzard: ["3M", "3L73"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + fly: ["3M"], + frustration: ["3M"], + gust: ["3L1"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M", "3L49"], + mimic: ["3T"], + mindreader: ["3L37"], + mist: ["3L13"], + powdersnow: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + reflect: ["3M", "3L61"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + sheercold: ["3L85"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + zapdos: { + learnset: { + aerialace: ["3M"], + agility: ["3L25"], + charge: ["3L61"], + detect: ["3L37"], + doubleedge: ["3T"], + doubleteam: ["3M"], + drillpeck: ["3L49"], + facade: ["3M"], + flash: ["3M"], + fly: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lightscreen: ["3M", "3L73"], + mimic: ["3T"], + peck: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + shockwave: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thunder: ["3M", "3L85"], + thunderbolt: ["3M"], + thundershock: ["3L1"], + thunderwave: ["3T", "3L13"], + toxic: ["3M"], + }, + }, + moltres: { + learnset: { + aerialace: ["3M"], + agility: ["3L25"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L1"], + endure: ["3T", "3L37"], + facade: ["3M"], + fireblast: ["3M"], + firespin: ["3L13"], + flamethrower: ["3M", "3L49"], + fly: ["3M"], + frustration: ["3M"], + heatwave: ["3L73"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M", "3L61"], + sandstorm: ["3M"], + secretpower: ["3M"], + skyattack: ["3T", "3L85"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + toxic: ["3M"], + wingattack: ["3L1"], + }, + }, + dratini: { + learnset: { + agility: ["3L36"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3E"], + dragonrage: ["3L22"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L57"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + lightscreen: ["3E"], + mimic: ["3T"], + mist: ["3E"], + outrage: ["3L50"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M", "3L43"], + secretpower: ["3M"], + shockwave: ["3M"], + slam: ["3L29"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3E"], + surf: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T", "3L8"], + toxic: ["3M"], + twister: ["3L15"], + waterfall: ["3M"], + waterpulse: ["3M"], + wrap: ["3L1"], + }, + }, + dragonair: { + learnset: { + agility: ["3L38"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonrage: ["3L22"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L65"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + outrage: ["3L56"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M", "3L47"], + secretpower: ["3M"], + shockwave: ["3M"], + slam: ["3L29"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T", "3L1"], + toxic: ["3M"], + twister: ["3L1"], + waterfall: ["3M"], + waterpulse: ["3M"], + wrap: ["3L1"], + }, + encounters: [ + {generation: 3, level: 25, pokeball: "safariball"}, + ], + }, + dragonite: { + learnset: { + aerialace: ["3M"], + agility: ["3L38"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + cut: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonclaw: ["3M"], + dragonrage: ["3L22"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + fly: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L75"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + outrage: ["3L61"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3M", "3L47"], + sandstorm: ["3M"], + secretpower: ["3M"], + shockwave: ["3M"], + slam: ["3L29"], + steelwing: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T", "3L1"], + toxic: ["3M"], + twister: ["3L1"], + waterfall: ["3M"], + waterpulse: ["3M"], + wingattack: ["3L55"], + wrap: ["3L1"], + }, + }, + mewtwo: { + learnset: { + aerialace: ["3M"], + amnesia: ["3L77"], + barrier: ["3L11"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bulkup: ["3M"], + calmmind: ["3M"], + confusion: ["3L1"], + counter: ["3T"], + disable: ["3L1"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + futuresight: ["3L44"], + hail: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mist: ["3L22"], + protect: ["3M"], + psychic: ["3M", "3L66"], + psychup: ["3T", "3L33"], + raindance: ["3M"], + recover: ["3L44"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3M", "3L55"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swift: ["3T", "3L22"], + taunt: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + sentret: { + learnset: { + amnesia: ["3L49"], + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + cut: ["3M"], + defensecurl: ["3T", "3L4"], + dig: ["3M"], + doubleedge: ["3T", "3E"], + doubleteam: ["3M"], + facade: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3E"], + focuspunch: ["3M"], + followme: ["3L31"], + frustration: ["3M"], + furyswipes: ["3L12"], + helpinghand: ["3L17"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3E"], + quickattack: ["3L7"], + raindance: ["3M"], + rest: ["3M", "3L40"], + return: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + slam: ["3L24"], + slash: ["3E"], + solarbeam: ["3M"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + surf: ["3M"], + thief: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + furret: { + learnset: { + amnesia: ["3L59"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + cut: ["3M"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + followme: ["3L37"], + frustration: ["3M"], + furyswipes: ["3L12"], + helpinghand: ["3L19"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L1"], + raindance: ["3M"], + rest: ["3M", "3L48"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + slam: ["3L28"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + ledyba: { + learnset: { + aerialace: ["3M"], + agility: ["3L43"], + attract: ["3M"], + batonpass: ["3L29"], + brickbreak: ["3M"], + cometpunch: ["3L15"], + dig: ["3M"], + doubleedge: ["3T", "3L50"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + lightscreen: ["3M", "3L22"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + psybeam: ["3E"], + reflect: ["3M", "3L22"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M", "3L22"], + secretpower: ["3M"], + silverwind: ["3E"], + solarbeam: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L8"], + swift: ["3T", "3L36"], + swordsdance: ["3T"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + ledian: { + learnset: { + aerialace: ["3M"], + agility: ["3L51"], + attract: ["3M"], + batonpass: ["3L33"], + brickbreak: ["3M"], + cometpunch: ["3L15"], + dig: ["3M"], + doubleedge: ["3T", "3L60"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lightscreen: ["3M", "3L24"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + reflect: ["3M", "3L24"], + rest: ["3M"], + return: ["3M"], + safeguard: ["3M", "3L24"], + secretpower: ["3M"], + solarbeam: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L1"], + swift: ["3T", "3L42"], + swordsdance: ["3T"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + spinarak: { + learnset: { + agility: ["3L45"], + attract: ["3M"], + batonpass: ["3E"], + bodyslam: ["3T"], + constrict: ["3L11"], + dig: ["3M"], + disable: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + furyswipes: ["3L30"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + leechlife: ["3L23"], + mimic: ["3T"], + nightshade: ["3L17"], + poisonsting: ["3L1"], + protect: ["3M"], + psybeam: ["3E"], + psychic: ["3M", "3L53"], + pursuit: ["3E"], + rest: ["3M"], + return: ["3M"], + scaryface: ["3L6"], + secretpower: ["3M"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + sonicboom: ["3E"], + spiderweb: ["3L37"], + stringshot: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + ariados: { + learnset: { + agility: ["3L53"], + attract: ["3M"], + bodyslam: ["3T"], + constrict: ["3L1"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + furyswipes: ["3L34"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechlife: ["3L25"], + mimic: ["3T"], + nightshade: ["3L17"], + poisonsting: ["3L1"], + protect: ["3M"], + psychic: ["3M", "3L63"], + rest: ["3M"], + return: ["3M"], + scaryface: ["3L1"], + secretpower: ["3M"], + sludgebomb: ["3M"], + solarbeam: ["3M"], + spiderweb: ["3L43"], + stringshot: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + togepi: { + learnset: { + ancientpower: ["3L21"], + attract: ["3M"], + batonpass: ["3L41"], + bodyslam: ["3T"], + charm: ["3L1"], + counter: ["3T"], + doubleedge: ["3T", "3L37"], + doubleteam: ["3M"], + dreameater: ["3T"], + encore: ["3L17"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + followme: ["3L25"], + frustration: ["3M"], + futuresight: ["3E"], + growl: ["3L1"], + hiddenpower: ["3M"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T", "3L4"], + mimic: ["3T"], + mirrormove: ["3E"], + peck: ["3E"], + present: ["3E"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M", "3L33"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + softboiled: ["3T"], + solarbeam: ["3M"], + substitute: ["3T", "3E"], + sunnyday: ["3M"], + sweetkiss: ["3L9"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + wish: ["3L29"], + yawn: ["3L13"], + }, + }, + togetic: { + learnset: { + aerialace: ["3M"], + ancientpower: ["3L21"], + attract: ["3M"], + batonpass: ["3L41"], + bodyslam: ["3T"], + brickbreak: ["3M"], + charm: ["3L1"], + counter: ["3T"], + doubleedge: ["3T", "3L37"], + doubleteam: ["3M"], + dreameater: ["3T"], + encore: ["3L17"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + flash: ["3M"], + fly: ["3M"], + focuspunch: ["3M"], + followme: ["3L25"], + frustration: ["3M"], + growl: ["3L1"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lightscreen: ["3M"], + magicalleaf: ["3L1"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T", "3L1"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M", "3L33"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + softboiled: ["3T"], + solarbeam: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + sweetkiss: ["3L1"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + wish: ["3L29"], + yawn: ["3L13"], + }, + }, + natu: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + calmmind: ["3M"], + confuseray: ["3L40"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + drillpeck: ["3E"], + facade: ["3M"], + featherdance: ["3E"], + feintattack: ["3E"], + flash: ["3M"], + frustration: ["3M"], + futuresight: ["3L30"], + gigadrain: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + leer: ["3L1"], + lightscreen: ["3M"], + mimic: ["3T"], + nightshade: ["3L10"], + peck: ["3L1"], + protect: ["3M"], + psychic: ["3M", "3L50"], + quickattack: ["3E"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + skillswap: ["3M"], + solarbeam: ["3M"], + steelwing: ["3M", "3E"], + substitute: ["3T"], + sunnyday: ["3M"], + teleport: ["3L20"], + thief: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + wish: ["3L30"], + }, + }, + xatu: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + calmmind: ["3M"], + confuseray: ["3L50"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + fly: ["3M"], + frustration: ["3M"], + futuresight: ["3L35"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leer: ["3L1"], + lightscreen: ["3M"], + mimic: ["3T"], + nightshade: ["3L10"], + peck: ["3L1"], + protect: ["3M"], + psychic: ["3M", "3L65"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + skillswap: ["3M"], + solarbeam: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + teleport: ["3L20"], + thief: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + wish: ["3L35"], + }, + }, + azurill: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubble: ["3L10"], + charm: ["3L3"], + doubleedge: ["3T"], + doubleteam: ["3M"], + encore: ["3E"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + refresh: ["3E"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sing: ["3E"], + slam: ["3L15", "3E"], + splash: ["3L1"], + substitute: ["3T"], + surf: ["3M"], + tailwhip: ["3L6"], + tickle: ["3E"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L21"], + waterpulse: ["3M"], + }, + }, + marill: { + learnset: { + amnesia: ["3E"], + attract: ["3M"], + bellydrum: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bubblebeam: ["3L21"], + defensecurl: ["3T", "3L3"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T", "3L28"], + doubleteam: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L45"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3E"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + perishsong: ["3E"], + present: ["3E"], + protect: ["3M"], + raindance: ["3M", "3L36"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rollout: ["3T", "3L15"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T", "3E"], + supersonic: ["3E"], + surf: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L6"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L10"], + waterpulse: ["3M"], + }, + }, + azumarill: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + bubblebeam: ["3L24"], + defensecurl: ["3T", "3L1"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T", "3L34"], + doubleteam: ["3M"], + facade: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L57"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M", "3L45"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rollout: ["3T", "3L15"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + hoppip: { + learnset: { + aerialace: ["3M"], + amnesia: ["3E"], + attract: ["3M"], + bulletseed: ["3M"], + confusion: ["3E"], + cottonspore: ["3L25"], + doubleedge: ["3T", "3E"], + doubleteam: ["3M"], + encore: ["3E"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + leechseed: ["3L20"], + megadrain: ["3L30"], + mimic: ["3T"], + poisonpowder: ["3L13"], + protect: ["3M"], + reflect: ["3E"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L17"], + solarbeam: ["3M"], + splash: ["3L1"], + stunspore: ["3L15"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + synthesis: ["3L5"], + tackle: ["3L10"], + tailwhip: ["3L5"], + toxic: ["3M"], + }, + }, + skiploom: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bulletseed: ["3M"], + cottonspore: ["3L29"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + leechseed: ["3L22"], + megadrain: ["3L36"], + mimic: ["3T"], + poisonpowder: ["3L13"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L17"], + solarbeam: ["3M"], + splash: ["3L1"], + stunspore: ["3L15"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + synthesis: ["3L1"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + }, + }, + jumpluff: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bulletseed: ["3M"], + cottonspore: ["3L33"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + leechseed: ["3L22"], + megadrain: ["3L44"], + mimic: ["3T"], + poisonpowder: ["3L13"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + sleeppowder: ["3L17"], + solarbeam: ["3M"], + splash: ["3L1"], + stunspore: ["3L15"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + synthesis: ["3L1"], + tackle: ["3L1"], + tailwhip: ["3L1"], + toxic: ["3M"], + }, + }, + yanma: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + detect: ["3L25"], + doubleedge: ["3T"], + doubleteam: ["3M", "3L12"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + foresight: ["3L1"], + frustration: ["3M"], + gigadrain: ["3M"], + hiddenpower: ["3M"], + hypnosis: ["3L23"], + leechlife: ["3E"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + quickattack: ["3L6"], + rest: ["3M"], + return: ["3M"], + reversal: ["3E"], + screech: ["3L49"], + secretpower: ["3M"], + shadowball: ["3M"], + silverwind: ["3E"], + solarbeam: ["3M"], + sonicboom: ["3L17"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3L31"], + tackle: ["3L1"], + thief: ["3M"], + toxic: ["3M"], + uproar: ["3L34"], + whirlwind: ["3E"], + wingattack: ["3L39"], + }, + }, + wooper: { + learnset: { + amnesia: ["3L21"], + ancientpower: ["3E"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T", "3E"], + curse: ["3E"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L36"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3L51"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + mist: ["3L51"], + mudshot: ["3L16"], + protect: ["3M"], + raindance: ["3M", "3L41"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + safeguard: ["3E"], + sandstorm: ["3M"], + secretpower: ["3M"], + slam: ["3L11"], + sludgebomb: ["3M"], + spitup: ["3E"], + stockpile: ["3E"], + substitute: ["3T"], + surf: ["3M"], + swallow: ["3E"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + yawn: ["3L31"], + }, + }, + quagsire: { + learnset: { + amnesia: ["3L23"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L42"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3L61"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mist: ["3L61"], + mudshot: ["3L16"], + protect: ["3M"], + raindance: ["3M", "3L49"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + slam: ["3L11"], + sludgebomb: ["3M"], + strength: ["3M"], + substitute: ["3T"], + surf: ["3M"], + tailwhip: ["3L1"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + yawn: ["3L35"], + }, + }, + murkrow: { + learnset: { + aerialace: ["3M"], + astonish: ["3L9"], + attract: ["3M"], + calmmind: ["3M"], + confuseray: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + drillpeck: ["3E"], + facade: ["3M"], + featherdance: ["3E"], + feintattack: ["3L35"], + fly: ["3M"], + frustration: ["3M"], + haze: ["3L22"], + hiddenpower: ["3M"], + meanlook: ["3L48"], + mimic: ["3T"], + mirrormove: ["3E"], + nightshade: ["3L27"], + peck: ["3L1"], + protect: ["3M"], + pursuit: ["3L14"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + snatch: ["3M"], + steelwing: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M", "3L40"], + thief: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + whirlwind: ["3E"], + wingattack: ["3E"], + }, + }, + misdreavus: { + learnset: { + aerialace: ["3M"], + astonish: ["3L11"], + attract: ["3M"], + calmmind: ["3M"], + confuseray: ["3L17"], + destinybond: ["3E"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + growl: ["3L1"], + grudge: ["3L53"], + hiddenpower: ["3M"], + meanlook: ["3L23"], + mimic: ["3T"], + painsplit: ["3L37"], + perishsong: ["3L45"], + protect: ["3M"], + psybeam: ["3L30"], + psychic: ["3M"], + psywave: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + spite: ["3L6"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + unown: { + learnset: { + hiddenpower: ["3L1"], + }, + encounters: [ + {generation: 3, level: 25}, + ], + }, + wynaut: { + learnset: { + charm: ["3L1"], + counter: ["3L15"], + destinybond: ["3L15"], + encore: ["3L1"], + mirrorcoat: ["3L15"], + safeguard: ["3L15"], + splash: ["3L1"], + }, + }, + wobbuffet: { + learnset: { + counter: ["3L1"], + destinybond: ["3L1"], + mirrorcoat: ["3L1"], + safeguard: ["3L1"], + }, + }, + dunsparce: { + learnset: { + ancientpower: ["3E"], + attract: ["3M"], + bite: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + calmmind: ["3M"], + counter: ["3T"], + curse: ["3E"], + defensecurl: ["3T", "3L4"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + endeavor: ["3L41"], + facade: ["3M"], + fireblast: ["3M"], + flail: ["3L44"], + flamethrower: ["3M"], + frustration: ["3M"], + glare: ["3L14"], + headbutt: ["3E"], + hiddenpower: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + protect: ["3M"], + pursuit: ["3L24"], + rage: ["3L1"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + rollout: ["3T", "3L21"], + screech: ["3L31"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + solarbeam: ["3M"], + spite: ["3L21"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + takedown: ["3L34"], + thief: ["3M"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterpulse: ["3M"], + yawn: ["3L11"], + }, + }, + qwilfish: { + learnset: { + attract: ["3M"], + blizzard: ["3M"], + bubblebeam: ["3E"], + destinybond: ["3L45"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flail: ["3E"], + frustration: ["3M"], + hail: ["3M"], + harden: ["3L9"], + haze: ["3E"], + hiddenpower: ["3M"], + hydropump: ["3L37"], + icebeam: ["3M"], + mimic: ["3T"], + minimize: ["3L9"], + pinmissile: ["3L21"], + poisonsting: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + revenge: ["3L25"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + sludgebomb: ["3M"], + spikes: ["3L1"], + substitute: ["3T"], + supersonic: ["3E"], + surf: ["3M"], + swordsdance: ["3T"], + tackle: ["3L1"], + takedown: ["3L33"], + thunderwave: ["3T"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L13"], + waterpulse: ["3M"], + }, + }, + heracross: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M", "3L23"], + bulkup: ["3M"], + counter: ["3T", "3L30"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + endure: ["3T", "3L11"], + facade: ["3M"], + falseswipe: ["3E"], + focuspunch: ["3M"], + frustration: ["3M"], + furyattack: ["3L17"], + harden: ["3E"], + hiddenpower: ["3M"], + hornattack: ["3L6"], + hyperbeam: ["3M"], + leer: ["3L1"], + megahorn: ["3L53"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + reversal: ["3L45"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swordsdance: ["3T"], + tackle: ["3L1"], + takedown: ["3L37"], + thief: ["3M"], + toxic: ["3M"], + }, + }, + sneasel: { + learnset: { + aerialace: ["3M"], + agility: ["3L36"], + attract: ["3M"], + beatup: ["3L57"], + bite: ["3E"], + blizzard: ["3M"], + brickbreak: ["3M"], + calmmind: ["3M"], + counter: ["3T", "3E"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + facade: ["3M"], + fakeout: ["3E"], + feintattack: ["3L22"], + focuspunch: ["3M"], + frustration: ["3M"], + furyswipes: ["3L29"], + hail: ["3M"], + hiddenpower: ["3M"], + icebeam: ["3M"], + icywind: ["3T", "3L43"], + irontail: ["3M"], + leer: ["3L1"], + metalclaw: ["3L64"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L8"], + raindance: ["3M"], + reflect: ["3E"], + rest: ["3M"], + return: ["3M"], + rocksmash: ["3M"], + scratch: ["3L1"], + screech: ["3L15"], + secretpower: ["3M"], + shadowball: ["3M"], + slash: ["3L50"], + snatch: ["3M"], + spite: ["3E"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + swordsdance: ["3T"], + taunt: ["3M", "3L1"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + slugma: { + learnset: { + acidarmor: ["3E"], + amnesia: ["3L29"], + attract: ["3M"], + bodyslam: ["3T", "3L50"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L8"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M", "3L36"], + frustration: ["3M"], + harden: ["3L22"], + hiddenpower: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3L43"], + rocksmash: ["3M"], + rockthrow: ["3L15"], + secretpower: ["3M"], + smog: ["3L1"], + substitute: ["3T"], + sunnyday: ["3M"], + toxic: ["3M"], + yawn: ["3L1"], + }, + }, + magcargo: { + learnset: { + amnesia: ["3L29"], + attract: ["3M"], + bodyslam: ["3T", "3L60"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + ember: ["3L1"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M", "3L36"], + frustration: ["3M"], + harden: ["3L22"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3L48"], + rocksmash: ["3M"], + rockthrow: ["3L1"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + smog: ["3L1"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + toxic: ["3M"], + yawn: ["3L1"], + }, + encounters: [ + {generation: 3, level: 25}, + ], + }, + swinub: { + learnset: { + amnesia: ["3L55"], + ancientpower: ["3E"], + attract: ["3M"], + bite: ["3E"], + blizzard: ["3M", "3L46"], + bodyslam: ["3T", "3E"], + dig: ["3M"], + doubleedge: ["3T", "3E"], + doubleteam: ["3M"], + earthquake: ["3M"], + endure: ["3T", "3L19"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + icebeam: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + mist: ["3L37"], + mudshot: ["3E"], + odorsleuth: ["3L1"], + powdersnow: ["3L10"], + protect: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T", "3E"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + tackle: ["3L1"], + takedown: ["3L28", "3E"], + toxic: ["3M"], + }, + }, + piloswine: { + learnset: { + amnesia: ["3L70"], + attract: ["3M"], + blizzard: ["3M", "3L56"], + bodyslam: ["3T"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + endure: ["3T", "3L1"], + facade: ["3M"], + frustration: ["3M"], + furyattack: ["3L33"], + hail: ["3M"], + hiddenpower: ["3M"], + hornattack: ["3L1"], + hyperbeam: ["3M"], + icebeam: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + mist: ["3L42"], + odorsleuth: ["3L1"], + powdersnow: ["3L1"], + protect: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + takedown: ["3L28"], + toxic: ["3M"], + }, + }, + remoraid: { + learnset: { + attract: ["3M"], + aurorabeam: ["3L22", "3E"], + blizzard: ["3M"], + bubblebeam: ["3L22"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L33"], + frustration: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L55"], + icebeam: ["3M", "3L44"], + lockon: ["3L11"], + mimic: ["3T"], + octazooka: ["3E"], + protect: ["3M"], + psybeam: ["3L22"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + screech: ["3E"], + secretpower: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + supersonic: ["3E"], + surf: ["3M"], + thief: ["3M"], + thunderwave: ["3T", "3E"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + octillery: { + learnset: { + attract: ["3M"], + aurorabeam: ["3L22"], + blizzard: ["3M"], + bubblebeam: ["3L22"], + bulletseed: ["3M"], + constrict: ["3L11"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focusenergy: ["3L38"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L70"], + icebeam: ["3M", "3L54"], + mimic: ["3T"], + octazooka: ["3L25"], + protect: ["3M"], + psybeam: ["3L22"], + psychic: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + sludgebomb: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + thief: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterfall: ["3M"], + watergun: ["3L1"], + waterpulse: ["3M"], + }, + }, + delibird: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + aurorabeam: ["3E"], + blizzard: ["3M"], + bodyslam: ["3T"], + counter: ["3T"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + fly: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hail: ["3M"], + hiddenpower: ["3M"], + icebeam: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + present: ["3L1"], + protect: ["3M"], + quickattack: ["3E"], + raindance: ["3M"], + rapidspin: ["3E"], + rest: ["3M"], + return: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + splash: ["3E"], + substitute: ["3T"], + thief: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + mantine: { + learnset: { + aerialace: ["3M"], + agility: ["3L29"], + attract: ["3M"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubble: ["3L1"], + bubblebeam: ["3L15"], + confuseray: ["3L50"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M"], + facade: ["3M"], + frustration: ["3M"], + hail: ["3M"], + haze: ["3E"], + hiddenpower: ["3M"], + hydropump: ["3E"], + icebeam: ["3M"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3E"], + secretpower: ["3M"], + slam: ["3E"], + substitute: ["3T"], + supersonic: ["3L8"], + surf: ["3M"], + tackle: ["3L1"], + takedown: ["3L22"], + toxic: ["3M"], + twister: ["3E"], + waterfall: ["3M"], + waterpulse: ["3M", "3L43"], + wingattack: ["3L36"], + }, + }, + skarmory: { + learnset: { + aerialace: ["3M"], + agility: ["3L16"], + aircutter: ["3L29"], + attract: ["3M"], + counter: ["3T"], + curse: ["3E"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + drillpeck: ["3E"], + facade: ["3M"], + fly: ["3M"], + frustration: ["3M"], + furyattack: ["3L26"], + hiddenpower: ["3M"], + leer: ["3L1"], + metalsound: ["3L45"], + mimic: ["3T"], + peck: ["3L1"], + protect: ["3M"], + pursuit: ["3E"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + sandattack: ["3L10"], + sandstorm: ["3M"], + secretpower: ["3M"], + spikes: ["3L42"], + steelwing: ["3M", "3L32"], + substitute: ["3T"], + sunnyday: ["3M"], + swift: ["3T", "3L13"], + taunt: ["3M"], + thief: ["3M"], + torment: ["3M"], + toxic: ["3M"], + whirlwind: ["3E"], + }, + }, + phanpy: { + learnset: { + ancientpower: ["3E"], + attract: ["3M"], + bodyslam: ["3T", "3E"], + counter: ["3T", "3E"], + defensecurl: ["3T", "3L9"], + doubleedge: ["3T", "3L49"], + doubleteam: ["3M"], + earthquake: ["3M"], + endure: ["3T", "3L41"], + facade: ["3M"], + fissure: ["3E"], + flail: ["3L17"], + focusenergy: ["3E"], + frustration: ["3M"], + growl: ["3L1"], + hiddenpower: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + odorsleuth: ["3L1"], + protect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + rocktomb: ["3M"], + rollout: ["3T", "3L33"], + sandstorm: ["3M"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + tackle: ["3L1"], + takedown: ["3L25"], + toxic: ["3M"], + }, + }, + donphan: { + learnset: { + attract: ["3M"], + bodyslam: ["3T"], + counter: ["3T"], + defensecurl: ["3T", "3L9"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L49"], + facade: ["3M"], + flail: ["3L17"], + frustration: ["3M"], + furyattack: ["3L25"], + growl: ["3L1"], + hiddenpower: ["3M"], + hornattack: ["3L1"], + hyperbeam: ["3M"], + irontail: ["3M"], + mimic: ["3T"], + odorsleuth: ["3L1"], + protect: ["3M"], + rapidspin: ["3L41"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + rollout: ["3T", "3L33"], + sandstorm: ["3M"], + secretpower: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + toxic: ["3M"], + }, + }, + raikou: { + learnset: { + bite: ["3L1"], + bodyslam: ["3T"], + calmmind: ["3M", "3L81"], + crunch: ["3L61"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + quickattack: ["3L31"], + raindance: ["3M"], + reflect: ["3M", "3L51"], + rest: ["3M"], + return: ["3M"], + roar: ["3M", "3L21"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + shockwave: ["3M"], + spark: ["3L41"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + thunder: ["3M", "3L71"], + thunderbolt: ["3M"], + thundershock: ["3L11"], + thunderwave: ["3T"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 40}, + ], + }, + entei: { + learnset: { + bite: ["3L1"], + bodyslam: ["3T"], + calmmind: ["3M", "3L81"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + ember: ["3L11"], + facade: ["3M"], + fireblast: ["3M", "3L71"], + firespin: ["3L31"], + flamethrower: ["3M", "3L51"], + flash: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M", "3L21"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + solarbeam: ["3M"], + stomp: ["3L41"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + swagger: ["3T", "3L61"], + toxic: ["3M"], + }, + encounters: [ + {generation: 3, level: 40}, + ], + }, + suicune: { + learnset: { + aurorabeam: ["3L41"], + bite: ["3L1"], + blizzard: ["3M"], + bodyslam: ["3T"], + bubblebeam: ["3L11"], + calmmind: ["3M", "3L81"], + cut: ["3M"], + dig: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + facade: ["3M"], + frustration: ["3M"], + gust: ["3L31"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L71"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + mimic: ["3T"], + mirrorcoat: ["3L61"], + mist: ["3L51"], + protect: ["3M"], + raindance: ["3M", "3L21"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + sandstorm: ["3M"], + secretpower: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + }, + encounters: [ + {generation: 3, level: 40}, + ], + }, + larvitar: { + learnset: { + attract: ["3M"], + bite: ["3L1"], + bodyslam: ["3T"], + brickbreak: ["3M"], + crunch: ["3L43"], + curse: ["3E"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragondance: ["3E"], + earthquake: ["3M", "3L50"], + facade: ["3M"], + focusenergy: ["3E"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L57"], + leer: ["3L1"], + mimic: ["3T"], + outrage: ["3E"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3L22"], + rocksmash: ["3M"], + sandstorm: ["3M", "3L8"], + scaryface: ["3L36"], + screech: ["3L15"], + secretpower: ["3M"], + stomp: ["3E"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thrash: ["3L29"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + pupitar: { + learnset: { + attract: ["3M"], + bite: ["3L1"], + bodyslam: ["3T"], + brickbreak: ["3M"], + crunch: ["3L47"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + earthquake: ["3M", "3L56"], + facade: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L65"], + leer: ["3L1"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T", "3L22"], + rocksmash: ["3M"], + sandstorm: ["3M", "3L1"], + scaryface: ["3L38"], + screech: ["3L1"], + secretpower: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + thrash: ["3L29"], + torment: ["3M"], + toxic: ["3M"], + }, + }, + tyranitar: { + learnset: { + aerialace: ["3M"], + attract: ["3M"], + bite: ["3L1"], + blizzard: ["3M"], + bodyslam: ["3T"], + brickbreak: ["3M"], + counter: ["3T"], + crunch: ["3L47"], + cut: ["3M"], + dig: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dragonclaw: ["3M"], + earthquake: ["3M", "3L61"], + facade: ["3M"], + fireblast: ["3M"], + flamethrower: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M", "3L75"], + icebeam: ["3M"], + irontail: ["3M"], + leer: ["3L1"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + protect: ["3M"], + raindance: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rockslide: ["3T", "3L22"], + rocksmash: ["3M"], + rocktomb: ["3M"], + sandstorm: ["3M", "3L1"], + scaryface: ["3L38"], + screech: ["3L1"], + secretpower: ["3M"], + seismictoss: ["3T"], + shockwave: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + taunt: ["3M"], + thrash: ["3L29"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + }, + }, + lugia: { + learnset: { + aerialace: ["3M"], + aeroblast: ["3L77"], + ancientpower: ["3L88"], + blizzard: ["3M"], + bodyslam: ["3T"], + calmmind: ["3M"], + dive: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fly: ["3M"], + frustration: ["3M"], + futuresight: ["3L99"], + gigadrain: ["3M"], + gust: ["3L22"], + hail: ["3M"], + hiddenpower: ["3M"], + hydropump: ["3L44"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irontail: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M", "3L55"], + recover: ["3L33"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + safeguard: ["3M", "3L11"], + sandstorm: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + steelwing: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + surf: ["3M"], + swift: ["3T", "3L66"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + waterfall: ["3M"], + waterpulse: ["3M"], + whirlwind: ["3L1"], + }, + }, + hooh: { + learnset: { + aerialace: ["3M"], + ancientpower: ["3L88"], + calmmind: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M"], + dreameater: ["3T"], + earthquake: ["3M"], + facade: ["3M"], + fireblast: ["3M", "3L44"], + flamethrower: ["3M"], + flash: ["3M"], + fly: ["3M"], + frustration: ["3M"], + futuresight: ["3L99"], + gigadrain: ["3M"], + gust: ["3L22"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + lightscreen: ["3M"], + mimic: ["3T"], + overheat: ["3M"], + protect: ["3M"], + psychic: ["3M"], + raindance: ["3M"], + recover: ["3L33"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + roar: ["3M"], + rocksmash: ["3M"], + sacredfire: ["3L77"], + safeguard: ["3M", "3L11"], + sandstorm: ["3M"], + secretpower: ["3M"], + shadowball: ["3M"], + shockwave: ["3M"], + solarbeam: ["3M"], + steelwing: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M", "3L55"], + swift: ["3T", "3L66"], + thunder: ["3M"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + toxic: ["3M"], + whirlwind: ["3L1"], + }, + }, + deoxysattack: { + learnset: { + aerialace: ["3M"], + agility: ["3L35"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + cosmicpower: ["3L35"], + counter: ["3T"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M", "3L10"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3L50", "3M"], + icebeam: ["3M"], + leer: ["3L1"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + nightshade: ["3L5"], + protect: ["3M"], + psychic: ["3M", "3L25"], + psychoboost: ["3L45"], + pursuit: ["3L20"], + raindance: ["3M"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3M"], + solarbeam: ["3M"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + superpower: ["3L30"], + taunt: ["3L15", "3M"], + teleport: ["3L10"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + wrap: ["3L1"], + zapcannon: ["3L40"], + }, + }, + deoxysdefense: { + learnset: { + aerialace: ["3M"], + agility: ["3L35"], + amnesia: ["3L35"], + bodyslam: ["3T"], + brickbreak: ["3M"], + calmmind: ["3M"], + counter: ["3T", "3L50"], + cut: ["3M"], + doubleedge: ["3T"], + doubleteam: ["3M", "3L10"], + dreameater: ["3T"], + facade: ["3M"], + flash: ["3M"], + focuspunch: ["3M"], + frustration: ["3M"], + hiddenpower: ["3M"], + hyperbeam: ["3M"], + icebeam: ["3M"], + irondefense: ["3L35"], + knockoff: ["3L15"], + leer: ["3L1"], + lightscreen: ["3M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mirrorcoat: ["3L50"], + nightshade: ["3L5"], + protect: ["3M"], + psychic: ["3M", "3L25"], + psychoboost: ["3L45"], + raindance: ["3M"], + recover: ["3L40"], + reflect: ["3M"], + rest: ["3M"], + return: ["3M"], + rockslide: ["3T"], + rocksmash: ["3M"], + rocktomb: ["3M"], + safeguard: ["3M"], + secretpower: ["3M"], + seismictoss: ["3T"], + shadowball: ["3M"], + shockwave: ["3M"], + skillswap: ["3M"], + snatch: ["3L30", "3M"], + solarbeam: ["3M"], + spikes: ["3L20"], + strength: ["3M"], + substitute: ["3T"], + sunnyday: ["3M"], + taunt: ["3M"], + teleport: ["3L10"], + thunderbolt: ["3M"], + thunderwave: ["3T"], + torment: ["3M"], + toxic: ["3M"], + waterpulse: ["3M"], + wrap: ["3L1"], + }, + }, +}; \ No newline at end of file diff --git a/data/mods/gen3frlg/rulesets.ts b/data/mods/gen3frlg/rulesets.ts new file mode 100644 index 0000000000..0dec9020f9 --- /dev/null +++ b/data/mods/gen3frlg/rulesets.ts @@ -0,0 +1,40 @@ +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { + standard: { + effectType: 'ValidatorRule', + name: 'Standard', + desc: "The standard ruleset for all official Smogon singles tiers (Ubers, OU, etc.)", + ruleset: [ + 'Standard AG', + 'Sleep Clause Mod', 'Switch Priority Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Items Clause', 'Evasion Moves Clause', + ], + }, + standarddraft: { + effectType: 'ValidatorRule', + name: 'Standard Draft', + desc: "The custom Draft League ruleset", + ruleset: [ + 'Obtainable', 'Nickname Clause', 'Beat Up Nicknames Mod', '+Unreleased', 'Sleep Clause Mod', 'OHKO Clause', 'Evasion Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', + 'One Boost Passer Clause', 'Freeze Clause Mod', 'Accuracy Moves Clause', 'Baton Pass Trap Clause', + ], + banlist: [ + 'Uber', 'Smeargle + Ingrain', 'Swagger', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Baton Pass + Ancient Power', 'Baton Pass + Silver Wind', + ], + // timer: {starting: 60 * 60, grace: 0, addPerTurn: 10, maxPerTurn: 100, timeoutAutoChoose: true}, + }, + obtainable: { + inherit: true, + onValidateSet(set) { + const species = this.dex.species.get(set.species); + if (['entei', 'raikou', 'suicune'].includes(species.id)) { + if (!set.ivs) set.ivs = { hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31 }; + for (const stat in set.ivs) { + if ((stat === 'atk' && set.ivs[stat] > 7) || (stat !== 'hp' && set.ivs[stat as 'def'] > 0)) { + return [ + `${set.name} must have 7 or fewer Attack IVs and 0 IVs in all other stats except HP, due to the Roaming IVs glitch.`, + ]; + } + } + } + }, + }, +}; diff --git a/data/mods/gen3frlg/scripts.ts b/data/mods/gen3frlg/scripts.ts new file mode 100644 index 0000000000..bc67cbbb16 --- /dev/null +++ b/data/mods/gen3frlg/scripts.ts @@ -0,0 +1,3 @@ +export const Scripts: ModdedBattleScriptsData = { + inherit: 'gen3', +}; diff --git a/data/mods/gen3rs/abilities.ts b/data/mods/gen3rs/abilities.ts new file mode 100644 index 0000000000..adfe8653b3 --- /dev/null +++ b/data/mods/gen3rs/abilities.ts @@ -0,0 +1,63 @@ +function attemptStatuses(battle: Battle, target: Pokemon, source: Pokemon, move: ActiveMove, status: string) { + const attackerStatused = source.trySetStatus(status, target); + if (move.multihit && move.id !== 'triplekick' && + (move.lastHit || (attackerStatused && status === 'slp')) && + battle.randomChance(1, 100)) { + const defenderStatused = target.trySetStatus(status, target, move); + if (defenderStatused) { + battle.hint("In Pokemon Ruby, Sapphire, FireRed, LeafGreen, and Colosseum, if the final hit of a multihit move (except for Triple Kick) that makes contact triggers an ability that inflicts status, then there is a 1% chance that the defender is afflicted by the same status."); + } + } +} + +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + effectspore: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact'] && !source.status) { + const r = this.random(300); + let status = null; + if (r < 10) { + status = 'slp'; + } else if (r < 20) { + status = 'par'; + } else if (r < 30) { + status = 'psn'; + } + if (status) { + attemptStatuses(this, target, source, move, status); + } + } + }, + }, + flamebody: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact']) { + if (this.randomChance(1, 3)) { + attemptStatuses(this, target, source, move, 'brn'); + } + } + }, + }, + poisonpoint: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact']) { + if (this.randomChance(1, 3)) { + attemptStatuses(this, target, source, move, 'psn'); + } + } + }, + }, + static: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (damage && move.flags['contact']) { + if (this.randomChance(1, 3)) { + attemptStatuses(this, target, source, move, 'par'); + } + } + }, + }, +}; diff --git a/data/mods/gen4/abilities.ts b/data/mods/gen4/abilities.ts index 461e5956b4..434d3a876d 100644 --- a/data/mods/gen4/abilities.ts +++ b/data/mods/gen4/abilities.ts @@ -92,15 +92,9 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa effectspore: { inherit: true, onDamagingHit(damage, target, source, move) { - if (damage && move.flags['contact'] && !source.status) { - const r = this.random(100); - if (r < 10) { - source.setStatus('slp', target); - } else if (r < 20) { - source.setStatus('par', target); - } else if (r < 30) { - source.setStatus('psn', target); - } + if (damage && move.flags['contact'] && this.randomChance(3, 10)) { + const status = this.sample(['slp', 'par', 'psn']); + source.trySetStatus(status, target); } }, }, @@ -284,6 +278,11 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa } }, }, + multitype: { + inherit: true, + onTakeItem: false, + onSetAbility: false, // redundant but hardcoded + }, naturalcure: { inherit: true, onCheckShow: undefined, // no inherit @@ -413,6 +412,13 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa onResidualOrder: 10, onResidualSubOrder: 3, }, + stall: { + inherit: true, + onFractionalPriority(priority, pokemon) { + // don't override Lagging Tail and Full Incense's -0.2 fractional priority + if (priority >= 0) return -0.1; + }, + }, static: { inherit: true, onDamagingHit(damage, target, source, move) { @@ -512,10 +518,7 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa 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 (ability.flags['notrace']) return; pokemon.setAbility(ability, target); }, flags: { notrace: 1 }, diff --git a/data/mods/gen4/items.ts b/data/mods/gen4/items.ts index 1f61b55399..bec40c7413 100644 --- a/data/mods/gen4/items.ts +++ b/data/mods/gen4/items.ts @@ -164,6 +164,11 @@ export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { }, }, }, + fullincense: { + inherit: true, + onFractionalPriorityPriority: 1, + onFractionalPriority: -0.2, + }, griseousorb: { inherit: true, onBasePower(basePower, user, target, move) { @@ -171,6 +176,8 @@ export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { return this.chainModify(1.2); } }, + onTakeItem: false, + onSetAbility: false, }, heavyball: { inherit: true, @@ -207,6 +214,11 @@ export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { } }, }, + laggingtail: { + inherit: true, + onFractionalPriorityPriority: 1, + onFractionalPriority: -0.2, + }, laxincense: { inherit: true, onModifyAccuracyPriority: 5, diff --git a/data/mods/gen4/moves.ts b/data/mods/gen4/moves.ts index d2c909d56c..4b35b1f21b 100644 --- a/data/mods/gen4/moves.ts +++ b/data/mods/gen4/moves.ts @@ -468,7 +468,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, onPrepareHit(target, source, move) { if (source.ignoringItem(true)) 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; @@ -696,7 +695,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, onAfterHit(target, source, move) { if (!target.item) return; - if (target.ability === 'multitype') return; const item = target.getItem(); if (this.runEvent('TakeItem', target, source, move, item)) { target.item = ''; @@ -870,8 +868,8 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { source.moveSlots[mimicIndex] = { move: move.name, id: move.id, - pp: 5, - maxpp: move.pp * 8 / 5, + pp: Math.min(5, move.pp), + maxpp: this.calculatePP(move, source.ppUps[mimicIndex] || 0), disabled: false, used: false, virtual: true, @@ -1017,7 +1015,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { condition: { inherit: true, onTryHit(target, source, move) { - if (!move.flags['protect']) return; + if (this.checkMoveBreaksProtect(move, source, target)) return; this.add('-activate', target, 'Protect'); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { @@ -1151,15 +1149,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, accuracy: 80, }, - roleplay: { - inherit: true, - onTryHit(target, source) { - if (target.ability === source.ability || source.hasItem('griseousorb')) return false; - if (target.getAbility().flags['failroleplay'] || source.ability === 'multitype') { - return false; - } - }, - }, safeguard: { inherit: true, condition: { @@ -1204,7 +1193,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { move: move.name, id: move.id, pp: move.pp, - maxpp: move.pp, + maxpp: this.calculatePP(move, source.ppUps[sketchIndex] || 0), disabled: false, used: false, }; @@ -1232,9 +1221,15 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { } snatchUser.removeVolatile('snatch'); this.add('-activate', snatchUser, 'move: Snatch', `[of] ${source}`); - if (this.actions.useMove(move.id, snatchUser)) { - snatchUser.deductPP('snatch'); + + // check Pressure + const ppDrop = this.runEvent('DeductPP', source, snatchUser, this.effectState.sourceEffect); + const extraPP = ppDrop !== true ? ppDrop : 0; + if (extraPP > 0) { + snatchUser.deductPP(this.effectState.sourceEffect.id, extraPP); } + + this.actions.useMove(move.id, snatchUser); return null; }, }, @@ -1337,13 +1332,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { return !!source.volatiles['stockpile']; }, }, - switcheroo: { - inherit: true, - onTryHit(target, source, move) { - if (target.itemKnockedOff || source.itemKnockedOff) return false; - if (target.hasAbility('multitype') || source.hasAbility('multitype')) return false; - }, - }, synthesis: { inherit: true, onHit(pokemon) { @@ -1454,13 +1442,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, flags: { bypasssub: 1, metronome: 1, failencore: 1 }, }, - trick: { - inherit: true, - onTryHit(target, source, move) { - if (target.itemKnockedOff || source.itemKnockedOff) return false; - if (target.hasAbility('multitype') || source.hasAbility('multitype')) return false; - }, - }, trickroom: { inherit: true, condition: { @@ -1529,15 +1510,6 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, recoil: [1, 3], }, - worryseed: { - inherit: true, - onTryHit(pokemon) { - const bannedAbilities = ['multitype', 'truant']; - if (bannedAbilities.includes(pokemon.ability) || pokemon.hasItem('griseousorb')) { - return false; - } - }, - }, wrap: { inherit: true, accuracy: 85, diff --git a/data/mods/gen4/rulesets.ts b/data/mods/gen4/rulesets.ts index 1a75078179..71359c6c5a 100644 --- a/data/mods/gen4/rulesets.ts +++ b/data/mods/gen4/rulesets.ts @@ -14,7 +14,7 @@ export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable }, flatrules: { inherit: true, - ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'Beat Up Nicknames Mod', 'Item Clause = 1', 'Adjust Level Down = 50', 'Picked Team Size = Auto', 'Cancel Mod'], + ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'Item Clause = 1', 'Adjust Level Down = 50', 'Picked Team Size = Auto', 'Cancel Mod'], }, teampreview: { inherit: true, @@ -30,26 +30,4 @@ export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable this.makeRequest('teampreview'); }, }, - validatestats: { - inherit: true, - onValidateSet(set) { - const species = this.dex.species.get(set.species); - const item = this.dex.items.get(set.item); - if (item && item.id === 'griseousorb' && species.num !== 487) { - return ['Griseous Orb can only be held by Giratina in Generation 4.']; - } - if (species.num === 493 && set.evs) { - const isEventArceus = set.moves.includes('roaroftime') || set.moves.includes('shadowforce') || - set.moves.includes('spacialrend'); - if (isEventArceus) { - let stat: StatID; - for (stat in set.evs) { - if (set.evs[stat] > 100) { - return ["Event Arceus may not have more than 100 of any EVs in Generation 4."]; - } - } - } - } - }, - }, }; diff --git a/data/mods/gen4/scripts.ts b/data/mods/gen4/scripts.ts index de07f57a59..97a2669135 100644 --- a/data/mods/gen4/scripts.ts +++ b/data/mods/gen4/scripts.ts @@ -15,6 +15,17 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Moves', i).flags = { mirror: 1, ...move.flags }; } } + pokemon: { + inherit: true, + getActionSpeed() { + let speed = this.getStat('spe', false, false); + const trickRoomCheck = this.battle.ruleTable.has('twisteddimensionmod') ? + !this.battle.field.getPseudoWeather('trickroom') : this.battle.field.getPseudoWeather('trickroom'); + if (trickRoomCheck) { + speed = -speed; + } + return speed; + }, }, actions: { inherit: true, @@ -27,6 +38,15 @@ export const Scripts: ModdedBattleScriptsData = { // pokemon.lastMove is reset for all Pokemon on the field after a switch. This affects Mirror Move. for (const poke of this.battle.getAllActive()) poke.lastMove = null; if (this.battle.gen === 1) pokemon.side.lastSelectedMoveSlot = 0; + for (const poke of pokemon.foes()) { + if (poke.volatiles['partialtrappinglock'] && poke.moveSlots[poke.side.lastSelectedMoveSlot].id === 'metronome') { + // this is not done for Mirror Move, potentially resulting in a desync + poke.side.lastSelectedMove = 'metronome' as ID; + if (this.battle.queue.willMove(poke)) { + this.battle.queue.changeAction(poke, { choice: 'move', poke, moveid: 'metronome' }); + } + } + } if (!pokemon.side.faintedThisTurn && pokemon.draggedIn !== this.battle.turn) { this.battle.runEvent('AfterSwitchInSelf', pokemon); } diff --git a/data/mods/gen5/moves.ts b/data/mods/gen5/moves.ts index bb0f793430..4c0eff62aa 100644 --- a/data/mods/gen5/moves.ts +++ b/data/mods/gen5/moves.ts @@ -663,12 +663,13 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, condition: { inherit: true, - onTryHit(target, source, effect) { + onTryHit(target, source, move) { // Quick Guard only blocks moves with a natural positive priority // (e.g. it doesn't block 0 priority moves boosted by Prankster) - if (effect && (effect.id === 'feint' || this.dex.moves.get(effect.id).priority <= 0)) { + if (move.id === 'feint' || this.dex.moves.get(move.id).priority <= 0) { return; } + if (this.checkMoveBreaksProtect(move, source, target)) return; this.add('-activate', target, 'Quick Guard'); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { @@ -685,6 +686,19 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, priority: 3, flags: { noassist: 1, failcopycat: 1 }, + condition: { + inherit: true, + onFoeRedirectTarget(target, source, source2, move) { + const ragePowderUser = this.effectState.target; + if (ragePowderUser.isSkyDropped()) return; + + if (this.validTarget(ragePowderUser, source, move.target)) { + if (move.smartTarget) move.smartTarget = false; + this.debug("Rage Powder redirected target of move"); + return ragePowderUser; + } + }, + }, }, reflect: { inherit: true, diff --git a/data/mods/gen6/moves.ts b/data/mods/gen6/moves.ts index 81483dc239..dbbbc5d088 100644 --- a/data/mods/gen6/moves.ts +++ b/data/mods/gen6/moves.ts @@ -169,14 +169,12 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { inherit: true, condition: { inherit: true, - onTryHit(target, source, effect) { + onTryHit(target, source, move) { // Wide Guard blocks damaging spread moves - if ( - effect && - (effect.category === 'Status' || (effect.target !== 'allAdjacent' && effect.target !== 'allAdjacentFoes')) - ) { + if (move.category === 'Status' || (move?.target !== 'allAdjacent' && move.target !== 'allAdjacentFoes')) { return; } + if (this.checkMoveBreaksProtect(move, source, target, false)) return; this.add('-activate', target, 'move: Wide Guard'); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { diff --git a/data/mods/gen6megasrevisited/abilities.ts b/data/mods/gen6megasrevisited/abilities.ts deleted file mode 100644 index 8482c1cfc7..0000000000 --- a/data/mods/gen6megasrevisited/abilities.ts +++ /dev/null @@ -1,369 +0,0 @@ -export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { - 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, - gen: 6, - }, - pocketdimension: { - shortDesc: "This Pokemon switches out after using a status move.", - onModifyMove(move, pokemon) { - if (move.category === 'Status') { - move.selfSwitch = true; - this.add('-ability', pokemon, 'Pocket Dimension'); - this.add('-message', `${pokemon.name} will switch out if this moves lands!`); - } - }, - name: "Pocket Dimension", - rating: 4.5, - }, - grassysurge: { - inherit: true, - gen: 6, - }, - mistysurge: { - inherit: true, - gen: 6, - }, - neutralizinggas: { - inherit: true, - // Ability suppression cancelled in scripts.ts - // new Ability suppression implemented in scripts.ts - onSwitchIn: undefined, // no inherit - onEnd: undefined, // no inherit - onStart(pokemon) { - this.add('-ability', pokemon, 'Neutralizing Gas'); - }, - // onModifyPriority implemented in relevant abilities - onFoeBeforeMovePriority: 13, - onFoeBeforeMove(attacker, defender, move) { - attacker.addVolatile('neutralizinggas'); - }, - condition: { - onAfterMove(pokemon) { - pokemon.removeVolatile('neutralizinggas'); - }, - }, - flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1 }, - desc: "While this Pokemon is active, opposing Pokemon's moves and their effects ignore its own Ability. 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.", - shortDesc: "While this Pokemon is active, opposing Pokemon's Ability has no effect when it uses moves.", - gen: 6, - }, - nostalgiatrip: { - shortDesc: "This Pokemon's moves have the damage categories they would have in Gen 3. Fairy-type moves are Special.", - onStart(pokemon) { - this.add('-ability', pokemon, 'Nostalgia Trip'); - this.add('-message', `This Pokemon is experiencing a nostalgia trip!`); - }, - onModifyMovePriority: 8, - onModifyMove(move, pokemon) { - if (move.category === "Status") return; - if (['Fire', 'Water', 'Grass', 'Electric', 'Dark', 'Psychic', 'Dragon', 'Fairy', 'Ice'].includes(move.type)) { - move.category = "Special"; - } else { - move.category = "Physical"; - } - }, - name: "Nostalgia Trip", - rating: 4, - gen: 6, - }, - weatherreport: { - onBeforeMovePriority: 0.5, - onBeforeMove(target, source, move) { - if (move.type === 'Fire') { - this.field.setWeather('sunnyday'); - } else if (move.type === 'Water') { - this.field.setWeather('raindance'); - } - }, - name: "Weather Report", - shortDesc: "Before using a Water or Fire-type move, this Pokemon sets Rain Dance or Sunny Day respectively.", - rating: 4, - gen: 6, - }, - armortail: { - inherit: true, - gen: 6, - }, - brainpower: { - onModifySpAPriority: 5, - onModifySpA(spa) { - return this.chainModify(2); - }, - name: "Brain Power", - shortDesc: "This Pokemon's Special Attack is doubled.", - rating: 5, - }, - neuroforce: { - inherit: true, - gen: 6, - }, - bugzapper: { - onTryHit(target, source, move) { - if (target !== source && move.type === 'Bug') { - if (!source.addVolatile('trapped', target, move, 'trapper')) { - this.add('-immune', target, '[from] ability: Bug Zapper'); - } - return null; - } - }, - name: "Bug Zapper", - shortDesc: "This Pokemon is immune to Bug-type moves and traps the foe if hit by one.", - rating: 5, - }, - exoskeleton: { - onSourceModifyDamage(damage, source, target, move) { - if (move.category === 'Physical') { - return this.chainModify(0.5); - } - }, - name: "Exoskeleton", - shortDesc: "This Pokemon receives 1/2 damage from physical attacks; Hazard immunity.", - rating: 4, - }, - icescales: { - inherit: true, - onModifyAtkPriority: 5, - onModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Ice') { - this.debug('Ice Scales boost'); - return this.chainModify(1.5); - } - }, - onModifySpAPriority: 5, - onModifySpA(atk, attacker, defender, move) { - if (move.type === 'Ice') { - this.debug('Ice Scales boost'); - return this.chainModify(1.5); - } - }, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - shortDesc: "This Pokemon receives 1/2 damage from special attacks. Ice moves have 1.5x power. Hail immunity.", - gen: 6, - }, - eartheater: { - inherit: true, - onDamage(damage, target, source, effect) { - if (effect && (effect.id === 'stealthrock' || effect.id === 'spikes')) { - this.heal(damage); - return false; - } - }, - shortDesc: "Heals 1/4 of its max HP when hit by Ground; Ground immunity. Healed by Spikes and Stealth Rock.", - gen: 6, - }, - toxicchain: { - inherit: true, - gen: 6, - }, - shellejection: { - onModifyMovePriority: -1, - onModifyMove(move, attacker) { - if (move.category === 'Special') { - attacker.addVolatile('shellejection'); - this.add('-ability', attacker, 'Shell Ejection'); - this.add('-message', `${attacker.name} is getting ready to leave the battlefield!`); - this.add('-message', `${attacker.name} can no longer use status moves!`); - } - }, - condition: { - duration: 2, - onDisableMove(pokemon) { - for (const moveSlot of pokemon.moveSlots) { - const move = this.dex.moves.get(moveSlot.id); - if (move.category === 'Status' && move.id !== 'mefirst') { - pokemon.disableMove(moveSlot.id); - } - } - }, - onSwitchOut(pokemon) { - pokemon.heal(pokemon.baseMaxhp / 3); - }, - onEnd(pokemon) { - this.add('-ability', pokemon, 'Shell Ejection'); - this.add('-message', `${pokemon.name} ejected itself from its shell!`); - pokemon.heal(pokemon.baseMaxhp / 3); - pokemon.switchFlag = true; - }, - }, - name: "Shell Ejection", - rating: 3.5, - gen: 6, - shortDesc: "On using Special move: switching heals 1/3, can't use status, switches out at end of next turn.", - }, - sharpness: { - inherit: true, - gen: 6, - }, - dauntlessshield: { - onStart(pokemon) { - this.boost({ def: 1 }, pokemon); - pokemon.addVolatile('dauntlessshield'); - }, - onResidualOrder: 6, - onResidual(pokemon) { - if (pokemon.positiveBoosts()) { - this.heal(pokemon.baseMaxhp / 16); - this.add('-message', `${pokemon.name}'s shield gives it strength!`); - } - }, - name: "Dauntless Shield", - rating: 5, - num: 235, - shortDesc: "+1 Defense on switch-in. Heals 1/16 of max HP if it has a positive boost.", - gen: 6, - }, - confidence: { - onSourceAfterFaint(length, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.boost({ spa: length }, source); - } - }, - name: "Confidence", - rating: 3, - shortDesc: "This Pokemon's Sp. Atk is raised by 1 stage if it attacks and KOes another Pokemon.", - gen: 6, - }, - electricsurge: { - inherit: true, - gen: 6, - }, - goodasgold: { - inherit: true, - gen: 6, - }, - opportunist: { - inherit: true, - onUpdate(pokemon) { - let activate = false; - const boosts: SparseBoostsTable = {}; - let i: BoostID; - for (i in pokemon.boosts) { - if (pokemon.boosts[i] < 0) { - activate = true; - boosts[i] = 0; - } - } - if (this.effectState.herb) return; - if (activate) { - pokemon.setBoost(boosts); - this.effectState.herb = true; - this.add('-ability', pokemon, 'Opportunist'); - this.add('-clearnegativeboost', pokemon, '[silent]'); - } - }, - onSwitchIn(pokemon) { - delete this.effectState.herb; - }, - shortDesc: "Copies foe's stat gains as they happen. Resets negative stat changes once per switch-in.", - gen: 6, - }, - intoxicate: { - 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 = 'Poison'; - move.typeChangerBoosted = this.effect; - } - }, - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (move.typeChangerBoosted) return this.chainModify([5325, 4096]); - }, - name: "Intoxicate", - rating: 4, - shortDesc: "This Pokemon's Normal-type moves become Poison-type and have 1.3x power.", - }, - dragonsgale: { - onStart(source) { - this.field.setWeather('deltastream'); - }, - onAnySetWeather(target, source, weather) { - const strongWeathers = ['desolateland', 'primordialsea', 'deltastream']; - if (this.field.getWeather().id === 'deltastream' && !strongWeathers.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('dragonsgale')) { - this.field.weatherState.source = target; - return; - } - } - this.field.clearWeather(); - }, - onDamage(damage, target, source, effect) { - if (effect && (effect.id === 'stealthrock' || effect.id === 'spikes')) { - return damage / 2; - } - }, - flags: {}, - name: "Dragon's Gale", - shortDesc: "On switch-in, sets Delta Stream. User takes halved damage from hazards.", - rating: 5, - }, - parentalbond: { - onPrepareHit(source, target, move) { - if (move.category === 'Status' || move.selfdestruct || move.multihit) return; - if ([ - 'endeavor', 'seismictoss', 'psywave', 'nightshade', 'sonicboom', 'dragonrage', - 'superfang', 'naturesmadness', 'bide', 'counter', 'mirrorcoat', 'metalburst', - ].includes(move.id)) return; - if (!move.spreadHit && !move.isZ && !move.isMax) { - move.multihit = 2; - move.multihitType = 'parentalbond'; - } - }, - 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, - shortDesc: "This Pokemon's damaging moves hit twice. The second hit has its damage quartered.", - num: 184, - }, - - // for ngas - galewings: { - // for ngas - inherit: true, - onModifyPriority(priority, pokemon, target, move) { - for (const poke of this.getAllActive()) { - if (poke.hasAbility('neutralizinggas') && poke.side.id !== pokemon.side.id && !poke.abilityState.ending) { - return; - } - } - if (move && move.type === 'Flying') return priority + 1; - }, - }, - prankster: { - // for ngas - inherit: true, - onModifyPriority(priority, pokemon, target, move) { - for (const poke of this.getAllActive()) { - if (poke.hasAbility('neutralizinggas') && poke.side.id !== pokemon.side.id && !poke.abilityState.ending) { - return; - } - } - if (move?.category === 'Status') { - move.pranksterBoosted = true; - return priority + 1; - } - }, - }, -}; diff --git a/data/mods/gen6megasrevisited/formats-data.ts b/data/mods/gen6megasrevisited/formats-data.ts deleted file mode 100644 index a5d97dda38..0000000000 --- a/data/mods/gen6megasrevisited/formats-data.ts +++ /dev/null @@ -1,26 +0,0 @@ -export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { - blaziken: { - tier: "OU", - }, - blazikenmega: { - tier: "OU", - }, - gengarmega: { - tier: "OU", - }, - kangaskhanmega: { - tier: "OU", - }, - lucariomega: { - tier: "OU", - }, - mawilemega: { - tier: "OU", - }, - sableyemega: { - tier: "OU", - }, - salamencemega: { - tier: "OU", - }, -}; diff --git a/data/mods/gen6megasrevisited/items.ts b/data/mods/gen6megasrevisited/items.ts deleted file mode 100644 index 90f2c22c71..0000000000 --- a/data/mods/gen6megasrevisited/items.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { - meteorite: { - name: "Meteorite", - spritenum: 615, - megaStone: { "Rayquaza": "Rayquaza-Mega" }, - itemUser: ["Rayquaza"], - onTakeItem(item, source) { - return !item.megaStone?.[source.baseSpecies.baseSpecies]; - }, - desc: "If held by a Rayquaza, this item allows it to Mega Evolve in battle.", - }, -}; diff --git a/data/mods/gen6megasrevisited/moves.ts b/data/mods/gen6megasrevisited/moves.ts deleted file mode 100644 index b8e3a95b36..0000000000 --- a/data/mods/gen6megasrevisited/moves.ts +++ /dev/null @@ -1,77 +0,0 @@ -export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { - stealthrock: { - inherit: true, - condition: { - // this is a side condition - onSideStart(side) { - this.add('-sidestart', side, 'move: Stealth Rock'); - }, - onSwitchIn(pokemon) { - if (pokemon.hasItem('heavydutyboots') || pokemon.hasAbility('exoskeleton')) return; - const typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6); - this.damage(pokemon.maxhp * (2 ** typeMod) / 8); - }, - }, - }, - 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++; - }, - onSwitchIn(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') || pokemon.hasAbility('exoskeleton')) { - // do nothing - } else if (this.effectState.layers >= 2) { - pokemon.trySetStatus('tox', pokemon.side.foe.active[0]); - } else { - pokemon.trySetStatus('psn', pokemon.side.foe.active[0]); - } - }, - }, - }, - spikes: { - inherit: true, - 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++; - }, - onSwitchIn(pokemon) { - if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots') || pokemon.hasAbility('exoskeleton')) return; - const damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4 - this.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24); - }, - }, - }, - stickyweb: { - inherit: true, - condition: { - onSideStart(side) { - this.add('-sidestart', side, 'move: Sticky Web'); - }, - onSwitchIn(pokemon) { - if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots') || pokemon.hasAbility('exoskeleton')) return; - this.add('-activate', pokemon, 'move: Sticky Web'); - this.boost({ spe: -1 }, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb')); - }, - }, - }, -}; diff --git a/data/mods/gen6megasrevisited/pokedex.ts b/data/mods/gen6megasrevisited/pokedex.ts deleted file mode 100644 index 70821f3c7f..0000000000 --- a/data/mods/gen6megasrevisited/pokedex.ts +++ /dev/null @@ -1,249 +0,0 @@ -export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { - audinomega: { - inherit: true, - types: ["Normal", "Electric"], - baseStats: { hp: 103, atk: 60, def: 120, spa: 110, spd: 97, spe: 55 }, - abilities: { 0: "Regenerator" }, - }, - houndoommega: { - inherit: true, - types: ["Dark", "Fire"], - baseStats: { hp: 75, atk: 90, def: 90, spa: 140, spd: 90, spe: 115 }, - abilities: { 0: "Merciless" }, - }, - lucariomega: { - inherit: true, - types: ["Fighting", "Steel"], - baseStats: { hp: 70, atk: 125, def: 70, spa: 140, spd: 94, spe: 126 }, - abilities: { 0: "Lightning Rod" }, - }, - banettemega: { - inherit: true, - types: ["Ghost", "Steel"], - baseStats: { hp: 64, atk: 149, def: 75, spa: 83, spd: 83, spe: 101 }, - abilities: { 0: "Pocket Dimension" }, - }, - glaliemega: { - inherit: true, - types: ["Ice", "Steel"], - baseStats: { hp: 80, atk: 160, def: 70, spa: 95, spd: 70, spe: 105 }, - abilities: { 0: "Refrigerate" }, - }, - venusaurmega: { - inherit: true, - types: ["Grass", "Poison"], - baseStats: { hp: 80, atk: 82, def: 123, spa: 120, spd: 120, spe: 100 }, - abilities: { 0: "Grassy Surge" }, - }, - blastoisemega: { - inherit: true, - types: ["Water", "Fairy"], - baseStats: { hp: 79, atk: 83, def: 130, spa: 135, spd: 105, spe: 98 }, - abilities: { 0: "Misty Surge" }, - }, - charizardmegay: { - inherit: true, - types: ["Fire", "Flying"], - baseStats: { hp: 78, atk: 94, def: 93, spa: 159, spd: 110, spe: 100 }, - abilities: { 0: "Dragon's Gale" }, - }, - alakazammega: { - inherit: true, - types: ["Psychic", "Ice"], - baseStats: { hp: 55, atk: 50, def: 75, spa: 155, spd: 125, spe: 140 }, - abilities: { 0: "Magic Guard" }, - }, - pinsirmega: { - inherit: true, - types: ["Bug", "Ice"], - baseStats: { hp: 65, atk: 150, def: 110, spa: 80, spd: 85, spe: 110 }, - abilities: { 0: "Mountaineer" }, - }, - gengarmega: { - inherit: true, - types: ["Ghost", "Poison"], - baseStats: { hp: 60, atk: 65, def: 105, spa: 155, spd: 105, spe: 110 }, - abilities: { 0: "Neutralizing Gas" }, - }, - aerodactylmega: { - inherit: true, - types: ["Rock", "Flying"], - baseStats: { hp: 80, atk: 140, def: 65, spa: 85, spd: 100, spe: 145 }, - abilities: { 0: "Nostalgia Trip" }, - }, - steelixmega: { - inherit: true, - types: ["Steel", "Ground"], - baseStats: { hp: 75, atk: 135, def: 210, spa: 55, spd: 105, spe: 30 }, - abilities: { 0: "Flash Fire" }, - weightkg: 999.9, - }, - altariamega: { - inherit: true, - types: ["Dragon", "Fairy"], - baseStats: { hp: 75, atk: 90, def: 90, spa: 140, spd: 115, spe: 80 }, - abilities: { 0: "Weather Report" }, - }, - sceptilemega: { - inherit: true, - types: ["Grass", "Dragon"], - baseStats: { hp: 70, atk: 95, def: 79, spa: 145, spd: 99, spe: 142 }, - abilities: { 0: "Armor Tail" }, - }, - swampertmega: { - inherit: true, - types: ["Water", "Poison"], - baseStats: { hp: 100, atk: 145, def: 110, spa: 85, spd: 110, spe: 85 }, - abilities: { 0: "Toxic Chain" }, - }, - manectricmega: { - inherit: true, - types: ["Electric"], - baseStats: { hp: 70, atk: 75, def: 80, spa: 135, spd: 85, spe: 130 }, - abilities: { 0: "Bug Zapper" }, - }, - absolmega: { - inherit: true, - types: ["Dark", "Fairy"], - baseStats: { hp: 65, atk: 130, def: 60, spa: 135, spd: 60, spe: 115 }, - abilities: { 0: "Neuroforce" }, - }, - medichammega: { - inherit: true, - types: ["Fighting", "Psychic"], - baseStats: { hp: 60, atk: 60, def: 100, spa: 90, spd: 100, spe: 100 }, - abilities: { 0: "Brain Power" }, - }, - sableyemega: { - inherit: true, - types: ["Dark", "Ghost"], - baseStats: { hp: 50, atk: 95, def: 115, spa: 85, spd: 115, spe: 20 }, - }, - beedrillmega: { - inherit: true, - types: ["Bug", "Rock"], - baseStats: { hp: 65, atk: 140, def: 85, spa: 45, spd: 85, spe: 75 }, - abilities: { 0: "Exoskeleton" }, - }, - mawilemega: { - inherit: true, - types: ["Steel", "Fairy"], - baseStats: { hp: 50, atk: 90, def: 125, spa: 70, spd: 95, spe: 50 }, - abilities: { 0: "Huge Power" }, - }, - abomasnowmega: { - inherit: true, - types: ["Grass"], - abilities: { 0: "Ice Scales" }, - }, - cameruptmega: { - inherit: true, - types: ["Fire", "Ground"], - baseStats: { hp: 70, atk: 80, def: 140, spa: 135, spd: 115, spe: 20 }, - abilities: { 0: "Earth Eater" }, - }, - slowbromega: { - inherit: true, - types: ["Water", "Psychic"], - baseStats: { hp: 95, atk: 75, def: 150, spa: 120, spd: 120, spe: 30 }, - abilities: { 0: "Shell Ejection" }, - }, - gallademega: { - inherit: true, - types: ["Psychic", "Fighting"], - baseStats: { hp: 68, atk: 150, def: 100, spa: 75, spd: 127, spe: 98 }, - abilities: { 0: "Sharpness" }, - }, - ampharosmega: { - inherit: true, - types: ["Electric", "Dragon"], - baseStats: { hp: 90, atk: 95, def: 95, spa: 165, spd: 110, spe: 55 }, - abilities: { 0: "Mega Launcher" }, - }, - gyaradosmega: { - inherit: true, - types: ["Water", "Flying"], - baseStats: { hp: 95, atk: 130, def: 109, spa: 85, spd: 130, spe: 91 }, - abilities: { 0: "Aerilate" }, - }, - heracrossmega: { - inherit: true, - types: ["Bug", "Fighting"], - baseStats: { hp: 80, atk: 150, def: 150, spa: 40, spd: 110, spe: 70 }, - abilities: { 0: "Iron Barbs" }, - }, - sharpedomega: { - inherit: true, - types: ["Water", "Electric"], - baseStats: { hp: 70, atk: 130, def: 55, spa: 145, spd: 55, spe: 105 }, - abilities: { 0: "No Guard" }, - }, - gardevoirmega: { - inherit: true, - types: ["Psychic", "Fairy"], - baseStats: { hp: 68, atk: 65, def: 100, spa: 150, spd: 127, spe: 108 }, - }, - aggronmega: { - inherit: true, - types: ["Steel"], - baseStats: { hp: 70, atk: 145, def: 185, spa: 85, spd: 85, spe: 60 }, - abilities: { 0: "Dauntless Shield" }, - }, - kangaskhanmega: { - inherit: true, - types: ["Normal", "Ground"], - baseStats: { hp: 105, atk: 125, def: 105, spa: 50, spd: 105, spe: 100 }, - }, - salamencemega: { - inherit: true, - types: ["Dragon", "Flying"], - baseStats: { hp: 95, atk: 135, def: 105, spa: 155, spd: 105, spe: 105 }, - abilities: { 0: "Confidence" }, - }, - garchompmega: { - inherit: true, - types: ["Dragon", "Ground"], - baseStats: { hp: 108, atk: 150, def: 115, spa: 140, spd: 85, spe: 102 }, - abilities: { 0: "Water Absorb" }, - }, - tyranitarmega: { - inherit: true, - types: ["Rock", "Electric"], - baseStats: { hp: 100, atk: 144, def: 120, spa: 110, spd: 144, spe: 82 }, - abilities: { 0: "Electric Surge" }, - }, - latiasmega: { - inherit: true, - abilities: { 0: "Trace" }, - }, - latiosmega: { - inherit: true, - baseStats: { hp: 80, atk: 140, def: 100, spa: 150, spd: 120, spe: 110 }, - abilities: { 0: "Opportunist" }, - }, - dianciemega: { - inherit: true, - abilities: { 0: "Good As Gold" }, - }, - blazikenmega: { - inherit: true, - baseStats: { hp: 80, atk: 150, def: 80, spa: 120, spd: 90, spe: 110 }, - abilities: { 0: "Regenerator" }, - }, - mewtwomegax: { - inherit: true, - types: ["Psychic", "Poison"], - baseStats: { hp: 106, atk: 140, def: 130, spa: 154, spd: 120, spe: 130 }, - abilities: { 0: "Intoxicate" }, - }, - mewtwomegay: { - inherit: true, - types: ["Psychic", "Water"], - baseStats: { hp: 106, atk: 120, def: 110, spa: 194, spd: 130, spe: 120 }, - abilities: { 0: "Levitate" }, - }, - rayquazamega: { - inherit: true, - requiredItem: "Meteorite", - }, -}; diff --git a/data/mods/gen6megasrevisited/rulesets.ts b/data/mods/gen6megasrevisited/rulesets.ts deleted file mode 100644 index b1a52de493..0000000000 --- a/data/mods/gen6megasrevisited/rulesets.ts +++ /dev/null @@ -1,33 +0,0 @@ -export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { - 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.species.forme.startsWith('Mega') || pokemon.species.forme.startsWith('Ultra')) { - this.add('-start', pokemon, 'typechange', pokemon.getTypes(true).join('/'), '[silent]'); - } - }, - onAfterMega(pokemon) { - this.add('-start', pokemon, 'typechange', pokemon.getTypes(true).join('/'), '[silent]'); - const species = pokemon.species; - let buf = `${species.name} `; - buf += ``; - buf += `${species.types[0]}`; - if (species.types[1]) { - buf += `${species.types[1]}`; - } - buf += ` `; - buf += `${species.abilities[0]}`; - const stats = []; - let stat: StatID; - for (stat in species.baseStats) { - const statNames: { [k in StatID]: string } = { hp: "HP", atk: "Atk", def: "Def", spa: "SpA", spd: "SpD", spe: "Spe" }; - stats.push(`${statNames[stat]}
${species.baseStats[stat]}
`); - } - buf += `${stats.join(' ')}`; - buf += ``; - this.add(`raw|
  • ${buf}
`); - }, - }, -}; diff --git a/data/mods/gen6megasrevisited/scripts.ts b/data/mods/gen6megasrevisited/scripts.ts deleted file mode 100644 index fe185cc6a0..0000000000 --- a/data/mods/gen6megasrevisited/scripts.ts +++ /dev/null @@ -1,237 +0,0 @@ -export const Scripts: ModdedBattleScriptsData = { - gen: 6, - inherit: 'gen6', - actions: { - // for parental bond - modifyDamage( - baseDamage: number, pokemon: Pokemon, target: Pokemon, move: ActiveMove, suppressMessages = false - ) { - 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 = 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 = 0.25; - this.battle.debug(`Parental Bond modifier: ${bondModifier}`); - baseDamage = this.battle.modify(baseDamage, bondModifier); - } - baseDamage = this.battle.runEvent('WeatherModifyDamage', pokemon, target, move, baseDamage); - const isCrit = target.getMoveHitData(move).crit; - if (isCrit) { - baseDamage = tr(baseDamage * (move.critModifier || (this.battle.gen >= 6 ? 1.5 : 2))); - } - baseDamage = this.battle.randomizer(baseDamage); - 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; - } - 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); - } - 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: { - // for neutralizing gas - ignoringAbility() { - if (this.battle.gen >= 5 && !this.isActive) return true; - if (this.getAbility().flags['notransform'] && this.transformed) return true; - if (this.getAbility().flags['cantsuppress']) return false; - if (this.volatiles['gastroacid']) return true; - if (this.ability === ('neutralizinggas' as ID)) return false; - if (this.volatiles['neutralizinggas']) return true; - return false; - }, - }, - init() { - this.modData("Learnsets", "lucario").learnset.meteormash = ["6L1"]; - this.modData("Learnsets", "lucario").learnset.machpunch = ["6L1"]; - this.modData("Learnsets", "houndoom").learnset.toxicspikes = ["6L1"]; - this.modData("Learnsets", "houndoom").learnset.venoshock = ["6L1"]; - this.modData("Learnsets", "houndoom").learnset.hex = ["6L1"]; - this.modData("Learnsets", "audino").learnset.discharge = ["6L1"]; - this.modData("Learnsets", "audino").learnset.voltswitch = ["6L1"]; - this.modData("Learnsets", "audino").learnset.chargebeam = ["6L1"]; - this.modData("Learnsets", "audino").learnset.charge = ["6L1"]; - this.modData("Learnsets", "audino").learnset.zapcannon = ["6L1"]; - this.modData("Learnsets", "glalie").learnset.thunderfang = ["6L1"]; - this.modData("Learnsets", "glalie").learnset.partingshot = ["6L1"]; - this.modData("Learnsets", "glalie").learnset.boomburst = ["6L1"]; - this.modData("Learnsets", "banette").learnset.ironhead = ["6L1"]; - this.modData("Learnsets", "banette").learnset.metalsound = ["6L1"]; - this.modData("Learnsets", "banette").learnset.powder = ["6L1"]; - this.modData("Learnsets", "banette").learnset.stealthrock = ["6L1"]; - this.modData("Learnsets", "banette").learnset.defog = ["6L1"]; - this.modData("Learnsets", "venusaur").learnset.psychic = ["6L1"]; - this.modData("Learnsets", "venusaur").learnset.calmmind = ["6L1"]; - this.modData("Learnsets", "blastoise").learnset.moonblast = ["6L1"]; - this.modData("Learnsets", "blastoise").learnset.mistyterrain = ["6L1"]; - this.modData("Learnsets", "blastoise").learnset.taunt = ["6L1"]; - this.modData("Learnsets", "blastoise").learnset.drainingkiss = ["6L1"]; - this.modData("Learnsets", "blastoise").learnset.dazzlinggleam = ["6L1"]; - this.modData("Learnsets", "charizard").learnset.calmmind = ["6L1"]; - this.modData("Learnsets", "charizard").learnset.hurricane = ["6L1"]; - this.modData("Learnsets", "charizard").learnset.lavaplume = ["6L1"]; - this.modData("Learnsets", "gengar").learnset.reflecttype = ["6L1"]; - this.modData("Learnsets", "gengar").learnset.calmmind = ["6L1"]; - this.modData("Learnsets", "alakazam").learnset.blizzard = ["6L1"]; - this.modData("Learnsets", "alakazam").learnset.flashcannon = ["6L1"]; - this.modData("Learnsets", "alakazam").learnset.icebeam = ["6L1"]; - this.modData("Learnsets", "alakazam").learnset.hail = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.hail = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.megahorn = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.uturn = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.iceshard = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.iciclecrash = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.icebeam = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.blizzard = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.roost = ["6L1"]; - this.modData("Learnsets", "pinsir").learnset.iciclespear = ["6L1"]; - this.modData("Learnsets", "aerodactyl").learnset.powergem = ["6L1"]; - this.modData("Learnsets", "aerodactyl").learnset.shadowball = ["6L1"]; - this.modData("Learnsets", "aerodactyl").learnset.hurricane = ["6L1"]; - this.modData("Learnsets", "steelix").learnset.heatcrash = ["6L1"]; - this.modData("Learnsets", "steelix").learnset.rapidspin = ["6L1"]; - this.modData("Learnsets", "steelix").learnset.smackdown = ["6L1"]; - this.modData("Learnsets", "altaria").learnset.scald = ["6L1"]; - this.modData("Learnsets", "altaria").learnset.hydropump = ["6L1"]; - this.modData("Learnsets", "altaria").learnset.thunder = ["6L1"]; - this.modData("Learnsets", "sceptile").learnset.calmmind = ["6L1"]; - this.modData("Learnsets", "sceptile").learnset.sludgewave = ["6L1"]; - this.modData("Learnsets", "swampert").learnset.sludgebomb = ["6L1"]; - this.modData("Learnsets", "swampert").learnset.bulkup = ["6L1"]; - this.modData("Learnsets", "swampert").learnset.toxicspikes = ["6L1"]; - this.modData("Learnsets", "swampert").learnset.aquajet = ["6L1"]; - this.modData("Learnsets", "swampert").learnset.gunkshot = ["6L1"]; - this.modData("Learnsets", "swampert").learnset.poisonjab = ["6L1"]; - this.modData("Learnsets", "pidgeot").learnset.focusblast = ["6L1"]; - this.modData("Learnsets", "absol").learnset.closecombat = ["6L1"]; - this.modData("Learnsets", "absol").learnset.moonblast = ["6L1"]; - this.modData("Learnsets", "absol").learnset.moonlight = ["6L1"]; - this.modData("Learnsets", "medicham").learnset.aurasphere = ["6L1"]; - this.modData("Learnsets", "medicham").learnset.thunderbolt = ["6L1"]; - this.modData("Learnsets", "medicham").learnset.closecombat = ["6L1"]; - this.modData("Learnsets", "medicham").learnset.gunkshot = ["6L1"]; - this.modData("Learnsets", "medicham").learnset.healingwish = ["6L1"]; - this.modData("Learnsets", "beedrill").learnset.earthquake = ["6L1"]; - this.modData("Learnsets", "beedrill").learnset.stoneedge = ["6L1"]; - this.modData("Learnsets", "beedrill").learnset.rockslide = ["6L1"]; - this.modData("Learnsets", "beedrill").learnset.smackdown = ["6L1"]; - this.modData("Learnsets", "beedrill").learnset.stealthrock = ["6L1"]; - this.modData("Learnsets", "beedrill").learnset.diamondstorm = ["6L1"]; - this.modData("Learnsets", "mawile").learnset.firepunch = ["6L1"]; - this.modData("Learnsets", "mawile").learnset.rockslide = ["6L1"]; - this.modData("Learnsets", "mawile").learnset.slackoff = ["6L1"]; - this.modData("Learnsets", "camerupt").learnset.morningsun = ["6L1"]; - this.modData("Learnsets", "abomasnow").learnset.spikyshield = ["6L1"]; - this.modData("Learnsets", "abomasnow").learnset.earthpower = ["6L1"]; - this.modData("Learnsets", "abomasnow").learnset.hornleech = ["6L1"]; - this.modData("Learnsets", "gallade").learnset.sacredsword = ["6L1"]; - this.modData("Learnsets", "gallade").learnset.machpunch = ["6L1"]; - this.modData('Moves', 'aerialace').flags.slicing = 1; - this.modData('Moves', 'aircutter').flags.slicing = 1; - this.modData('Moves', 'airslash').flags.slicing = 1; - this.modData('Moves', 'behemothblade').flags.slicing = 1; - this.modData('Moves', 'crosspoison').flags.slicing = 1; - this.modData('Moves', 'cut').flags.slicing = 1; - this.modData('Moves', 'furycutter').flags.slicing = 1; - this.modData('Moves', 'nightslash').flags.slicing = 1; - this.modData('Moves', 'psychocut').flags.slicing = 1; - this.modData('Moves', 'razorleaf').flags.slicing = 1; - this.modData('Moves', 'razorshell').flags.slicing = 1; - this.modData('Moves', 'sacredsword').flags.slicing = 1; - this.modData('Moves', 'slash').flags.slicing = 1; - this.modData('Moves', 'solarblade').flags.slicing = 1; - this.modData('Moves', 'xscissor').flags.slicing = 1; - this.modData("Learnsets", "ampharos").learnset.waterpulse = ["6L1"]; - this.modData("Learnsets", "ampharos").learnset.aurasphere = ["6L1"]; - this.modData("Learnsets", "ampharos").learnset.darkpulse = ["6L1"]; - this.modData("Learnsets", "ampharos").learnset.defog = ["6L1"]; - this.modData("Learnsets", "ampharos").learnset.slackoff = ["6L1"]; - this.modData("Learnsets", "heracross").learnset.healorder = ["6L1"]; - this.modData("Learnsets", "heracross").learnset.circlethrow = ["6L1"]; - this.modData("Learnsets", "heracross").learnset.spikes = ["6L1"]; - this.modData("Learnsets", "heracross").learnset.icepunch = ["6L1"]; - this.modData("Learnsets", "sharpedo").learnset.thunder = ["6L1"]; - this.modData("Learnsets", "gardevoir").learnset.rapidspin = ["6L1"]; - this.modData("Learnsets", "gardevoir").learnset.mysticalfire = ["6L1"]; - this.modData("Learnsets", "aggron").learnset.voltswitch = ["6L1"]; - this.modData("Learnsets", "kangaskhan").learnset.milkdrink = ["6L1"]; - this.modData("Learnsets", "salamence").learnset.hurricane = ["6L1"]; - this.modData("Learnsets", "salamence").learnset.airslash = ["6L1"]; - this.modData("Learnsets", "salamence").learnset.ironhead = ["6L1"]; - this.modData("Learnsets", "tyranitar").learnset.wildcharge = ["6L1"]; - this.modData("Learnsets", "tyranitar").learnset.waterfall = ["6L1"]; - this.modData("Learnsets", "diancie").learnset.spikyshield = ["6L1"]; - this.modData("Learnsets", "blaziken").learnset.uturn = ["6L1"]; - this.modData("Learnsets", "blaziken").learnset.spikes = ["6L1"]; - this.modData("Learnsets", "blaziken").learnset.roost = ["6L1"]; - this.modData("Learnsets", "blaziken").learnset.closecombat = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.extremespeed = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.sludgewave = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.swordsdance = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.uturn = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.closecombat = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.drainpunch = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.machpunch = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.scald = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.surf = ["6L1"]; - this.modData("Learnsets", "mewtwo").learnset.hydropump = ["6L1"]; - this.modData("Learnsets", "rayquaza").learnset.coil = ["6L1"]; - this.modData("Learnsets", "rayquaza").learnset.defog = ["6L1"]; - }, -}; diff --git a/data/mods/gen6mixandmega/items.ts b/data/mods/gen6mixandmega/items.ts deleted file mode 100644 index f02eb9841b..0000000000 --- a/data/mods/gen6mixandmega/items.ts +++ /dev/null @@ -1,46 +0,0 @@ -export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { - blueorb: { - inherit: true, - onSwitchIn(pokemon) { - if (pokemon.isActive && !pokemon.species.isPrimal && !pokemon.transformed) { - // @ts-expect-error modded - const species: Species = this.actions.getMixedSpecies(pokemon.m.originalSpecies, 'Kyogre-Primal', pokemon); - if (pokemon.m.originalSpecies === 'Kyogre') { - pokemon.formeChange(species, this.effect, true); - } else { - pokemon.formeChange(species, this.effect, true); - pokemon.baseSpecies = species; - this.add('-start', pokemon, 'Blue Orb', '[silent]'); - } - } - }, - onTakeItem: false, - }, - redorb: { - inherit: true, - onSwitchIn(pokemon) { - if (pokemon.isActive && !pokemon.species.isPrimal && !pokemon.transformed) { - // @ts-expect-error modded - const species: Species = this.actions.getMixedSpecies(pokemon.m.originalSpecies, 'Groudon-Primal', pokemon); - if (pokemon.m.originalSpecies === 'Groudon') { - pokemon.formeChange(species, this.effect, true); - } else { - pokemon.formeChange(species, this.effect, true); - pokemon.baseSpecies = species; - this.add('-start', pokemon, 'Red Orb', '[silent]'); - const apparentSpecies = pokemon.illusion ? pokemon.illusion.species.name : pokemon.m.originalSpecies; - const oSpecies = this.dex.species.get(apparentSpecies); - if (pokemon.illusion) { - const types = oSpecies.types; - if (types.length > 1 || types[types.length - 1] !== 'Fire') { - this.add('-start', pokemon, 'typechange', (types[0] !== 'Fire' ? types[0] + '/' : '') + 'Fire', '[silent]'); - } - } else 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]'); - } - } - } - }, - onTakeItem: false, - }, -}; diff --git a/data/mods/gen6mixandmega/scripts.ts b/data/mods/gen6mixandmega/scripts.ts deleted file mode 100644 index e4b67ff9c7..0000000000 --- a/data/mods/gen6mixandmega/scripts.ts +++ /dev/null @@ -1,117 +0,0 @@ -export const Scripts: ModdedBattleScriptsData = { - gen: 6, - inherit: 'gen6', - init() { - for (const i in this.data.Items) { - if (!this.data.Items[i].megaStone) continue; - this.modData('Items', i).onTakeItem = false; - } - }, - actions: { - canMegaEvo(pokemon) { - if (pokemon.species.isMega || pokemon.species.isPrimal) return null; - - const item = pokemon.getItem(); - if (item.megaStone) { - const values = Object.values(item.megaStone); - if (values.includes(pokemon.name)) return null; - return values[0]; - } else if (pokemon.baseMoves.includes('dragonascent')) { - return 'Rayquaza-Mega'; - } else { - return null; - } - }, - runMegaEvo(pokemon) { - if (pokemon.species.isMega || pokemon.species.isPrimal) return false; - - const species: Species = (this as any).getMixedSpecies(pokemon.m.originalSpecies, pokemon.canMegaEvo, pokemon); - - // Do we have a proper sprite for it? Code for when megas actually exist - if (this.dex.species.get(pokemon.canMegaEvo as any).baseSpecies === pokemon.m.originalSpecies) { - pokemon.formeChange(species, pokemon.getItem(), true); - } 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.join('/') !== pokemon.species.types.join('/')) { - this.battle.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - } - - pokemon.canMegaEvo = false; - return true; - }, - getMixedSpecies(originalForme, formeChange, pokemon) { - const originalSpecies = this.dex.species.get(originalForme); - const formeChangeSpecies = this.dex.species.get(formeChange); - if (originalSpecies.baseSpecies === formeChangeSpecies.baseSpecies) { - return formeChangeSpecies; - } - const deltas = (this as any).getFormeChangeDeltas(formeChangeSpecies, pokemon); - const species = (this as any).mutateOriginalSpecies(originalSpecies, deltas); - return species; - }, - getFormeChangeDeltas(formeChangeSpecies, pokemon) { - // Should be fine as long as Necrozma-U doesn't get added or Game Freak makes me sad with some convoluted forme change - const baseSpecies = this.dex.species.get(formeChangeSpecies.isMega ? - formeChangeSpecies.battleOnly as string : formeChangeSpecies.baseSpecies); - const deltas: { - ability: string, - baseStats: SparseStatsTable, - weighthg: number, - heightm: number, - originalSpecies: string, - requiredItem: string | undefined, - type?: string, - formeType?: string, - isMega?: boolean, - } = { - ability: formeChangeSpecies.abilities['0'], - baseStats: {}, - weighthg: formeChangeSpecies.weighthg - baseSpecies.weighthg, - heightm: ((formeChangeSpecies.heightm * 10) - (baseSpecies.heightm * 10)) / 10, - originalSpecies: formeChangeSpecies.name, - requiredItem: formeChangeSpecies.requiredItem, - }; - let statId: StatID; - for (statId in formeChangeSpecies.baseStats) { - deltas.baseStats[statId] = formeChangeSpecies.baseStats[statId] - baseSpecies.baseStats[statId]; - } - let formeType: string | null = null; - if (formeChangeSpecies.types.length > baseSpecies.types.length) { - deltas.type = formeChangeSpecies.types[1]; - } else if (formeChangeSpecies.types.length < baseSpecies.types.length) { - deltas.type = baseSpecies.types[0]; - } else if (formeChangeSpecies.types[1] !== baseSpecies.types[1]) { - deltas.type = formeChangeSpecies.types[1]; - } - if (formeChangeSpecies.isMega && !formeType) formeType = 'Mega'; - if (formeChangeSpecies.isPrimal) formeType = 'Primal'; - if (formeType) deltas.formeType = formeType; - return deltas; - }, - mutateOriginalSpecies(speciesOrForme, deltas) { - if (!deltas) throw new TypeError("Must specify deltas!"); - const species = this.dex.deepClone(this.dex.species.get(speciesOrForme)); - species.abilities = { '0': deltas.ability }; - if (species.types[0] === deltas.type) { - species.types = [deltas.type]; - } else if (deltas.type) { - species.types = [species.types[0], deltas.type]; - } - const baseStats = species.baseStats; - for (const statName in baseStats) { - 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; - if (deltas.formeType === 'Mega' || deltas.isMega) species.isMega = true; - if (deltas.formeType === 'Primal') species.isPrimal = true; - return species; - }, - }, -}; diff --git a/data/mods/gen7/moves.ts b/data/mods/gen7/moves.ts index c19919fa33..1978d7defd 100644 --- a/data/mods/gen7/moves.ts +++ b/data/mods/gen7/moves.ts @@ -498,10 +498,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { condition: { inherit: true, onTryHit(target, source, move) { - if (!move.flags['protect'] || move.category === 'Status') { - if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; - return; - } + if (this.checkMoveBreaksProtect(move, source, target, false)) return; this.add('-activate', target, 'move: Protect'); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { diff --git a/data/mods/gen7mixandmega/items.ts b/data/mods/gen7mixandmega/items.ts deleted file mode 100644 index f02eb9841b..0000000000 --- a/data/mods/gen7mixandmega/items.ts +++ /dev/null @@ -1,46 +0,0 @@ -export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { - blueorb: { - inherit: true, - onSwitchIn(pokemon) { - if (pokemon.isActive && !pokemon.species.isPrimal && !pokemon.transformed) { - // @ts-expect-error modded - const species: Species = this.actions.getMixedSpecies(pokemon.m.originalSpecies, 'Kyogre-Primal', pokemon); - if (pokemon.m.originalSpecies === 'Kyogre') { - pokemon.formeChange(species, this.effect, true); - } else { - pokemon.formeChange(species, this.effect, true); - pokemon.baseSpecies = species; - this.add('-start', pokemon, 'Blue Orb', '[silent]'); - } - } - }, - onTakeItem: false, - }, - redorb: { - inherit: true, - onSwitchIn(pokemon) { - if (pokemon.isActive && !pokemon.species.isPrimal && !pokemon.transformed) { - // @ts-expect-error modded - const species: Species = this.actions.getMixedSpecies(pokemon.m.originalSpecies, 'Groudon-Primal', pokemon); - if (pokemon.m.originalSpecies === 'Groudon') { - pokemon.formeChange(species, this.effect, true); - } else { - pokemon.formeChange(species, this.effect, true); - pokemon.baseSpecies = species; - this.add('-start', pokemon, 'Red Orb', '[silent]'); - const apparentSpecies = pokemon.illusion ? pokemon.illusion.species.name : pokemon.m.originalSpecies; - const oSpecies = this.dex.species.get(apparentSpecies); - if (pokemon.illusion) { - const types = oSpecies.types; - if (types.length > 1 || types[types.length - 1] !== 'Fire') { - this.add('-start', pokemon, 'typechange', (types[0] !== 'Fire' ? types[0] + '/' : '') + 'Fire', '[silent]'); - } - } else 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]'); - } - } - } - }, - onTakeItem: false, - }, -}; diff --git a/data/mods/gen7mixandmega/scripts.ts b/data/mods/gen7mixandmega/scripts.ts deleted file mode 100644 index 8f056ff19e..0000000000 --- a/data/mods/gen7mixandmega/scripts.ts +++ /dev/null @@ -1,121 +0,0 @@ -export const Scripts: ModdedBattleScriptsData = { - gen: 7, - inherit: 'gen7', - init() { - for (const i in this.data.Items) { - if (!this.data.Items[i].megaStone) continue; - this.modData('Items', i).onTakeItem = false; - } - }, - actions: { - canMegaEvo(pokemon) { - if (pokemon.species.isMega || pokemon.species.isPrimal) return null; - - const item = pokemon.getItem(); - if (item.megaStone) { - const values = Object.values(item.megaStone); - if (values.includes(pokemon.name)) return null; - return values[0]; - } else if (pokemon.baseMoves.includes('dragonascent')) { - return 'Rayquaza-Mega'; - } else { - return null; - } - }, - runMegaEvo(pokemon) { - if (pokemon.species.isMega || pokemon.species.isPrimal) return false; - - const isUltraBurst = !pokemon.canMegaEvo; - - const species: Species = (this as any).getMixedSpecies(pokemon.m.originalSpecies, - pokemon.canMegaEvo || pokemon.canUltraBurst, pokemon); - - // Do we have a proper sprite for it? Code for when megas actually exist - if (isUltraBurst || this.dex.species.get(pokemon.canMegaEvo as any).baseSpecies === pokemon.m.originalSpecies) { - pokemon.formeChange(species, pokemon.getItem(), true); - } 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.join('/') !== pokemon.species.types.join('/')) { - this.battle.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - } - - pokemon.canMegaEvo = false; - if (isUltraBurst) pokemon.canUltraBurst = null; - return true; - }, - getMixedSpecies(originalForme, formeChange, pokemon) { - const originalSpecies = this.dex.species.get(originalForme); - const formeChangeSpecies = this.dex.species.get(formeChange); - if (originalSpecies.baseSpecies === formeChangeSpecies.baseSpecies) { - return formeChangeSpecies; - } - const deltas = (this as any).getFormeChangeDeltas(formeChangeSpecies, pokemon); - const species = (this as any).mutateOriginalSpecies(originalSpecies, deltas); - return species; - }, - getFormeChangeDeltas(formeChangeSpecies, pokemon) { - // Should be fine as long as Necrozma-U doesn't get added or Game Freak makes me sad with some convoluted forme change - const baseSpecies = this.dex.species.get(formeChangeSpecies.isMega ? - formeChangeSpecies.battleOnly as string : formeChangeSpecies.baseSpecies); - const deltas: { - ability: string, - baseStats: SparseStatsTable, - weighthg: number, - heightm: number, - originalSpecies: string, - requiredItem: string | undefined, - type?: string, - formeType?: string, - isMega?: boolean, - } = { - ability: formeChangeSpecies.abilities['0'], - baseStats: {}, - weighthg: formeChangeSpecies.weighthg - baseSpecies.weighthg, - heightm: ((formeChangeSpecies.heightm * 10) - (baseSpecies.heightm * 10)) / 10, - originalSpecies: formeChangeSpecies.name, - requiredItem: formeChangeSpecies.requiredItem, - }; - let statId: StatID; - for (statId in formeChangeSpecies.baseStats) { - deltas.baseStats[statId] = formeChangeSpecies.baseStats[statId] - baseSpecies.baseStats[statId]; - } - let formeType: string | null = null; - if (formeChangeSpecies.types.length > baseSpecies.types.length) { - deltas.type = formeChangeSpecies.types[1]; - } else if (formeChangeSpecies.types.length < baseSpecies.types.length) { - deltas.type = baseSpecies.types[0]; - } else if (formeChangeSpecies.types[1] !== baseSpecies.types[1]) { - deltas.type = formeChangeSpecies.types[1]; - } - if (formeChangeSpecies.isMega && !formeType) formeType = 'Mega'; - if (formeChangeSpecies.isPrimal) formeType = 'Primal'; - if (formeType) deltas.formeType = formeType; - return deltas; - }, - mutateOriginalSpecies(speciesOrForme, deltas) { - if (!deltas) throw new TypeError("Must specify deltas!"); - const species = this.dex.deepClone(this.dex.species.get(speciesOrForme)); - species.abilities = { '0': deltas.ability }; - if (species.types[0] === deltas.type) { - species.types = [deltas.type]; - } else if (deltas.type) { - species.types = [species.types[0], deltas.type]; - } - const baseStats = species.baseStats; - for (const statName in baseStats) { - 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; - if (deltas.formeType === 'Mega' || deltas.isMega) species.isMega = true; - if (deltas.formeType === 'Primal') species.isPrimal = true; - return species; - }, - }, -}; diff --git a/data/mods/gen8mixandmega/scripts.ts b/data/mods/gen8mixandmega/scripts.ts deleted file mode 100644 index e59a9f14ea..0000000000 --- a/data/mods/gen8mixandmega/scripts.ts +++ /dev/null @@ -1,115 +0,0 @@ -export const Scripts: ModdedBattleScriptsData = { - gen: 8, - inherit: 'gen8', - init() { - for (const i in this.data.Items) { - const item = this.data.Items[i]; - if (!item.megaStone || item.isNonstandard !== 'Past') continue; - this.modData('Items', i).onTakeItem = false; - this.modData('Items', i).isNonstandard = null; - if (item.megaStone) { - for (const megaEvo of Object.values(item.megaStone)) { - this.modData('FormatsData', this.toID(megaEvo)).isNonstandard = null; - } - } - } - }, - actions: { - canMegaEvo(pokemon) { - if (pokemon.species.isMega) return null; - - const item = pokemon.getItem(); - if (!item.megaStone) return null; - return Object.values(item.megaStone)[0]; - }, - runMegaEvo(pokemon) { - if (pokemon.species.isMega) return false; - - const species: Species = (this as any).getMixedSpecies(pokemon.m.originalSpecies, pokemon.canMegaEvo, pokemon); - - /* 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); - 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.join('/') !== pokemon.species.types.join('/')) { - this.battle.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } - // } - - pokemon.canMegaEvo = false; - return true; - }, - getMixedSpecies(originalForme, formeChange, pokemon) { - const originalSpecies = this.dex.species.get(originalForme); - const formeChangeSpecies = this.dex.species.get(formeChange); - const deltas = (this as any).getFormeChangeDeltas(formeChangeSpecies, pokemon); - const species = (this as any).mutateOriginalSpecies(originalSpecies, deltas); - return species; - }, - getFormeChangeDeltas(formeChangeSpecies, pokemon) { - // Should be fine as long as Necrozma-U doesn't get added or Game Freak makes me sad with some convoluted forme change - let baseSpecies = this.dex.species.get(formeChangeSpecies.isMega ? - formeChangeSpecies.battleOnly as string : formeChangeSpecies.baseSpecies); - if (formeChangeSpecies.name === 'Zygarde-Mega') { - baseSpecies = this.dex.species.get('Zygarde-Complete'); - } - const deltas: { - ability: string, - baseStats: SparseStatsTable, - weighthg: number, - heightm: number, - originalSpecies: string, - requiredItem: string | undefined, - type?: string, - formeType?: string, - isMega?: boolean, - } = { - ability: formeChangeSpecies.abilities['0'], - baseStats: {}, - weighthg: formeChangeSpecies.weighthg - baseSpecies.weighthg, - heightm: ((formeChangeSpecies.heightm * 10) - (baseSpecies.heightm * 10)) / 10, - originalSpecies: formeChangeSpecies.name, - requiredItem: formeChangeSpecies.requiredItem, - }; - let statId: StatID; - for (statId in formeChangeSpecies.baseStats) { - deltas.baseStats[statId] = formeChangeSpecies.baseStats[statId] - baseSpecies.baseStats[statId]; - } - if (formeChangeSpecies.types.length > baseSpecies.types.length) { - deltas.type = formeChangeSpecies.types[1]; - } else if (formeChangeSpecies.types.length < baseSpecies.types.length) { - deltas.type = 'mono'; - } else if (formeChangeSpecies.types[1] !== baseSpecies.types[1]) { - deltas.type = formeChangeSpecies.types[1]; - } - deltas.isMega = true; - return deltas; - }, - mutateOriginalSpecies(speciesOrForme, deltas) { - if (!deltas) throw new TypeError("Must specify deltas!"); - const species = this.dex.deepClone(this.dex.species.get(speciesOrForme)); - species.abilities = { '0': deltas.ability }; - if (species.types[0] === deltas.type) { - species.types = [deltas.type]; - } else if (deltas.type === 'mono') { - species.types = [species.types[0]]; - } else if (deltas.type) { - species.types = [species.types[0], deltas.type]; - } - const baseStats = species.baseStats; - for (const statName in baseStats) { - 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; - if (deltas.isMega) species.isMega = true; - return species; - }, - }, -}; diff --git a/data/mods/gen9dlc1/scripts.ts b/data/mods/gen9dlc1/scripts.ts index 7c97daa056..c8d77bc7e9 100644 --- a/data/mods/gen9dlc1/scripts.ts +++ b/data/mods/gen9dlc1/scripts.ts @@ -11,7 +11,7 @@ export const Scripts: ModdedBattleScriptsData = { } if (pokemon.species.baseSpecies === 'Ogerpon' && !['Fire', 'Grass', 'Rock', 'Water'].includes(pokemon.teraType) && (!pokemon.illusion || pokemon.illusion.species.baseSpecies === 'Ogerpon')) { - this.battle.hint("If Ogerpon Terastallizes into a type other than Fire, Grass, Rock, or Water, the game softlocks."); + this.battle.hint("If Ogerpon Terastallizes into a type other than Fire, Grass, Rock, or Water, the game crashes.", false, pokemon.side); return; } @@ -87,16 +87,18 @@ export const Scripts: ModdedBattleScriptsData = { 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) { + for (const [i, moveSlot] of pokemon.moveSlots.entries()) { let moveName = moveSlot.move; if (moveSlot.id === 'hiddenpower') { moveName = 'Hidden Power ' + this.hpType; } + const move = this.battle.dex.moves.get(moveSlot.id); + const pp = Math.min(5, move.pp); 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, + pp, + maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0), target: moveSlot.target, disabled: false, used: false, diff --git a/data/mods/gen9legendsou/abilities.ts b/data/mods/gen9legendsou/abilities.ts index 69612df64f..770a01461d 100644 --- a/data/mods/gen9legendsou/abilities.ts +++ b/data/mods/gen9legendsou/abilities.ts @@ -7,4 +7,12 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa inherit: true, isNonstandard: null, }, + piercingdrill: { + inherit: true, + isNonstandard: null, + }, + spicyspray: { + inherit: true, + isNonstandard: null, + }, }; diff --git a/data/mods/gen9legendsou/pokedex.ts b/data/mods/gen9legendsou/pokedex.ts index 8d8a5d0894..ac1e5969ce 100644 --- a/data/mods/gen9legendsou/pokedex.ts +++ b/data/mods/gen9legendsou/pokedex.ts @@ -1,12 +1,4 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { - clefablemega: { - inherit: true, - abilities: { 0: "Prankster" }, - }, - victreebelmega: { - inherit: true, - abilities: { 0: "Triage" }, - }, raichumegax: { inherit: true, abilities: { 0: "Levitate" }, @@ -18,11 +10,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable starmiemega: { inherit: true, baseStats: { hp: 60, atk: 100, def: 105, spa: 130, spd: 105, spe: 120 }, - abilities: { 0: "Pure Power" }, - }, - dragonitemega: { - inherit: true, - abilities: { 0: "Sheer Force" }, }, ampharosmega: { inherit: true, @@ -32,14 +19,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Technician" }, }, - chimechomega: { - inherit: true, - abilities: { 0: "Levitate" }, - }, - skarmorymega: { - inherit: true, - abilities: { 0: "Tough Claws" }, - }, mawilemega: { inherit: true, baseStats: { hp: 50, atk: 105, def: 125, spa: 55, spd: 95, spe: 50 }, @@ -56,10 +35,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Sharpness" }, }, - froslassmega: { - inherit: true, - abilities: { 0: "Snow Warning" }, - }, garchompmegaz: { inherit: true, abilities: { 0: "Rough Skin" }, @@ -76,14 +51,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Dark Aura" }, }, - excadrillmega: { - inherit: true, - abilities: { 0: "Sand Rush" }, - }, - golurkmega: { - inherit: true, - abilities: { 0: "Adaptability" }, - }, audinomega: { inherit: true, abilities: { 0: "Regenerator" }, @@ -100,18 +67,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Hadron Engine" }, }, - chandeluremega: { - inherit: true, - abilities: { 0: "Magic Guard" }, - }, - meowsticmmega: { - inherit: true, - abilities: { 0: "Psychic Surge" }, - }, - meowsticfmega: { - inherit: true, - abilities: { 0: "Psychic Surge" }, - }, pyroarmega: { inherit: true, abilities: { 0: "Drought" }, @@ -120,10 +75,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Regenerator" }, }, - floettemega: { - inherit: true, - abilities: { 0: "Regenerator" }, - }, malamarmega: { inherit: true, abilities: { 0: "Contrary" }, @@ -132,26 +83,14 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Tough Claws" }, }, - hawluchamega: { - inherit: true, - abilities: { 0: "Stamina" }, - }, zygardemega: { inherit: true, abilities: { 0: "Aura Break" }, }, - crabominablemega: { - inherit: true, - abilities: { 0: "Ice Scales" }, - }, golisopodmega: { inherit: true, abilities: { 0: "Heatproof" }, }, - drampamega: { - inherit: true, - abilities: { 0: "Adaptability" }, - }, magearnamega: { inherit: true, abilities: { 0: "Soul-Heart" }, @@ -168,14 +107,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable inherit: true, abilities: { 0: "Dauntless Shield" }, }, - scovillainmega: { - inherit: true, - abilities: { 0: "Contrary" }, - }, - glimmoramega: { - inherit: true, - abilities: { 0: "Levitate" }, - }, tatsugiricurlymega: { inherit: true, abilities: { 0: "Drizzle" }, diff --git a/data/mods/gen9predlc/moves.ts b/data/mods/gen9predlc/moves.ts index 1af9032814..6c66c3f344 100644 --- a/data/mods/gen9predlc/moves.ts +++ b/data/mods/gen9predlc/moves.ts @@ -37,7 +37,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, jetpunch: { inherit: true, - hasSheerForce: true, + hasSheerForceBoost: true, }, matchagotcha: { inherit: true, diff --git a/data/mods/gen9regeneration/abilities.ts b/data/mods/gen9regeneration/abilities.ts new file mode 100644 index 0000000000..777b39548f --- /dev/null +++ b/data/mods/gen9regeneration/abilities.ts @@ -0,0 +1,277 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + // new + wingsofvictory: { + onStart(pokemon) { + if (pokemon.side.foe.totalFainted) { + this.add('-activate', pokemon, 'ability: Wings of Victory'); + const fallen = Math.min(pokemon.side.foe.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 = [4096, 4506, 4915, 5325, 5734, 6144]; + this.debug(`Wings of Victory boost: ${powMod[this.effectState.fallen]}/4096`); + return this.chainModify([powMod[this.effectState.fallen], 4096]); + } + }, + name: "Wings of Victory", + shortDesc: "This Pokemon's moves have 10% more power for each fainted foe, up to 5 foes.", + rating: 3.5, + }, + galaxybrain: { + onStart(pokemon) { + let totalatk = 0; + let totalspa = 0; + for (const target of pokemon.side.foe.active) { + if (!target || target.fainted) continue; + totalatk += target.getStat('atk', false, true); + totalspa += target.getStat('spa', false, true); + } + if (totalatk && totalatk >= totalspa) { + this.boost({ def: 1 }); + } else if (totalspa) { + this.boost({ spd: 1 }); + } + }, + name: "Galaxy Brain", + shortDesc: "On switch-in, Defense or Sp. Def is raised 1 stage based on the foes' stronger offense.", + rating: 4, + }, + blackout: { + onStart(source) { + this.field.addPseudoWeather('magicroom', source); + /* let activated = false; + for (const pokemon of this.getAllActive()) { + if (!activated) { + this.add('-ability', source, 'Blackout'); + } + activated = true; + if (!pokemon.volatiles['embargo']) { + pokemon.addVolatile('embargo'); + } + } */ + }, + /* onAnySwitchIn(pokemon) { + if (!pokemon.volatiles['embargo']) { + pokemon.addVolatile('embargo'); + } + }, */ + onEnd(pokemon) { + this.field.removePseudoWeather('magicroom'); + /* for (const target of this.getAllActive()) { + if (target === pokemon) continue; + if (target.hasAbility('blackout')) return; + } + for (const target of this.getAllActive()) { + target.removeVolatile('embargo'); + } */ + }, + name: "Blackout", + shortDesc: "While this Pokemon is active, all held items are disabled.", + rating: 5, + }, + excavate: { + onSwitchIn(pokemon) { + let activated = false; + for (const sideCondition of ['spikes', 'stealthrock']) { + if (pokemon.side.getSideCondition(sideCondition) && !pokemon.side.getSideCondition('excavate')) { + if (!activated) { + this.add('-activate', pokemon, 'ability: Excavate'); + activated = true; + } + } + if (pokemon.side.getSideCondition('spikes') && !pokemon.side.getSideCondition('excavate')) { + this.add('-sideend', pokemon.side, 'move: Spikes', `[of] ${pokemon}`); + pokemon.side.removeSideCondition('spikes'); + this.boost({ def: 1 }, pokemon); + pokemon.side.addSideCondition('excavate'); + } + if (pokemon.side.getSideCondition('stealthrock') && !pokemon.side.getSideCondition('excavate')) { + this.add('-sideend', pokemon.side, 'move: Stealth Rock', `[of] ${pokemon}`); + pokemon.side.removeSideCondition('stealthrock'); + this.boost({ def: 1 }, pokemon); + pokemon.side.addSideCondition('excavate'); + } + } + }, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'move: Excavate Used'); + }, + }, + name: "Excavate", + shortDesc: "Once per game. Removes Stealth Rock and Spikes on switch-in, +1 Def for each hazard removed.", + rating: 4, + }, + lifeguard: { + onDamagingHit(damage, target, source, move) { + if (move.type === 'Water') { + this.boost({ def: 1 }); + } + }, + onModifySecondaries(secondaries, target, source, move) { + if (move.type === 'Water') return; + this.debug('Lifeguard prevent secondary'); + return secondaries.filter(effect => !!effect.self); + }, + name: "Lifeguard", + shortDesc: "Boosts Defense when hit by a Water move; blocks additional effects of Water moves.", + rating: 3, + }, + ballooning: { + onDamage(damage, target, source, effect) { + if ( + effect.effectType === "Move" && + !effect.multihit && + !(effect.hasSheerForce && source.hasAbility('sheerforce')) + ) { + this.effectState.checkedBallooning = false; + } else { + this.effectState.checkedBallooning = true; + } + }, + onTryEatItem(item) { + const healingItems = [ + 'aguavberry', 'enigmaberry', 'figyberry', 'iapapaberry', + 'magoberry', 'sitrusberry', 'wikiberry', 'oranberry', 'berryjuice', + ]; + if (healingItems.includes(item.id)) { + return this.effectState.checkedBallooning; + } + return true; + }, + onAfterMoveSecondary(target, source, move) { + this.effectState.checkedBallooning = true; + if (!source || source === target || !target.hp || !move.totalDamage) return; + const lastAttackedBy = target.getLastAttackedBy(); + if (!lastAttackedBy) return; + const damage = move.multihit ? move.totalDamage : lastAttackedBy.damage; + if (target.hp <= target.maxhp / 2 && target.hp + damage > target.maxhp / 2) { + this.boost({ atk: 1, spa: 1, spe: 1 }, target, target); + target.addVolatile('perishsong'); + } + }, + name: "Ballooning", + shortDesc: "At 1/2 or less of this Pokemon's max HP: +1 Atk, Sp. Atk, Spe, and gains the Perish Song effect.", + rating: 4, + }, + ofafeather: { + onModifyAtkPriority: 5, + onModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Flying') { + this.debug('Of A Feather boost'); + return this.chainModify(1.5); + } + }, + onModifySpAPriority: 5, + onModifySpA(atk, attacker, defender, move) { + if (move.type === 'Flying') { + this.debug('Of A Feather boost'); + return this.chainModify(1.5); + } + }, + name: "Of A Feather", + rating: 3.5, + shortDesc: "This Pokemon's Flying-type moves have 1.5x power.", + }, + patriarch: { + onStart(pokemon) { + if (pokemon.side.pokemon.filter(ally => ally === pokemon || !ally.fainted && !ally.status)) { + this.add('-activate', pokemon, 'ability: Patriarch'); + const healthy = Math.min(pokemon.side.pokemon + .filter(ally => ally === pokemon || !ally.fainted && !ally.status).length, 5); + this.add('-start', pokemon, `healthy{healthy}`, '[silent]'); + this.effectState.healthy = healthy; + } + }, + onEnd(pokemon) { + this.add('-end', pokemon, `healthy${this.effectState.healthy}`, '[silent]'); + }, + onBasePowerPriority: 21, + onBasePower(basePower, attacker, defender, move) { + if (this.effectState.healthy) { + const powMod = [4096, 4506, 4915, 5325, 5734, 6144]; + this.debug(`Patriach boost: ${powMod[this.effectState.healthy]}/4096`); + return this.chainModify([powMod[this.effectState.healthy], 4096]); + } + }, + name: "Patriarch", + shortDesc: "This Pokemon's moves have 10% more power for each of its healthy allies.", + rating: 3.5, + }, + violentabandon: { + onAfterUseItem(item, pokemon) { + if ( + pokemon !== this.effectState.target && + pokemon.baseSpecies.baseSpecies !== 'Gyarados' || + pokemon.transformed + ) { + return; + } + if (pokemon.species.forme !== 'Mega') { + pokemon.formeChange('Gyarados-Mega', this.effect, true); + } + }, + onTakeItem(item, pokemon) { + if ( + pokemon !== this.effectState.target && + pokemon.baseSpecies.baseSpecies !== 'Gyarados' || + pokemon.transformed + ) { + return; + } + if (pokemon.species.forme !== 'Mega') { + pokemon.formeChange('Gyarados-Mega', this.effect, true); + } + }, + flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 }, + name: "Violent Abandon", + shortDesc: "This Pokemon transforms into Mega Gyarados whenever its item is used or lost.", + rating: 3.5, + }, + tropicalcurrent: { + onDamagePriority: 1, + onDamage(damage, target, source, effect) { + if (effect.id === 'brn') { + this.heal(target.baseMaxhp / 8); + return false; + } + }, + name: "Tropical Current", + shortDesc: "This Pokemon restored 1/8 of its max HP per turn if it's burned. Ignores burn attack drop.", + rating: 4, + }, + bullspirit: { + onAfterMoveSecondarySelf(source, target, move) { + if (!move || source.switchFlag === true || !move.hitTargets || move.type !== 'Normal') return; + this.add('-ability', source, 'Bull Spirit'); + this.add('-message', `${source.name}'s next attack will be physical!`); + source.addVolatile('bullspirit'); + }, + condition: { + onStart(target) { + this.add('-start', target, 'ability: Bull Spirit'); + }, + duration: 2, + onModifyMovePriority: 8, + onModifyMove(move, pokemon) { + if (move.category !== "Status") { + move.category = "Physical"; + } + }, + onEnd(target) { + this.add('-end', target, 'ability: Bull Spirit', '[silent]'); + }, + }, + flags: {}, + name: "Bull Spirit", + rating: 1, + shortDesc: "After using a Normal-type move, the user's next attack will always be physical.", + }, +}; diff --git a/data/mods/gen9regeneration/formats-data.ts b/data/mods/gen9regeneration/formats-data.ts new file mode 100644 index 0000000000..b409dc025c --- /dev/null +++ b/data/mods/gen9regeneration/formats-data.ts @@ -0,0 +1,674 @@ +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + bulbasaur: { + tier: "LC", + doublesTier: "LC", + }, + ivysaur: { + tier: "NFE", + doublesTier: "NFE", + }, + venusaur: { + tier: "OU", + doublesTier: "DOU", + }, + venusaurmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + charmander: { + tier: "LC", + doublesTier: "LC", + }, + charmeleon: { + tier: "NFE", + doublesTier: "NFE", + }, + charizard: { + tier: "OU", + doublesTier: "DOU", + }, + charizardmegax: { + isNonstandard: "Past", + tier: "Illegal", + }, + charizardmegay: { + isNonstandard: "Past", + tier: "Illegal", + }, + squirtle: { + tier: "LC", + doublesTier: "LC", + }, + wartortle: { + tier: "NFE", + doublesTier: "NFE", + }, + blastoise: { + tier: "OU", + doublesTier: "DOU", + }, + blastoisemega: { + isNonstandard: "Past", + tier: "Illegal", + }, + caterpie: { + tier: "LC", + doublesTier: "LC", + }, + metapod: { + tier: "NFE", + doublesTier: "NFE", + }, + butterfree: { + tier: "OU", + doublesTier: "DOU", + }, + weedle: { + tier: "LC", + doublesTier: "LC", + }, + kakuna: { + tier: "NFE", + doublesTier: "NFE", + }, + beedrill: { + tier: "OU", + doublesTier: "DOU", + }, + beedrillmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + pidgey: { + tier: "LC", + doublesTier: "LC", + }, + pidgeotto: { + tier: "NFE", + doublesTier: "NFE", + }, + pidgeot: { + tier: "OU", + doublesTier: "DOU", + }, + pidgeotmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + rattata: { + tier: "LC", + doublesTier: "LC", + }, + raticate: { + tier: "OU", + doublesTier: "DOU", + }, + spearow: { + tier: "LC", + doublesTier: "LC", + }, + fearow: { + tier: "OU", + doublesTier: "DOU", + }, + ekans: { + tier: "LC", + doublesTier: "LC", + }, + arbok: { + tier: "OU", + doublesTier: "DOU", + }, + pikachu: { + tier: "LC", + doublesTier: "LC", + }, + raichu: { + tier: "OU", + doublesTier: "DOU", + }, + sandshrew: { + tier: "LC", + doublesTier: "LC", + }, + sandslash: { + tier: "OU", + doublesTier: "DOU", + }, + nidoranf: { + tier: "LC", + doublesTier: "LC", + }, + nidorina: { + tier: "NFE", + doublesTier: "NFE", + }, + nidoqueen: { + tier: "OU", + doublesTier: "DOU", + }, + nidoranm: { + tier: "LC", + doublesTier: "LC", + }, + nidorino: { + tier: "NFE", + doublesTier: "NFE", + }, + nidoking: { + tier: "OU", + doublesTier: "DOU", + }, + cleffa: { + tier: "LC", + doublesTier: "LC", + }, + clefairy: { + tier: "NFE", + doublesTier: "NFE", + }, + clefable: { + tier: "OU", + doublesTier: "DOU", + }, + vulpix: { + tier: "LC", + doublesTier: "LC", + }, + ninetales: { + tier: "OU", + doublesTier: "DOU", + }, + igglybuff: { + tier: "LC", + doublesTier: "LC", + }, + jigglypuff: { + tier: "NFE", + doublesTier: "NFE", + }, + wigglytuff: { + tier: "OU", + doublesTier: "DOU", + }, + zubat: { + tier: "LC", + doublesTier: "LC", + }, + golbat: { + tier: "OU", + doublesTier: "DOU", + }, + oddish: { + tier: "LC", + doublesTier: "LC", + }, + gloom: { + tier: "NFE", + doublesTier: "NFE", + }, + vileplume: { + tier: "OU", + doublesTier: "DOU", + }, + paras: { + tier: "LC", + doublesTier: "LC", + }, + parasect: { + tier: "OU", + doublesTier: "DOU", + }, + venonat: { + tier: "LC", + doublesTier: "LC", + }, + venomoth: { + tier: "OU", + doublesTier: "DOU", + }, + diglett: { + tier: "LC", + doublesTier: "LC", + }, + dugtrio: { + tier: "OU", + doublesTier: "DOU", + }, + meowth: { + tier: "LC", + doublesTier: "LC", + }, + persian: { + tier: "OU", + doublesTier: "DOU", + }, + psyduck: { + tier: "LC", + doublesTier: "LC", + }, + golduck: { + tier: "OU", + doublesTier: "DOU", + }, + mankey: { + tier: "LC", + doublesTier: "LC", + }, + primeape: { + tier: "OU", + doublesTier: "DOU", + }, + growlithe: { + tier: "LC", + doublesTier: "LC", + }, + arcanine: { + tier: "OU", + doublesTier: "DOU", + }, + poliwag: { + tier: "LC", + doublesTier: "LC", + }, + poliwhirl: { + tier: "NFE", + doublesTier: "NFE", + }, + poliwrath: { + tier: "OU", + doublesTier: "DOU", + }, + abra: { + tier: "LC", + doublesTier: "LC", + }, + kadabra: { + tier: "NFE", + doublesTier: "NFE", + }, + alakazam: { + tier: "OU", + doublesTier: "DOU", + }, + alakazammega: { + isNonstandard: "Past", + tier: "Illegal", + }, + machop: { + tier: "LC", + doublesTier: "LC", + }, + machoke: { + tier: "NFE", + doublesTier: "NFE", + }, + machamp: { + tier: "OU", + doublesTier: "DOU", + }, + bellsprout: { + tier: "LC", + doublesTier: "LC", + }, + weepinbell: { + tier: "NFE", + doublesTier: "NFE", + }, + victreebel: { + tier: "OU", + doublesTier: "DOU", + }, + tentacool: { + tier: "LC", + doublesTier: "LC", + }, + tentacruel: { + tier: "OU", + doublesTier: "DOU", + }, + geodude: { + tier: "LC", + doublesTier: "LC", + }, + graveler: { + tier: "NFE", + doublesTier: "NFE", + }, + golem: { + tier: "OU", + doublesTier: "DOU", + }, + ponyta: { + tier: "LC", + doublesTier: "LC", + }, + rapidash: { + tier: "OU", + doublesTier: "DOU", + }, + slowpoke: { + tier: "LC", + doublesTier: "LC", + }, + slowbro: { + tier: "OU", + doublesTier: "DOU", + }, + slowbromega: { + isNonstandard: "Past", + tier: "Illegal", + }, + magnemite: { + tier: "LC", + doublesTier: "LC", + }, + magneton: { + tier: "OU", + doublesTier: "DOU", + }, + farfetchd: { + tier: "OU", + doublesTier: "DOU", + }, + doduo: { + tier: "LC", + doublesTier: "LC", + }, + dodrio: { + tier: "OU", + doublesTier: "DOU", + }, + seel: { + tier: "LC", + doublesTier: "LC", + }, + dewgong: { + tier: "OU", + doublesTier: "DOU", + }, + grimer: { + tier: "LC", + doublesTier: "LC", + }, + muk: { + tier: "OU", + doublesTier: "DOU", + }, + shellder: { + tier: "LC", + doublesTier: "LC", + }, + cloyster: { + tier: "OU", + doublesTier: "DOU", + }, + gastly: { + tier: "LC", + doublesTier: "LC", + }, + haunter: { + tier: "NFE", + doublesTier: "NFE", + }, + gengar: { + tier: "OU", + doublesTier: "DOU", + }, + gengarmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + onix: { + tier: "OU", + doublesTier: "DOU", + }, + drowzee: { + tier: "LC", + doublesTier: "LC", + }, + hypno: { + tier: "OU", + doublesTier: "DOU", + }, + krabby: { + tier: "LC", + doublesTier: "LC", + }, + kingler: { + tier: "OU", + doublesTier: "DOU", + }, + voltorb: { + tier: "LC", + doublesTier: "LC", + }, + electrode: { + tier: "OU", + doublesTier: "DOU", + }, + exeggcute: { + tier: "LC", + doublesTier: "LC", + }, + exeggutor: { + tier: "OU", + doublesTier: "DOU", + }, + cubone: { + tier: "LC", + doublesTier: "LC", + }, + marowak: { + tier: "OU", + doublesTier: "DOU", + }, + hitmonlee: { + tier: "OU", + doublesTier: "DOU", + }, + hitmonchan: { + tier: "OU", + doublesTier: "DOU", + }, + lickitung: { + tier: "LC", + doublesTier: "LC", + }, + koffing: { + tier: "LC", + doublesTier: "LC", + }, + weezing: { + tier: "OU", + doublesTier: "DOU", + }, + rhyhorn: { + tier: "LC", + doublesTier: "LC", + }, + rhydon: { + tier: "OU", + doublesTier: "DOU", + }, + chansey: { + tier: "OU", + doublesTier: "DOU", + }, + tangela: { + tier: "OU", + doublesTier: "DOU", + }, + kangaskhan: { + tier: "OU", + doublesTier: "DOU", + }, + kangaskhanmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + horsea: { + tier: "LC", + doublesTier: "LC", + }, + seadra: { + tier: "OU", + doublesTier: "DOU", + }, + goldeen: { + tier: "LC", + doublesTier: "LC", + }, + seaking: { + tier: "OU", + doublesTier: "DOU", + }, + staryu: { + tier: "LC", + doublesTier: "LC", + }, + starmie: { + tier: "OU", + doublesTier: "DOU", + }, + mrmime: { + tier: "OU", + doublesTier: "DOU", + }, + scyther: { + tier: "OU", + doublesTier: "DOU", + }, + jynx: { + tier: "OU", + doublesTier: "DOU", + }, + electabuzz: { + tier: "OU", + doublesTier: "DOU", + }, + magmar: { + tier: "OU", + doublesTier: "DOU", + }, + pinsir: { + tier: "OU", + doublesTier: "DOU", + }, + pinsirmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + tauros: { + tier: "OU", + doublesTier: "DOU", + }, + magikarp: { + tier: "LC", + doublesTier: "LC", + }, + gyarados: { + tier: "OU", + doublesTier: "DOU", + }, + gyaradosmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + lapras: { + tier: "OU", + doublesTier: "DOU", + }, + ditto: { + tier: "OU", + doublesTier: "DOU", + }, + eevee: { + tier: "LC", + doublesTier: "LC", + }, + vaporeon: { + tier: "OU", + doublesTier: "DOU", + }, + jolteon: { + tier: "OU", + doublesTier: "DOU", + }, + flareon: { + tier: "OU", + doublesTier: "DOU", + }, + porygon: { + tier: "OU", + doublesTier: "DOU", + }, + omanyte: { + tier: "LC", + doublesTier: "LC", + }, + omastar: { + tier: "OU", + doublesTier: "DOU", + }, + kabuto: { + tier: "LC", + doublesTier: "LC", + }, + kabutops: { + tier: "OU", + doublesTier: "DOU", + }, + aerodactyl: { + tier: "OU", + doublesTier: "DOU", + }, + aerodactylmega: { + isNonstandard: "Past", + tier: "Illegal", + }, + snorlax: { + tier: "OU", + doublesTier: "DOU", + }, + articuno: { + tier: "OU", + doublesTier: "DOU", + }, + zapdos: { + tier: "OU", + doublesTier: "DOU", + }, + moltres: { + tier: "OU", + doublesTier: "DOU", + }, + dratini: { + tier: "LC", + doublesTier: "LC", + }, + dragonair: { + tier: "NFE", + doublesTier: "NFE", + }, + dragonite: { + tier: "OU", + doublesTier: "DOU", + }, + mewtwo: { + isNonstandard: "Past", + tier: "Illegal", + }, + mewtwomegax: { + isNonstandard: "Past", + tier: "Illegal", + }, + mewtwomegay: { + isNonstandard: "Past", + tier: "Illegal", + }, + mew: { + tier: "OU", + doublesTier: "DOU", + }, +}; diff --git a/data/mods/gen9regeneration/moves.ts b/data/mods/gen9regeneration/moves.ts new file mode 100644 index 0000000000..5c61416b6c --- /dev/null +++ b/data/mods/gen9regeneration/moves.ts @@ -0,0 +1,573 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + // new + vitalenergy: { + accuracy: 100, + basePower: 150, + basePowerCallback(pokemon, target, move) { + return move.basePower * pokemon.hp / pokemon.maxhp; + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Seed Flare", target); + }, + category: "Special", + name: "Vital Energy", + shortDesc: "Less power as user's HP decreases. Hits foe(s).", + pp: 5, + priority: 0, + flags: { protect: 1, mirror: 1 }, + secondary: undefined, + target: "allAdjacentFoes", + type: "Grass", + contestType: "Beautiful", + }, + smokytorment: { + accuracy: true, + basePower: 75, + category: "Physical", + name: "Smoky Torment", + shortDesc: "Applies the Torment effect on opponent.", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Outrage", target); + }, + secondary: { + chance: 100, + volatileStatus: 'torment', + }, + target: "normal", + type: "Dark", + contestType: "Cool", + }, + powerwash: { + accuracy: 100, + basePower: 50, + category: "Special", + name: "Power Wash", + shortDesc: "Removes all hazards in the field. If any are cleared, the user heals for 50% of its maximum HP.", + pp: 40, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + onHit(target, source, move) { + let success = false; + const removeAll = [ + 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + for (const sideCondition of removeAll) { + if (source.side.removeSideCondition(sideCondition)) { + this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Power Wash', `[of] ${source}`); + success = true; + } + } + this.heal(Math.ceil(source.maxhp * 0.5), source); + return success; + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Volt Switch", target); + }, + target: "normal", + type: "Water", + contestType: "Cool", + }, + brainwave: { + accuracy: 100, + basePower: 70, + category: "Special", + name: "Brainwave", + shortDesc: "Uses user's Special Defense stat as Special Attack in damage calculation.", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + overrideOffensiveStat: 'spd', + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Expanding Force", target); + }, + secondary: undefined, + target: "normal", + type: "Psychic", + }, + illwind: { + accuracy: 100, + basePower: 100, + category: "Special", + name: "Ill Wind", + shortDesc: "Lowers the user's Sp. Atk by 1, drains 25% damage, heals another 25% for each neg SpA boost.", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, heal: 1 }, + self: { + boosts: { + spa: -1, + }, + }, + drain: [1, 4], + /* onModifyMove(move, pokemon) { + move.drain = [pokemon.negativeBoosts.spa(), 4]; + }, */ + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Icy Wind", target); + }, + secondary: undefined, + target: "normal", + type: "Ice", + contestType: "Clever", + }, + guardiandive: { + accuracy: 100, + basePower: 75, + category: "Physical", + name: "Guardian Dive", + shortDesc: "Uses user's Defense stat as Attack in damage calculation.", + pp: 10, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + overrideOffensiveStat: 'def', + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Acrobatics", target); + }, + secondary: undefined, + target: "normal", + type: "Flying", + }, + coralcrash: { + accuracy: 100, + basePower: 120, + category: "Physical", + name: "Coral Crash", + shortDesc: "33% recoil. 10% chance to poison.", + pp: 15, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + secondary: { + chance: 10, + status: 'psn', + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Aqua Tail", target); + }, + recoil: [33, 100], + target: "normal", + type: "Poison", + contestType: "Tough", + }, + slipaway: { + accuracy: 100, + basePower: 50, + category: "Physical", + name: "Slip Away", + shortDesc: "100% chance to lower the target's Attack by 1, switches the user out.", + pp: 20, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + secondary: { + chance: 100, + boosts: { + atk: -1, + }, + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Aqua Tail", target); + }, + selfSwitch: true, + target: "normal", + type: "Water", + zMove: { effect: 'healreplacement' }, + contestType: "Cool", + }, + flareout: { + accuracy: 100, + basePower: 70, + category: "Physical", + name: "Flare Out", + shortDesc: "100% chance to lower the target's Defense by 1, switches the user out.", + pp: 20, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + secondary: { + chance: 100, + boosts: { + def: -1, + }, + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Flame Charge", target); + }, + selfSwitch: true, + target: "normal", + type: "Fire", + zMove: { effect: 'healreplacement' }, + contestType: "Cool", + }, + buzzoff: { + accuracy: 100, + basePower: 60, + category: "Special", + name: "Buzz Off", + shortDesc: "100% chance to lower the target's Speed by 1, switches the user out.", + pp: 20, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + secondary: { + chance: 100, + boosts: { + spe: -1, + }, + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Volt Switch", target); + }, + selfSwitch: true, + target: "normal", + type: "Electric", + zMove: { effect: 'healreplacement' }, + contestType: "Cool", + }, + powdergale: { + accuracy: 100, + basePower: 75, + category: "Special", + name: "Powder Gale", + shortDesc: "100% chance to poison. Harshly lowers a random one of the target's stats.", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, wind: 1, metronome: 1 }, + onHit(target) { + 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); + const boost: SparseBoostsTable = {}; + boost[randomStat] = -2; + this.boost(boost); + } else { + return; + } + }, + secondary: { + chance: 100, + status: 'psn', + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Silver Wind", target); + }, + target: "normal", + type: "Bug", + contestType: "Clever", + }, + splashback: { + accuracy: 100, + basePower: 50, + basePowerCallback(pokemon) { + return Math.min(300, 50 + 50 * pokemon.timesAttacked); + }, + /* onEnd(pokemon) { + this.add('-end', pokemon, 'Splashback', '[silent]'); + }, */ + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Flip Turn", target); + }, + category: "Physical", + name: "Splashback", + shortDesc: "Base power increases by 50 every time this Pokemon is hit. Max 300 BP. Reset on switch out.", + pp: 10, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + secondary: undefined, + target: "normal", + type: "Water", + }, + ragingtorrent: { + accuracy: 100, + basePower: 90, + category: "Physical", + name: "Raging Torrent", + shortDesc: "Lowers the target's Atk by 1. Inflicts Encore on the user.", + pp: 20, + priority: 0, + flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, + self: { + volatileStatus: 'encore', + }, + secondary: { + chance: 100, + boosts: { + atk: -1, + }, + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Breaking Swipe", target); + }, + target: "allAdjacentFoes", + type: "Water", + contestType: "Tough", + }, + familyonslaught: { + accuracy: 100, + basePower: 40, + category: "Physical", + shortDesc: "Hits 2-4 times.", + name: "Family Onslaught", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + multihit: [2, 4], + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Population Bomb", target); + }, + target: "normal", + type: "Normal", + contestType: "Cute", + }, + pestspread: { + accuracy: 100, + basePower: 100, + category: "Physical", + shortDesc: "Changes the target's type to the user's type.", + name: "Pest Spread", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + onAfterHit(target, source) { + if (target.species && (target.species.num === 493 || target.species.num === 773)) return false; + if (target.terastallized) return false; + const oldApparentType = target.apparentType; + let newBaseTypes = source.getTypes(true).filter(type => type !== '???'); + if (!newBaseTypes.length) { + if (source.addedType) { + newBaseTypes = ['Normal']; + } else { + return false; + } + } + this.add('-start', target, 'typechange', '[from] move: Pest Spread', `[of] ${target}`); + target.setType(newBaseTypes); + target.addedType = source.addedType; + target.knownType = source.isAlly(source) && source.knownType; + if (!target.knownType) target.apparentType = oldApparentType; + }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Sludge Bomb", target); + }, + target: "normal", + type: "Poison", + }, + vengefulbone: { + accuracy: 100, + basePower: 80, + category: "Physical", + shortDesc: "Power doubles if an ally fainted last turn.", + name: "Vengeful Bone", + pp: 10, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Shadow Bone", target); + }, + onBasePower(basePower, pokemon) { + if (pokemon.side.faintedLastTurn) { + this.debug('Boosted for a faint last turn'); + return this.chainModify(2); + } + }, + target: "normal", + type: "Ghost", + contestType: "Cool", + }, + escort: { + accuracy: 100, + basePower: 50, + category: "Special", + shortDesc: "User switches out. Switch-in is immune to hazards.", + name: "Escort", + pp: 15, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1 }, + selfSwitch: true, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Baton Pass", source); + }, + self: { + sideCondition: 'escort', + }, + condition: { + duration: 1, + }, + target: "normal", + type: "Normal", + contestType: "Clever", + }, + stealthrock: { + inherit: true, + condition: { + // this is a side condition + onSideStart(side) { + this.add('-sidestart', side, 'move: Stealth Rock'); + }, + onSwitchIn(pokemon) { + if (pokemon.hasItem('heavydutyboots') || pokemon.side.getSideCondition('escort')) return; + const typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6); + this.damage(pokemon.maxhp * (2 ** typeMod) / 8); + }, + }, + }, + gmaxsteelsurge: { + inherit: true, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'move: G-Max Steelsurge'); + }, + onSwitchIn(pokemon) { + if (pokemon.hasItem('heavydutyboots') || pokemon.side.getSideCondition('escort')) 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 * (2 ** typeMod) / 8); + }, + }, + }, + spikes: { + inherit: true, + 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++; + }, + onSwitchIn(pokemon) { + if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots') || pokemon.side.getSideCondition('escort')) return; + const damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4 + this.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24); + }, + }, + }, + stickyweb: { + inherit: true, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'move: Sticky Web'); + }, + onSwitchIn(pokemon) { + if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots') || pokemon.side.getSideCondition('escort')) return; + this.add('-activate', pokemon, 'move: Sticky Web'); + this.boost({ spe: -1 }, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb')); + }, + }, + }, + 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++; + }, + onSwitchIn(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') || pokemon.side.getSideCondition('escort')) { + // do nothing + } else if (this.effectState.layers >= 2) { + pokemon.trySetStatus('tox', pokemon.side.foe.active[0]); + } else { + pokemon.trySetStatus('psn', pokemon.side.foe.active[0]); + } + }, + }, + }, + /* // leftover placeholder for hidden power because teams.ts was not cooperating previously + terablast: { + num: 851, + accuracy: 100, + basePower: 60, + category: "Special", + name: "Tera Blast", + pp: 15, + priority: 0, + flags: { protect: 1, mirror: 1, metronome: 1, mustpressure: 1 }, + onPrepareHit(target, source, move) { + this.attrLastMove('[anim] Tera Blast ' + source.teraType); + }, + onModifyType(move, pokemon, target) { + move.type = pokemon.teraType; + this.add('-message', `This attack is ${pokemon.teraType}-type!`); + }, + target: "normal", + type: "Normal", + }, */ + magicroom: { + inherit: true, + condition: { + duration: 5, + durationCallback(source, effect) { + if (source?.hasAbility('blackout')) { + this.add('-activate', source, 'ability: blackout', '[move] Magic Room'); + return 0; + } + if (source?.hasAbility('persistent')) { + this.add('-activate', source, 'ability: Persistent', '[move] Magic Room'); + return 7; + } + return 5; + }, + onFieldStart(target, source) { + if (source?.hasAbility('persistent')) { + this.add('-fieldstart', 'move: Magic Room', `[of] ${source}`, '[persistent]'); + } else { + this.add('-fieldstart', 'move: Magic Room', `[of] ${source}`); + } + for (const mon of this.getAllActive()) { + this.singleEvent('End', mon.getItem(), mon.itemState, mon); + } + }, + onFieldRestart(target, source) { + this.field.removePseudoWeather('magicroom'); + }, + // Item suppression implemented in Pokemon.ignoringItem() within sim/pokemon.js + onFieldResidualOrder: 27, + onFieldResidualSubOrder: 6, + onFieldEnd() { + this.add('-fieldend', 'move: Magic Room', '[of] ' + this.effectState.source); + }, + }, + }, +}; diff --git a/data/mods/gen9regeneration/pokedex.ts b/data/mods/gen9regeneration/pokedex.ts new file mode 100644 index 0000000000..b6ec63046e --- /dev/null +++ b/data/mods/gen9regeneration/pokedex.ts @@ -0,0 +1,198 @@ +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { + // new + alakazam: { + inherit: true, + baseStats: { hp: 80, atk: 50, def: 50, spa: 110, spd: 110, spe: 110 }, + abilities: { 0: "Galaxy Brain", 1: "Inner Focus", H: "Trace" }, + }, + gengar: { + inherit: true, + types: ["Ghost", "Ice"], + baseStats: { hp: 65, atk: 65, def: 65, spa: 100, spd: 90, spe: 115 }, + abilities: { 0: "Blackout" }, + }, + dragonite: { + inherit: true, + baseStats: { hp: 91, atk: 134, def: 95, spa: 95, spd: 84, spe: 101 }, + abilities: { 0: "Lifeguard", H: "Marvel Scale" }, + }, + venusaur: { + inherit: true, + types: ["Grass", "Fairy"], + baseStats: { hp: 80, atk: 66, def: 98, spa: 111, spd: 100, spe: 70 }, + abilities: { 0: "Overgrow", H: "Misty Surge" }, + }, + charizard: { + inherit: true, + types: ["Fire", "Dark"], + baseStats: { hp: 68, atk: 120, def: 89, spa: 60, spd: 87, spe: 109 }, + abilities: { 0: "Blaze", H: "Levitate" }, + }, + blastoise: { + inherit: true, + types: ["Water", "Electric"], + baseStats: { hp: 79, atk: 53, def: 100, spa: 105, spd: 105, spe: 88 }, + abilities: { 0: "Torrent", H: "Motor Drive" }, + }, + beedrill: { + inherit: true, + baseStats: { hp: 65, atk: 100, def: 40, spa: 35, spd: 94, spe: 116 }, + abilities: { 0: "Poison Touch", H: "Speed Boost" }, + }, + pidgeot: { + inherit: true, + types: ["Flying"], + baseStats: { hp: 83, atk: 100, def: 75, spa: 50, spd: 70, spe: 112 }, + abilities: { 0: "Keen Eye", 1: "Tangled Feet", H: "Wings of Victory" }, + }, + onix: { + inherit: true, + evos: [], + baseStats: { hp: 75, atk: 135, def: 140, spa: 30, spd: 75, spe: 70 }, + abilities: { 0: "Sturdy", 1: "Solid Rock", H: "Excavate" }, + }, + wigglytuff: { + inherit: true, + types: ["Fairy", "Dark"], + baseStats: { hp: 140, atk: 75, def: 50, spa: 65, spd: 45, spe: 121 }, + abilities: { 0: "Cute Charm", 1: "Aftermath", H: "Ballooning" }, + }, + dodrio: { + inherit: true, + types: ["Ground", "Fighting"], + baseStats: { hp: 85, atk: 115, def: 60, spa: 55, spd: 55, spe: 115 }, + abilities: { 0: "Sand Rush", 1: "Early Bird", H: "Of A Feather" }, + }, + seadra: { + inherit: true, + evos: [], + types: ["Poison", "Dragon"], + baseStats: { hp: 80, atk: 100, def: 95, spa: 100, spd: 70, spe: 85 }, + abilities: { 0: "Poison Point", 1: "Rain Dish", H: "Merciless" }, + }, + vaporeon: { + inherit: true, + abilities: { 0: "Run Away", 1: "Trace", H: "Protean" }, + }, + flareon: { + inherit: true, + baseStats: { hp: 110, atk: 130, def: 60, spa: 65, spd: 65, spe: 95 }, + abilities: { 0: "Run Away", 1: "Trace", H: "Protean" }, + }, + jolteon: { + inherit: true, + baseStats: { hp: 65, atk: 65, def: 60, spa: 95, spd: 110, spe: 130 }, + abilities: { 0: "Run Away", 1: "Trace", H: "Protean" }, + }, + nidoking: { + inherit: true, + baseStats: { hp: 81, atk: 102, def: 82, spa: 95, spd: 70, spe: 95 }, + abilities: { 0: "Poison Point", 1: "Patriarch", H: "Sheer Force" }, + }, + nidoqueen: { + inherit: true, + baseStats: { hp: 100, atk: 82, def: 87, spa: 95, spd: 85, spe: 76 }, + abilities: { 0: "Poison Point", 1: "Natural Cure", H: "Sheer Force" }, + }, + butterfree: { + inherit: true, + baseStats: { hp: 80, atk: 45, def: 52, spa: 92, spd: 79, spe: 106 }, + abilities: { 0: "Compound Eyes", 1: "Tinted Lens", H: "Multiscale" }, + }, + cloyster: { + inherit: true, + types: ["Water", "Steel"], + baseStats: { hp: 80, atk: 90, def: 165, spa: 80, spd: 70, spe: 50 }, + abilities: { 0: "Shell Armor", 1: "Water Veil", H: "Regenerator" }, + }, + gyarados: { + inherit: true, + baseStats: { hp: 100, atk: 100, def: 107, spa: 70, spd: 92, spe: 71 }, + abilities: { 0: "Violent Abandon" }, + }, + gyaradosmega: { + inherit: true, + baseStats: { hp: 100, atk: 125, def: 107, spa: 105, spd: 122, spe: 81 }, + abilities: { 0: "Violent Abandon" }, + requiredItem: "", + }, + tentacruel: { + inherit: true, + types: ["Dark", "Poison"], + baseStats: { hp: 80, atk: 50, def: 65, spa: 100, spd: 120, spe: 100 }, + abilities: { 0: "Tropical Current" }, + }, + raticate: { + inherit: true, + types: ["Normal", "Poison"], + baseStats: { hp: 75, atk: 90, def: 70, spa: 40, spd: 75, spe: 125 }, + abilities: { 0: "Poison Touch", 1: "Hustle", H: "Guts" }, + }, + kangaskhan: { + inherit: true, + types: ["Normal", "Dragon"], + baseStats: { hp: 115, atk: 110, def: 70, spa: 60, spd: 60, spe: 85 }, + abilities: { 0: "Early Bird", 1: "Bulletproof", H: "Skill Link" }, + }, + farfetchd: { + inherit: true, + types: ["Normal", "Fighting"], + baseStats: { hp: 75, atk: 100, def: 80, spa: 60, spd: 75, spe: 90 }, + abilities: { 0: "Hustle", 1: "Scrappy", H: "Defiant" }, + }, + lapras: { + inherit: true, + types: ["Ice", "Water"], + baseStats: { hp: 130, atk: 85, def: 80, spa: 85, spd: 95, spe: 60 }, + abilities: { 0: "Storm Drain", 1: "Shell Armor", H: "Hydration" }, + }, + tauros: { + inherit: true, + types: ["Normal", "Ground"], + baseStats: { hp: 85, atk: 110, def: 105, spa: 30, spd: 70, spe: 110 }, + abilities: { 0: "Intimidate", 1: "Bull Spirit", H: "Sheer Force" }, + }, + marowak: { + inherit: true, + types: ["Ground", "Ghost"], + baseStats: { hp: 80, atk: 80, def: 105, spa: 50, spd: 95, spe: 100 }, + abilities: { 0: "Battle Armor", 1: "Sand Force", H: "Justified" }, + }, + // Minor Changes (mostly to prevent unevolved Pokemons in gen 1 to hold Eviolite) + golbat: { + inherit: true, + evos: [], + }, + magneton: { + inherit: true, + evos: [], + }, + lickitung: { + inherit: true, + evos: [], + }, + rhydon: { + inherit: true, + evos: [], + }, + chansey: { + inherit: true, + evos: [], + }, + tangela: { + inherit: true, + evos: [], + }, + electabuzz: { + inherit: true, + evos: [], + }, + magmar: { + inherit: true, + evos: [], + }, + porygon: { + inherit: true, + evos: [], + }, +}; diff --git a/data/mods/gen9regeneration/scripts.ts b/data/mods/gen9regeneration/scripts.ts new file mode 100644 index 0000000000..59b63fd63f --- /dev/null +++ b/data/mods/gen9regeneration/scripts.ts @@ -0,0 +1,329 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + actions: { + modifyDamage( + baseDamage: number, pokemon: Pokemon, target: Pokemon, move: ActiveMove, suppressMessages = false + ) { + 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 = 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 === '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); + } + + // 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') && !pokemon.hasAbility('tropicalcurrent') + ) { + 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).brokeProtect) { + 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); + }, + }, + init() { + this.modData("Learnsets", "alakazam").learnset.brainwave = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.avalanche = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.blizzard = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.focusenergy = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.frostbreath = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.icebeam = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.iceshard = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.powdersnow = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.snowscape = ["9L1"]; + this.modData("Learnsets", "gengar").learnset.illwind = ["9L1"]; + this.modData("Learnsets", "dragonite").learnset.barrier = ["9L1"]; + this.modData("Learnsets", "dragonite").learnset.guardiandive = ["9L1"]; + this.modData("Learnsets", "dragonite").learnset.uturn = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.aromaticmist = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.calmmind = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.dazzlinggleam = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.drainingkiss = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.fairywind = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.floralhealing = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.flowershield = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.healpulse = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.playrough = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.psychic = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.vitalenergy = ["9L1"]; + this.modData("Learnsets", "venusaur").learnset.zenheadbutt = ["9L1"]; + this.modData("Learnsets", "charizard").learnset.ceaselessedge = ["9L1"]; + this.modData("Learnsets", "charizard").learnset.throatchop = ["9L1"]; + this.modData("Learnsets", "charizard").learnset.smokytorment = ["9L1"]; + this.modData("Learnsets", "charizard").learnset.suckerpunch = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.chargebeam = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.charge = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.iondeluge = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.powerwash = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.thunder = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.thunderwave = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.thunderbolt = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.thundershock = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.voltswitch = ["9L1"]; + this.modData("Learnsets", "blastoise").learnset.zapcannon = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.closecombat = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.flail = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.reversal = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.spikes = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.stickyweb = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.taunt = ["9L1"]; + this.modData("Learnsets", "beedrill").learnset.terablast = ["9L1"]; + this.modData("Learnsets", "pidgeot").learnset.acrobatics = ["9L1"]; + this.modData("Learnsets", "pidgeot").learnset.closecombat = ["9L1"]; + this.modData("Learnsets", "wigglytuff").learnset.crunch = ["9L1"]; + this.modData("Learnsets", "wigglytuff").learnset.darkpulse = ["9L1"]; + this.modData("Learnsets", "wigglytuff").learnset.rapidspin = ["9L1"]; + this.modData("Learnsets", "wigglytuff").learnset.taunt = ["9L1"]; + this.modData("Learnsets", "wigglytuff").learnset.uturn = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.brickbreak = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.bulldoze = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.dig = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.drillrun = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.earthquake = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.highjumpkick = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.lowkick = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.quickguard = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.rototiller = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.sandattack = ["9L1"]; + this.modData("Learnsets", "dodrio").learnset.triplekick = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.acidspray = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.coralcrash = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.dracometeor = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.sludgebomb = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.sludgewave = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.thunder = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.thunderbolt = ["9L1"]; + this.modData("Learnsets", "seadra").learnset.toxicspikes = ["9L1"]; + this.modData("Learnsets", "vaporeon").learnset.slipaway = ["9L1"]; + this.modData("Learnsets", "flareon").learnset.crunch = ["9L1"]; + this.modData("Learnsets", "flareon").learnset.flareout = ["9L1"]; + this.modData("Learnsets", "flareon").learnset.playrough = ["9L1"]; + this.modData("Learnsets", "flareon").learnset.psychicfangs = ["9L1"]; + this.modData("Learnsets", "flareon").learnset.suckerpunch = ["9L1"]; + this.modData("Learnsets", "jolteon").learnset.buzzoff = ["9L1"]; + this.modData("Learnsets", "nidoking").learnset.barbbarrage = ["9L1"]; + this.modData("Learnsets", "nidoqueen").learnset.moonlight = ["9L1"]; + this.modData("Learnsets", "butterfree").learnset.strengthsap = ["9L1"]; + this.modData("Learnsets", "butterfree").learnset.powdergale = ["9L1"]; + delete this.modData('Learnsets', 'alakazam').learnset.focusblast; + delete this.modData('Learnsets', 'alakazam').learnset.nastyplot; + delete this.modData('Learnsets', 'gengar').learnset.focusblast; + delete this.modData('Learnsets', 'gengar').learnset.nastyplot; + delete this.modData('Learnsets', 'gengar').learnset.terablast; + delete this.modData('Learnsets', 'gengar').learnset.thunderbolt; + delete this.modData('Learnsets', 'gengar').learnset.thunder; + delete this.modData('Learnsets', 'dragonite').learnset.dragonclaw; + delete this.modData('Learnsets', 'dragonite').learnset.dragondance; + delete this.modData('Learnsets', 'dragonite').learnset.dragonrush; + delete this.modData('Learnsets', 'dragonite').learnset.dualwingbeat; + delete this.modData('Learnsets', 'dragonite').learnset.honeclaws; + delete this.modData('Learnsets', 'dragonite').learnset.outrage; + delete this.modData('Learnsets', 'dragonite').learnset.poweruppunch; + delete this.modData('Learnsets', 'dragonite').learnset.terablast; + delete this.modData('Learnsets', 'venusaur').learnset.earthpower; + delete this.modData('Learnsets', 'venusaur').learnset.weatherball; + delete this.modData('Learnsets', 'blastoise').learnset.aurasphere; + delete this.modData('Learnsets', 'blastoise').learnset.avalanche; + delete this.modData('Learnsets', 'blastoise').learnset.blizzard; + delete this.modData('Learnsets', 'blastoise').learnset.focusblast; + delete this.modData('Learnsets', 'blastoise').learnset.hail; + delete this.modData('Learnsets', 'blastoise').learnset.icebeam; + delete this.modData('Learnsets', 'blastoise').learnset.icepunch; + delete this.modData('Learnsets', 'blastoise').learnset.icywind; + delete this.modData('Learnsets', 'blastoise').learnset.mist; + delete this.modData('Learnsets', 'blastoise').learnset.shellsmash; + delete this.modData('Learnsets', 'pidgeot').learnset.toxic; + delete this.modData('Learnsets', 'dodrio').learnset.fly; + delete this.modData('Learnsets', 'seadra').learnset.blizzard; + delete this.modData('Learnsets', 'seadra').learnset.icebeam; + // Removing the prevos' moves + delete this.modData('Learnsets', 'gastly').learnset.nastyplot; + delete this.modData('Learnsets', 'gastly').learnset.terablast; + delete this.modData('Learnsets', 'gastly').learnset.thunderbolt; + delete this.modData('Learnsets', 'gastly').learnset.thunder; + delete this.modData('Learnsets', 'haunter').learnset.focusblast; + delete this.modData('Learnsets', 'haunter').learnset.nastyplot; + delete this.modData('Learnsets', 'haunter').learnset.terablast; + delete this.modData('Learnsets', 'haunter').learnset.thunderbolt; + delete this.modData('Learnsets', 'haunter').learnset.thunder; + delete this.modData('Learnsets', 'dratini').learnset.dragondance; + delete this.modData('Learnsets', 'dratini').learnset.dragonrush; + delete this.modData('Learnsets', 'dratini').learnset.outrage; + delete this.modData('Learnsets', 'dratini').learnset.terablast; + delete this.modData('Learnsets', 'dragonair').learnset.dragondance; + delete this.modData('Learnsets', 'dragonair').learnset.dragonrush; + delete this.modData('Learnsets', 'dragonair').learnset.outrage; + delete this.modData('Learnsets', 'dragonair').learnset.terablast; + delete this.modData('Learnsets', 'bulbasaur').learnset.weatherball; + delete this.modData('Learnsets', 'ivysaur').learnset.weatherball; + delete this.modData('Learnsets', 'squirtle').learnset.aurasphere; + delete this.modData('Learnsets', 'squirtle').learnset.blizzard; + delete this.modData('Learnsets', 'squirtle').learnset.hail; + delete this.modData('Learnsets', 'squirtle').learnset.icebeam; + delete this.modData('Learnsets', 'squirtle').learnset.icepunch; + delete this.modData('Learnsets', 'squirtle').learnset.mist; + delete this.modData('Learnsets', 'squirtle').learnset.shellsmash; + delete this.modData('Learnsets', 'wartortle').learnset.aurasphere; + delete this.modData('Learnsets', 'wartortle').learnset.blizzard; + delete this.modData('Learnsets', 'wartortle').learnset.hail; + delete this.modData('Learnsets', 'wartortle').learnset.icebeam; + delete this.modData('Learnsets', 'wartortle').learnset.icepunch; + delete this.modData('Learnsets', 'wartortle').learnset.mist; + delete this.modData('Learnsets', 'wartortle').learnset.shellsmash; + delete this.modData('Learnsets', 'pidgey').learnset.toxic; + delete this.modData('Learnsets', 'pidgeotto').learnset.toxic; + delete this.modData('Learnsets', 'doduo').learnset.fly; + delete this.modData('Learnsets', 'horsea').learnset.blizzard; + delete this.modData('Learnsets', 'horsea').learnset.icebeam; + this.modData("Learnsets", "raticate").learnset.gunkshot = ["9L1"]; + this.modData("Learnsets", "raticate").learnset.poisonjab = ["9L1"]; + this.modData("Learnsets", "raticate").learnset.sludgebomb = ["9L1"]; + this.modData("Learnsets", "raticate").learnset.sludgewave = ["9L1"]; + this.modData("Learnsets", "raticate").learnset.sludge = ["9L1"]; + this.modData("Learnsets", "raticate").learnset.closecombat = ["9L1"]; + this.modData("Learnsets", "raticate").learnset.pestspread = ["9L1"]; + delete this.modData('Learnsets', 'raticate').learnset.swordsdance; + delete this.modData('Learnsets', 'raticate').learnset.stompingtantrum; + delete this.modData('Learnsets', 'raticate').learnset.suckerpunch; + delete this.modData('Learnsets', 'raticate').learnset.pursuit; + delete this.modData('Learnsets', 'raticate').learnset.zenheadbutt; + delete this.modData('Learnsets', 'rattata').learnset.swordsdance; + delete this.modData('Learnsets', 'rattata').learnset.stompingtantrum; + delete this.modData('Learnsets', 'rattata').learnset.suckerpunch; + delete this.modData('Learnsets', 'rattata').learnset.pursuit; + delete this.modData('Learnsets', 'rattata').learnset.zenheadbutt; + this.modData("Learnsets", "kangaskhan").learnset.familyonslaught = ["9L1"]; + this.modData("Learnsets", "kangaskhan").learnset.dragontail = ["9L1"]; + this.modData("Learnsets", "kangaskhan").learnset.dragonclaw = ["9L1"]; + this.modData("Learnsets", "kangaskhan").learnset.dracometeor = ["9L1"]; + this.modData("Learnsets", "kangaskhan").learnset.dragondance = ["9L1"]; + this.modData("Learnsets", "kangaskhan").learnset.uturn = ["9L1"]; + this.modData("Learnsets", "farfetchd").learnset.bulkup = ["9L1"]; + this.modData("Learnsets", "farfetchd").learnset.sacredsword = ["9L1"]; + delete this.modData('Learnsets', 'farfetchd').learnset.toxic; + this.modData("Learnsets", "lapras").learnset.escort = ["9L1"]; + this.modData("Learnsets", "lapras").learnset.wish = ["9L1"]; + this.modData("Learnsets", "tauros").learnset.escort = ["9L1"]; + this.modData("Learnsets", "tauros").learnset.headlongrush = ["9L1"]; + this.modData("Learnsets", "marowak").learnset.knockoff = ["9L1"]; + this.modData("Learnsets", "marowak").learnset.vengefulbone = ["9L1"]; + this.modData("Learnsets", "marowak").learnset.closecombat = ["9L1"]; + this.modData("Learnsets", "gyarados").learnset.acrobatics = ["9L1"]; + this.modData("Learnsets", "gyarados").learnset.ragingtorrent = ["9L1"]; + this.modData("Learnsets", "cloyster").learnset.bulletpunch = ["9L1"]; + this.modData("Learnsets", "cloyster").learnset.curse = ["9L1"]; + this.modData("Learnsets", "cloyster").learnset.explosion = ["9L1"]; + this.modData("Learnsets", "cloyster").learnset.ironhead = ["9L1"]; + this.modData("Learnsets", "cloyster").learnset.splashback = ["9L1"]; + this.modData("Learnsets", "tentacruel").learnset.darkpulse = ["9L1"]; + this.modData("Learnsets", "tentacruel").learnset.foulplay = ["9L1"]; + this.modData("Learnsets", "tentacruel").learnset.nastyplot = ["9L1"]; + delete this.modData('Learnsets', 'cloyster').learnset.iceshard; + delete this.modData('Learnsets', 'cloyster').learnset.lifedew; + delete this.modData('Learnsets', 'cloyster').learnset.shellsmash; + delete this.modData('Learnsets', 'tentacruel').learnset.scald; + delete this.modData('Learnsets', 'shellder').learnset.iceshard; + delete this.modData('Learnsets', 'shellder').learnset.lifedew; + delete this.modData('Learnsets', 'shellder').learnset.shellsmash; + delete this.modData('Learnsets', 'tentacool').learnset.scald; + }, +}; diff --git a/data/mods/gen9ssb/abilities.ts b/data/mods/gen9ssb/abilities.ts index 5776045a74..10afe20079 100644 --- a/data/mods/gen9ssb/abilities.ts +++ b/data/mods/gen9ssb/abilities.ts @@ -942,11 +942,12 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa this.boost({ spe: 1 }); this.heal(pokemon.maxhp); const move = this.dex.moves.get('finalgambit'); + const pp = this.calculatePP(move); const finalGambit = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, used: false, diff --git a/data/mods/gen9ssb/conditions.ts b/data/mods/gen9ssb/conditions.ts index a5984188f1..dd7eb99318 100644 --- a/data/mods/gen9ssb/conditions.ts +++ b/data/mods/gen9ssb/conditions.ts @@ -18,11 +18,12 @@ export const Conditions: { [id: IDEntry]: ModdedConditionData & { innateName?: s const ironHeadIndex = pokemon.baseMoves.indexOf('ironhead'); if (ironHeadIndex >= 0) { const move = this.dex.moves.get('behemothblade'); + const pp = this.calculatePP(move, pokemon.ppUps[ironHeadIndex]); pokemon.baseMoveSlots[ironHeadIndex] = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, disabledSource: '', @@ -47,11 +48,12 @@ export const Conditions: { [id: IDEntry]: ModdedConditionData & { innateName?: s const ironHeadIndex = pokemon.baseMoves.indexOf('ironhead'); if (ironHeadIndex >= 0) { const move = this.dex.moves.get('behemothbash'); + const pp = this.calculatePP(move, pokemon.ppUps[ironHeadIndex]); pokemon.baseMoveSlots[ironHeadIndex] = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, disabledSource: '', diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index 1e281fd515..197ac22355 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1060,11 +1060,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -1174,11 +1170,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -3136,14 +3128,8 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { 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); - } + const status = this.sample(['psn', 'par', 'brn']); + target.trySetStatus(status, source); this.boost({ spe: 1 }, source); }, onPrepareHit(target, source) { @@ -3455,7 +3441,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { attacker.addVolatile('twoturnmove', defender); return null; }, - hasSheerForce: true, + hasSheerForceBoost: true, onPrepareHit(target, source) { this.attrLastMove('[still]'); this.add('-anim', source, 'Lunar Dance', target); @@ -3726,14 +3712,9 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { if (randomStat2 && randomStat === randomStat2) boost[randomStat] = 4; else if (randomStat2) boost[randomStat2] = 2; 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 is easier than implementing each condition manually + const move = this.sample(['lockon', 'laserfocus', 'charge']); + this.actions.useMove(move, target); this.heal(target.maxhp / 4, target, target, this.effect); }, target: "self", @@ -4013,12 +3994,8 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, 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; + if (move.target === 'self') return; + if (this.checkMoveBreaksProtect(move, source, target, false)) return; this.add('-activate', target, 'move: Alting', move.name); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { @@ -6604,7 +6581,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { 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."); + this.hint("Psychic Terrain doesn't affect airborne Pokémon."); } return; } diff --git a/data/mods/gen9ssb/scripts.ts b/data/mods/gen9ssb/scripts.ts index 4113928614..d49854e479 100644 --- a/data/mods/gen9ssb/scripts.ts +++ b/data/mods/gen9ssb/scripts.ts @@ -142,11 +142,12 @@ export function changeMoves(context: Battle, pokemon: Pokemon, newMoves: (string 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 pp = context.calculatePP(move); const moveSlot = { move: move.name, id: move.id, - pp: Math.floor((move.noPPBoosts ? move.pp : move.pp * 8 / 5) * carryOver[slot]), - maxpp: (move.noPPBoosts ? move.pp : move.pp * 8 / 5), + pp: pp * carryOver[slot], + maxpp: pp, target: move.target, disabled: false, disabledSource: '', @@ -771,7 +772,7 @@ export const Scripts: ModdedBattleScriptsData = { // 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) { + if (move.isZOrMaxPowered && target.getMoveHitData(move).brokeProtect) { baseDamage = this.battle.modify(baseDamage, 0.25); this.battle.add('-zbroken', target); } diff --git a/data/mods/mixandmega/scripts.ts b/data/mods/mixandmega/scripts.ts index 087f070a0f..8c59398f4e 100644 --- a/data/mods/mixandmega/scripts.ts +++ b/data/mods/mixandmega/scripts.ts @@ -3,6 +3,8 @@ export const Scripts: ModdedBattleScriptsData = { init() { this.modData('Abilities', 'dragonize').isNonstandard = null; this.modData('Abilities', 'megasol').isNonstandard = null; + this.modData('Abilities', 'piercingdrill').isNonstandard = null; + this.modData('Abilities', 'spicyspray').isNonstandard = null; for (const i in this.data.Items) { const item = this.data.Items[i]; if (!item.megaStone && !item.onDrive && !(item.onPlate && !item.zMove) && !item.onMemory) continue; @@ -125,14 +127,15 @@ export const Scripts: ModdedBattleScriptsData = { const behemothMove: { [k: string]: string } = { 'Rusted Sword': 'behemothblade', 'Rusted Shield': 'behemothbash', }; - const ironHead = pokemon.baseMoves.indexOf('ironhead'); - if (ironHead >= 0) { + const ironHeadIndex = pokemon.baseMoves.indexOf('ironhead'); + if (ironHeadIndex >= 0) { const move = this.dex.moves.get(behemothMove[pokemon.getItem().name]); - pokemon.baseMoveSlots[ironHead] = { + const pp = this.calculatePP(move, pokemon.ppUps[ironHeadIndex]); + pokemon.baseMoveSlots[ironHeadIndex] = { move: move.name, id: move.id, - pp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, - maxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, disabledSource: '', diff --git a/data/mods/partnersincrime/scripts.ts b/data/mods/partnersincrime/scripts.ts index 51a35b323d..c6ffe18a44 100644 --- a/data/mods/partnersincrime/scripts.ts +++ b/data/mods/partnersincrime/scripts.ts @@ -407,17 +407,18 @@ export const Scripts: ModdedBattleScriptsData = { 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) { + for (const [i, moveSlot] of pokemon.moveSlots.entries()) { let moveName = moveSlot.move; - if (!pokemon.m.curMoves.includes(moveSlot.id)) continue; if (moveSlot.id === 'hiddenpower') { moveName = 'Hidden Power ' + this.hpType; } + const move = this.battle.dex.moves.get(moveSlot.id); + const pp = Math.min(5, move.pp); 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, + pp, + maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0), target: moveSlot.target, disabled: false, used: false, diff --git a/data/mods/passiveaggressive/moves.ts b/data/mods/passiveaggressive/moves.ts index 78a2f7408a..4e66d008a3 100644 --- a/data/mods/passiveaggressive/moves.ts +++ b/data/mods/passiveaggressive/moves.ts @@ -215,11 +215,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target)) return; if (move.smartTarget) { move.smartTarget = false; } else { diff --git a/data/mods/pokebilities/scripts.ts b/data/mods/pokebilities/scripts.ts index 4996715dc0..c535547337 100644 --- a/data/mods/pokebilities/scripts.ts +++ b/data/mods/pokebilities/scripts.ts @@ -70,16 +70,18 @@ export const Scripts: ModdedBattleScriptsData = { 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) { + for (const [i, moveSlot] of pokemon.moveSlots.entries()) { let moveName = moveSlot.move; if (moveSlot.id === 'hiddenpower') { moveName = 'Hidden Power ' + this.hpType; } + const move = this.battle.dex.moves.get(moveSlot.id); + const pp = Math.min(5, move.pp); 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, + pp, + maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0), target: moveSlot.target, disabled: false, used: false, diff --git a/data/mods/teraoverride/moves.ts b/data/mods/teraoverride/moves.ts index 90955d4d5c..5e8175440b 100644 --- a/data/mods/teraoverride/moves.ts +++ b/data/mods/teraoverride/moves.ts @@ -574,7 +574,7 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { 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."); + this.hint("Psychic Terrain doesn't affect airborne Pokémon."); } return; } diff --git a/data/mods/trademarked/scripts.ts b/data/mods/trademarked/scripts.ts index a33c7ff4f0..ea46643879 100644 --- a/data/mods/trademarked/scripts.ts +++ b/data/mods/trademarked/scripts.ts @@ -251,16 +251,18 @@ export const Scripts: ModdedBattleScriptsData = { 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) { + for (const [i, moveSlot] of pokemon.moveSlots.entries()) { let moveName = moveSlot.move; if (moveSlot.id === 'hiddenpower') { moveName = 'Hidden Power ' + this.hpType; } + const move = this.battle.dex.moves.get(moveSlot.id); + const pp = Math.min(5, move.pp); 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, + pp, + maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0), target: moveSlot.target, disabled: false, used: false, diff --git a/data/moves.ts b/data/moves.ts index e4eea5f69c..79fa812182 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -1006,11 +1006,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -2042,11 +2038,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target, false)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -2232,7 +2224,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, onAfterHit(target, source, move) { - if (!move.hasSheerForce && source.hp) { + if (!move.hasSheerForce) { for (const side of source.side.foeSidesWithConditions()) { side.addSideCondition('spikes'); } @@ -3643,14 +3635,8 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { secondary: { chance: 50, onHit(target, source) { - const result = this.random(3); - if (result === 0) { - target.trySetStatus('psn', source); - } else if (result === 1) { - target.trySetStatus('par', source); - } else { - target.trySetStatus('slp', source); - } + const status = this.sample(['psn', 'par', 'slp']); + target.trySetStatus(status, source); }, }, target: "normal", @@ -4664,7 +4650,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { attacker.addVolatile('twoturnmove', defender); return null; }, - hasSheerForce: true, + hasSheerForceBoost: true, target: "normal", type: "Electric", }, @@ -6733,14 +6719,8 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { self: { onHit(source) { for (const pokemon of source.foes()) { - const result = this.random(3); - if (result === 0) { - pokemon.trySetStatus('slp', source); - } else if (result === 1) { - pokemon.trySetStatus('par', source); - } else { - pokemon.trySetStatus('psn', source); - } + const status = this.sample(['slp', 'par', 'psn']); + pokemon.trySetStatus(status, source); } }, }, @@ -9439,9 +9419,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, onAfterHit(target, source) { - if (source.hp) { - this.field.clearTerrain(); - } + this.field.clearTerrain(); }, onAfterSubDamage(damage, target, source) { if (source.hp) { @@ -9944,11 +9922,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target, false)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -9994,11 +9968,9 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { } }, onAfterHit(target, source) { - if (source.hp) { - const item = target.takeItem(); - if (item) { - this.add('-enditem', target, item.name, '[from] move: Knock Off', `[of] ${source}`); - } + const item = target.takeItem(); + if (item) { + this.add('-enditem', target, item.name, '[from] move: Knock Off', `[of] ${source}`); } }, target: "normal", @@ -11028,12 +11000,8 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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; + if (move.target === 'self') return; + if (this.checkMoveBreaksProtect(move, source, target, false)) return; this.add('-activate', target, 'move: Mat Block', move.name); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { @@ -12353,16 +12321,16 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, onAfterHit(target, pokemon, move) { if (!move.hasSheerForce) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + if (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)) { + if (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']) { + if (pokemon.volatiles['partiallytrapped']) { pokemon.removeVolatile('partiallytrapped'); } } @@ -12926,11 +12894,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target, false)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -13097,7 +13061,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { break; } }, - hasSheerForce: true, + hasSheerForceBoost: true, target: "normal", type: "Dragon", }, @@ -14017,11 +13981,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -14159,7 +14119,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { 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."); + this.hint("Psychic Terrain doesn't affect airborne Pokémon."); } return; } @@ -14551,11 +14511,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { // Quick Guard blocks moves with positive priority, even those given increased priority by Prankster or Gale Wings. // (e.g. it blocks 0 priority moves boosted by Prankster or Gale Wings; Quick Claw/Custap Berry do not count) if (move.priority <= 0.1) return; - if (!move.flags['protect']) { - if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; - if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; - return; - } + if (this.checkMoveBreaksProtect(move, source, target)) return; this.add('-activate', target, 'move: Quick Guard'); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { @@ -14745,16 +14701,16 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, onAfterHit(target, pokemon, move) { if (!move.hasSheerForce) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + if (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)) { + if (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']) { + if (pokemon.volatiles['partiallytrapped']) { pokemon.removeVolatile('partiallytrapped'); } } @@ -16474,10 +16430,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, onTryHitPriority: 3, onTryHit(target, source, move) { - if (!move.flags['protect'] || move.category === 'Status') { - if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; - return; - } + if (this.checkMoveBreaksProtect(move, source, target, false)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -17285,7 +17238,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { return; } this.add('-prepare', attacker, move.name); - if (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) { + if (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather(true))) { this.attrLastMove('[still]'); this.addMove('-anim', attacker, move.name, defender); return; @@ -17321,7 +17274,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { return; } this.add('-prepare', attacker, move.name); - if (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) { + if (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather(true))) { this.attrLastMove('[still]'); this.addMove('-anim', attacker, move.name, defender); return; @@ -17603,11 +17556,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, 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 (this.checkMoveBreaksProtect(move, source, target)) return; if (move.smartTarget) { move.smartTarget = false; } else { @@ -18135,7 +18084,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 }, onAfterHit(target, source, move) { - if (!move.hasSheerForce && source.hp) { + if (!move.hasSheerForce) { for (const side of source.side.foeSidesWithConditions()) { side.addSideCondition('stealthrock'); } @@ -18715,7 +18664,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { onHit(target, source, move) { const yourItem = target.takeItem(source); const myItem = source.takeItem(); - if (target.item || source.item || (!yourItem && !myItem)) { + if (yourItem === false || myItem === false || (!yourItem && !myItem)) { if (yourItem) target.item = yourItem.id; if (myItem) source.item = myItem.id; return false; @@ -19915,14 +19864,8 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { secondary: { chance: 20, 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); - } + const status = this.sample(['brn', 'par', 'frz']); + target.trySetStatus(status, source); }, }, target: "normal", @@ -19944,7 +19887,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { onHit(target, source, move) { const yourItem = target.takeItem(source); const myItem = source.takeItem(); - if (target.item || source.item || (!yourItem && !myItem)) { + if (yourItem === false || myItem === false || (!yourItem && !myItem)) { if (yourItem) target.item = yourItem.id; if (myItem) source.item = myItem.id; return false; @@ -20177,7 +20120,6 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { isNonstandard: "Past", name: "Trump Card", pp: 5, - noPPBoosts: true, priority: 0, flags: { contact: 1, protect: 1, mirror: 1, metronome: 1 }, target: "normal", @@ -20900,11 +20842,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { if (move?.target !== 'allAdjacent' && move.target !== 'allAdjacentFoes') { return; } - if (move.isZ || move.isMax) { - if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; - target.getMoveHitData(move).zBrokeProtect = true; - return; - } + if (this.checkMoveBreaksProtect(move, source, target)) return; this.add('-activate', target, 'move: Wide Guard'); const lockedmove = source.getVolatile('lockedmove'); if (lockedmove) { diff --git a/data/pokedex.ts b/data/pokedex.ts index 66b4aa6afc..8ced11d3b9 100644 --- a/data/pokedex.ts +++ b/data/pokedex.ts @@ -1039,7 +1039,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { types: ["Fairy", "Flying"], genderRatio: { M: 0.25, F: 0.75 }, baseStats: { hp: 95, atk: 80, def: 93, spa: 135, spd: 110, spe: 70 }, - abilities: { 0: "Cute Charm", 1: "Magic Guard", H: "Unaware" }, + abilities: { 0: "Magic Bounce" }, heightm: 1.7, weightkg: 42.3, color: "Pink", @@ -1723,7 +1723,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Grass", "Poison"], baseStats: { hp: 80, atk: 125, def: 85, spa: 135, spd: 95, spe: 70 }, - abilities: { 0: "Chlorophyll", H: "Gluttony" }, + abilities: { 0: "Innards Out" }, heightm: 4.5, weightkg: 125.5, color: "Green", @@ -2736,9 +2736,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Water", "Psychic"], gender: "N", - // FIXME: change stats on generation shift - baseStats: { hp: 60, atk: 140, def: 105, spa: 130, spd: 105, spe: 120 }, - abilities: { 0: "Illuminate", 1: "Natural Cure", H: "Analytic" }, + baseStats: { hp: 60, atk: 100, def: 105, spa: 130, spd: 105, spe: 120 }, + abilities: { 0: "Huge Power" }, heightm: 2.3, weightkg: 80, color: "Purple", @@ -3352,7 +3351,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Dragon", "Flying"], baseStats: { hp: 91, atk: 124, def: 115, spa: 145, spd: 125, spe: 100 }, - abilities: { 0: "Inner Focus", H: "Multiscale" }, + abilities: { 0: "Multiscale" }, heightm: 2.2, weightkg: 290, color: "Brown", @@ -4636,7 +4635,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Steel", "Flying"], baseStats: { hp: 65, atk: 140, def: 110, spa: 40, spd: 100, spe: 110 }, - abilities: { 0: "Keen Eye", 1: "Sturdy", H: "Weak Armor" }, + abilities: { 0: "Stalwart" }, heightm: 1.7, weightkg: 40.4, color: "Gray", @@ -8708,7 +8707,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { types: ["Ice", "Ghost"], gender: "F", baseStats: { hp: 70, atk: 80, def: 70, spa: 140, spd: 100, spe: 120 }, - abilities: { 0: "Snow Cloak", H: "Cursed Body" }, + abilities: { 0: "Snow Warning" }, heightm: 2.6, weightkg: 29.6, color: "White", @@ -9913,7 +9912,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Ground", "Steel"], baseStats: { hp: 110, atk: 165, def: 100, spa: 65, spd: 65, spe: 103 }, - abilities: { 0: "Sand Rush", 1: "Sand Force", H: "Mold Breaker" }, + abilities: { 0: "Piercing Drill" }, heightm: 0.9, weightkg: 60, color: "Gray", @@ -11144,7 +11143,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { baseStats: { hp: 85, atk: 145, def: 80, spa: 135, spd: 90, spe: 80 }, abilities: { 0: "Levitate" }, heightm: 3, - weightkg: 160, + weightkg: 180, color: "Blue", eggGroups: ["Amorphous"], requiredItem: "Eelektrossite", @@ -11224,7 +11223,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Ghost", "Fire"], baseStats: { hp: 60, atk: 75, def: 110, spa: 175, spd: 110, spe: 90 }, - abilities: { 0: "Flash Fire", 1: "Flame Body", H: "Infiltrator" }, + abilities: { 0: "Infiltrator" }, heightm: 2.5, weightkg: 69.6, color: "Black", @@ -11433,7 +11432,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { types: ["Ground", "Ghost"], gender: "N", baseStats: { hp: 89, atk: 159, def: 105, spa: 70, spd: 105, spe: 55 }, - abilities: { 0: "Iron Fist", 1: "Klutz", H: "No Guard" }, + abilities: { 0: "Unseen Fist" }, heightm: 4, weightkg: 330, color: "Green", @@ -12573,7 +12572,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { types: ["Fairy"], gender: "F", baseStats: { hp: 74, atk: 85, def: 87, spa: 155, spd: 148, spe: 102 }, - abilities: { 0: "Flower Veil", H: "Symbiosis" }, + abilities: { 0: "Fairy Aura" }, heightm: 0.2, weightkg: 100.8, color: "White", @@ -12729,7 +12728,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { types: ["Psychic"], gender: "M", baseStats: { hp: 74, atk: 48, def: 76, spa: 143, spd: 101, spe: 124 }, - abilities: { 0: "Keen Eye", 1: "Infiltrator", H: "Competitive" }, + abilities: { 0: "Trace" }, heightm: 0.8, weightkg: 10.1, color: "Blue", @@ -12746,7 +12745,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { types: ["Psychic"], gender: "F", baseStats: { hp: 74, atk: 48, def: 76, spa: 143, spd: 101, spe: 124 }, - abilities: { 0: "Keen Eye", 1: "Infiltrator", H: "Competitive" }, + abilities: { 0: "Trace" }, heightm: 0.8, weightkg: 10.1, color: "White", @@ -13134,7 +13133,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Fighting", "Flying"], baseStats: { hp: 78, atk: 137, def: 100, spa: 74, spd: 93, spe: 118 }, - abilities: { 0: "Limber", 1: "Unburden", H: "Mold Breaker" }, + abilities: { 0: "No Guard" }, heightm: 1, weightkg: 25, color: "Green", @@ -13960,7 +13959,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Fighting", "Ice"], baseStats: { hp: 97, atk: 157, def: 122, spa: 62, spd: 107, spe: 33 }, - abilities: { 0: "Hyper Cutter", 1: "Iron Fist", H: "Anger Point" }, + abilities: { 0: "Iron Fist" }, heightm: 2.6, weightkg: 252.8, color: "White", @@ -15075,9 +15074,9 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Normal", "Dragon"], baseStats: { hp: 78, atk: 85, def: 110, spa: 160, spd: 116, spe: 36 }, - abilities: { 0: "Berserk", 1: "Sap Sipper", H: "Cloud Nine" }, + abilities: { 0: "Berserk" }, heightm: 3, - weightkg: 185, + weightkg: 240.5, color: "White", eggGroups: ["Monster", "Dragon"], requiredItem: "Drampanite", @@ -18281,7 +18280,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Grass", "Fire"], baseStats: { hp: 65, atk: 138, def: 85, spa: 138, spd: 85, spe: 75 }, - abilities: { 0: "Chlorophyll", 1: "Insomnia", H: "Moody" }, + abilities: { 0: "Spicy Spray" }, heightm: 1.2, weightkg: 22, color: "Green", @@ -18541,7 +18540,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { forme: "Mega", types: ["Rock", "Poison"], baseStats: { hp: 83, atk: 90, def: 105, spa: 150, spd: 96, spe: 101 }, - abilities: { 0: "Toxic Debris", H: "Corrosion" }, + abilities: { 0: "Adaptability" }, heightm: 2.8, weightkg: 77, color: "Blue", @@ -18682,7 +18681,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { baseStats: { hp: 68, atk: 65, def: 90, spa: 135, spd: 125, spe: 92 }, abilities: { 0: "Commander", H: "Storm Drain" }, heightm: 0.3, - weightkg: 8, + weightkg: 24, color: "Red", eggGroups: ["Water 2"], requiredItem: "Tatsugirinite", @@ -18697,7 +18696,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { baseStats: { hp: 68, atk: 65, def: 90, spa: 135, spd: 125, spe: 92 }, abilities: { 0: "Commander", H: "Storm Drain" }, heightm: 0.3, - weightkg: 8, + weightkg: 24, color: "Pink", eggGroups: ["Water 2"], requiredItem: "Tatsugirinite", @@ -18712,7 +18711,7 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { baseStats: { hp: 68, atk: 65, def: 90, spa: 135, spd: 125, spe: 92 }, abilities: { 0: "Commander", H: "Storm Drain" }, heightm: 0.3, - weightkg: 8, + weightkg: 24, color: "Yellow", eggGroups: ["Water 2"], requiredItem: "Tatsugirinite", diff --git a/data/random-battles/gen3/sets.json b/data/random-battles/gen3/sets.json index 0274430dd1..fbe3579165 100644 --- a/data/random-battles/gen3/sets.json +++ b/data/random-battles/gen3/sets.json @@ -192,7 +192,7 @@ "movepool": ["earthquake", "fireblast", "icebeam", "shadowball", "sludgebomb", "substitute", "thunderbolt"], "abilities": ["Poison Point"] }, - { + { "role": "Wallbreaker", "movepool": ["earthquake", "fireblast", "icebeam", "rockslide", "shadowball", "sludgebomb"], "abilities": ["Poison Point"] @@ -619,7 +619,7 @@ "movepool": ["doubleedge", "hiddenpowerghost", "hiddenpowerground", "surf", "swordsdance"], "abilities": ["Hyper Cutter"] }, - { + { "role": "Bulky Setup", "movepool": ["doubleedge", "hiddenpowerghost", "mudshot", "swordsdance"], "abilities": ["Hyper Cutter"] @@ -1237,7 +1237,7 @@ ] }, "crobat": { - "level": 77, + "level": 78, "sets": [ { "role": "Fast Attacker", @@ -1485,7 +1485,7 @@ ] }, "slowking": { - "level": 83, + "level": 82, "sets": [ { "role": "Bulky Support", @@ -1600,7 +1600,7 @@ ] }, "steelix": { - "level": 83, + "level": 82, "sets": [ { "role": "Bulky Attacker", @@ -1636,7 +1636,7 @@ ] }, "qwilfish": { - "level": 83, + "level": 82, "sets": [ { "role": "Wallbreaker", @@ -1734,7 +1734,7 @@ ] }, "magcargo": { - "level": 99, + "level": 100, "sets": [ { "role": "Bulky Support", @@ -1785,7 +1785,7 @@ ] }, "delibird": { - "level": 99, + "level": 98, "sets": [ { "role": "Wallbreaker", @@ -2378,7 +2378,7 @@ ] }, "mawile": { - "level": 95, + "level": 96, "sets": [ { "role": "Setup Sweeper", @@ -2567,7 +2567,7 @@ ] }, "torkoal": { - "level": 91, + "level": 90, "sets": [ { "role": "Bulky Attacker", diff --git a/data/random-battles/gen4/sets.json b/data/random-battles/gen4/sets.json index 1b94aa0a29..be4c67dc51 100644 --- a/data/random-battles/gen4/sets.json +++ b/data/random-battles/gen4/sets.json @@ -234,7 +234,7 @@ ] }, "parasect": { - "level": 99, + "level": 100, "sets": [ { "role": "Bulky Support", @@ -340,7 +340,7 @@ ] }, "alakazam": { - "level": 80, + "level": 79, "sets": [ { "role": "Fast Attacker", @@ -388,7 +388,7 @@ ] }, "golem": { - "level": 87, + "level": 86, "sets": [ { "role": "Bulky Attacker", @@ -565,7 +565,7 @@ ] }, "marowak": { - "level": 89, + "level": 88, "sets": [ { "role": "Wallbreaker", @@ -856,7 +856,7 @@ ] }, "snorlax": { - "level": 78, + "level": 77, "sets": [ { "role": "Bulky Attacker", @@ -1158,7 +1158,7 @@ ] }, "sunflora": { - "level": 100, + "level": 99, "sets": [ { "role": "Wallbreaker", @@ -1427,7 +1427,7 @@ ] }, "mantine": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Support", @@ -1529,7 +1529,7 @@ ] }, "hitmontop": { - "level": 86, + "level": 85, "sets": [ { "role": "Bulky Support", @@ -2319,7 +2319,7 @@ ] }, "cradily": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Attacker", @@ -2734,7 +2734,7 @@ ] }, "torterra": { - "level": 86, + "level": 85, "sets": [ { "role": "Bulky Attacker", @@ -2852,7 +2852,7 @@ ] }, "rampardos": { - "level": 87, + "level": 86, "sets": [ { "role": "Setup Sweeper", @@ -2944,7 +2944,7 @@ ] }, "floatzel": { - "level": 83, + "level": 82, "sets": [ { "role": "Fast Attacker", @@ -3268,7 +3268,7 @@ ] }, "tangrowth": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Attacker", @@ -3499,7 +3499,7 @@ ] }, "rotomfrost": { - "level": 79, + "level": 78, "sets": [ { "role": "Bulky Attacker", @@ -3695,7 +3695,7 @@ ] }, "manaphy": { - "level": 75, + "level": 76, "sets": [ { "role": "Bulky Setup", diff --git a/data/random-battles/gen5/sets.json b/data/random-battles/gen5/sets.json index 53315306f1..0a8f6faf70 100644 --- a/data/random-battles/gen5/sets.json +++ b/data/random-battles/gen5/sets.json @@ -101,7 +101,7 @@ ] }, "fearow": { - "level": 89, + "level": 88, "sets": [ { "role": "Wallbreaker", @@ -393,7 +393,7 @@ ] }, "machamp": { - "level": 82, + "level": 81, "sets": [ { "role": "Bulky Attacker", @@ -606,7 +606,7 @@ ] }, "hitmonlee": { - "level": 83, + "level": 82, "sets": [ { "role": "Fast Attacker", @@ -799,7 +799,7 @@ ] }, "ditto": { - "level": 87, + "level": 88, "sets": [ { "role": "Fast Support", @@ -950,7 +950,7 @@ ] }, "dragonair": { - "level": 86, + "level": 85, "sets": [ { "role": "Setup Sweeper", @@ -1078,7 +1078,7 @@ ] }, "ariados": { - "level": 98, + "level": 99, "sets": [ { "role": "Bulky Support", @@ -1256,7 +1256,7 @@ ] }, "murkrow": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -1576,7 +1576,7 @@ ] }, "smeargle": { - "level": 88, + "level": 89, "sets": [ { "role": "Fast Support", @@ -1596,7 +1596,7 @@ ] }, "miltank": { - "level": 83, + "level": 82, "sets": [ { "role": "Bulky Attacker", @@ -1951,7 +1951,7 @@ ] }, "shedinja": { - "level": 95, + "level": 96, "sets": [ { "role": "Setup Sweeper", @@ -2163,7 +2163,7 @@ ] }, "camerupt": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -2394,7 +2394,7 @@ ] }, "kecleon": { - "level": 95, + "level": 96, "sets": [ { "role": "Bulky Support", @@ -2434,7 +2434,7 @@ ] }, "chimecho": { - "level": 95, + "level": 96, "sets": [ { "role": "Bulky Support", @@ -2920,7 +2920,7 @@ ] }, "wormadamsandy": { - "level": 92, + "level": 91, "sets": [ { "role": "Staller", @@ -3062,7 +3062,7 @@ { "role": "Wallbreaker", "movepool": ["hiddenpowerfighting", "shadowball", "thunderbolt", "trick"], - "abilities": ["Levitate"] + "abilities": ["Levitate"] } ] }, @@ -3433,7 +3433,7 @@ ] }, "porygonz": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -3529,7 +3529,7 @@ ] }, "rotomfan": { - "level": 83, + "level": 84, "sets": [ { "role": "Bulky Attacker", @@ -3723,7 +3723,7 @@ ] }, "shaymin": { - "level": 83, + "level": 82, "sets": [ { "role": "Fast Support", @@ -4007,7 +4007,7 @@ ] }, "samurott": { - "level": 86, + "level": 87, "sets": [ { "role": "Wallbreaker", @@ -4129,7 +4129,7 @@ ] }, "zebstrika": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Attacker", @@ -4387,7 +4387,7 @@ ] }, "cofagrigus": { - "level": 87, + "level": 86, "sets": [ { "role": "Bulky Support", @@ -4412,7 +4412,7 @@ ] }, "archeops": { - "level": 78, + "level": 77, "sets": [ { "role": "Fast Attacker", @@ -4463,7 +4463,7 @@ ] }, "reuniclus": { - "level": 83, + "level": 84, "sets": [ { "role": "Bulky Setup", @@ -4473,7 +4473,7 @@ ] }, "swanna": { - "level": 86, + "level": 85, "sets": [ { "role": "Bulky Attacker", @@ -4499,7 +4499,7 @@ ] }, "sawsbuck": { - "level": 85, + "level": 84, "sets": [ { "role": "Setup Sweeper", @@ -4647,7 +4647,7 @@ ] }, "haxorus": { - "level": 74, + "level": 75, "sets": [ { "role": "Setup Sweeper", @@ -4657,7 +4657,7 @@ ] }, "beartic": { - "level": 92, + "level": 93, "sets": [ { "role": "Wallbreaker", @@ -4875,7 +4875,7 @@ ] }, "tornadus": { - "level": 79, + "level": 78, "sets": [ { "role": "Bulky Setup", @@ -4915,7 +4915,7 @@ ] }, "thundurustherian": { - "level": 77, + "level": 76, "sets": [ { "role": "Fast Attacker", diff --git a/data/random-battles/gen6/sets.json b/data/random-battles/gen6/sets.json index 26445ce53a..14380db5a2 100644 --- a/data/random-battles/gen6/sets.json +++ b/data/random-battles/gen6/sets.json @@ -25,7 +25,7 @@ ] }, "charizard": { - "level": 83, + "level": 84, "sets": [ { "role": "Bulky Attacker", @@ -224,7 +224,7 @@ ] }, "nidoking": { - "level": 82, + "level": 81, "sets": [ { "role": "Wallbreaker", @@ -297,7 +297,7 @@ ] }, "venomoth": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Setup", @@ -630,7 +630,7 @@ ] }, "electrode": { - "level": 88, + "level": 87, "sets": [ { "role": "Wallbreaker", @@ -834,7 +834,7 @@ ] }, "pinsir": { - "level": 85, + "level": 84, "sets": [ { "role": "Fast Attacker", @@ -2530,7 +2530,7 @@ ] }, "altariamega": { - "level": 78, + "level": 77, "sets": [ { "role": "Setup Sweeper", @@ -2899,7 +2899,7 @@ ] }, "regirock": { - "level": 86, + "level": 85, "sets": [ { "role": "Bulky Setup", @@ -3020,7 +3020,7 @@ ] }, "groudon": { - "level": 74, + "level": 73, "sets": [ { "role": "Bulky Support", @@ -3121,7 +3121,7 @@ ] }, "deoxysdefense": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Support", @@ -3323,7 +3323,7 @@ ] }, "mothim": { - "level": 94, + "level": 95, "sets": [ { "role": "Setup Sweeper", @@ -3395,7 +3395,7 @@ ] }, "ambipom": { - "level": 83, + "level": 82, "sets": [ { "role": "Fast Attacker", @@ -3519,7 +3519,7 @@ ] }, "spiritomb": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Setup", @@ -3549,7 +3549,7 @@ ] }, "garchompmega": { - "level": 76, + "level": 75, "sets": [ { "role": "Bulky Support", @@ -3735,7 +3735,7 @@ ] }, "tangrowth": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Attacker", @@ -3792,7 +3792,7 @@ ] }, "yanmega": { - "level": 82, + "level": 81, "sets": [ { "role": "Fast Attacker", @@ -4130,7 +4130,7 @@ ] }, "cresselia": { - "level": 80, + "level": 79, "sets": [ { "role": "Bulky Setup", @@ -4155,7 +4155,7 @@ ] }, "manaphy": { - "level": 76, + "level": 77, "sets": [ { "role": "Bulky Setup", @@ -4641,7 +4641,7 @@ ] }, "audino": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Support", @@ -5127,7 +5127,7 @@ ] }, "haxorus": { - "level": 77, + "level": 76, "sets": [ { "role": "Setup Sweeper", @@ -5618,7 +5618,7 @@ ] }, "talonflame": { - "level": 79, + "level": 78, "sets": [ { "role": "Bulky Attacker", diff --git a/data/random-battles/gen6megasrevisited/factory-sets.json b/data/random-battles/gen6megasrevisited/factory-sets.json deleted file mode 100644 index 12918022ce..0000000000 --- a/data/random-battles/gen6megasrevisited/factory-sets.json +++ /dev/null @@ -1,10319 +0,0 @@ -{ - "Uber": { - "klefki": { - "flags": {}, - "sets": [ - { - "species": "Klefki", - "item": "Leftovers", - "ability": "Prankster", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Spikes"], ["Thunder Wave"], ["Toxic"], ["Play Rough"]] - } - ] - }, - "zekrom": { - "flags": {}, - "sets": [ - { - "species": "Zekrom", - "item": "Choice Band", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Bolt Strike"], ["Outrage"], ["Dragon Claw"], ["Volt Switch"]] - }, - { - "species": "Zekrom", - "item": "Choice Scarf", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Lonely", - "moves": [["Bolt Strike"], ["Volt Switch"], ["Draco Meteor"], ["Outrage"]] - }, - { - "species": "Zekrom", - "item": "Choice Scarf", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Bolt Strike"], ["Volt Switch"], ["Sleep Talk"], ["Outrage"]] - }, - { - "species": "Zekrom", - "item": "Life Orb", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Lonely", - "moves": [["Bolt Strike"], ["Draco Meteor"], ["Dragon Claw"], ["Tailwind"]] - }, - { - "species": "Zekrom", - "item": "Shuca Berry", - "ability": "Teravolt", - "evs": {"hp": 132, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 124}, - "nature": "Adamant", - "moves": [["Substitute", "Outrage"], ["Hone Claws"], ["Bolt Strike"], ["Dragon Claw"]] - } - ] - }, - "yveltal": { - "flags": {}, - "sets": [ - { - "species": "Yveltal", - "item": "Choice Scarf", - "ability": "Dark Aura", - "evs": {"hp": 0, "atk": 32, "def": 4, "spa": 248, "spd": 0, "spe": 224}, - "nature": "Modest", - "moves": [["Dark Pulse"], ["Oblivion Wing"], ["Foul Play"], ["U-turn"]] - }, - { - "species": "Yveltal", - "item": "Life Orb", - "ability": "Dark Aura", - "evs": {"hp": 132, "atk": 28, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Rash", - "moves": [["Dark Pulse"], ["Oblivion Wing"], ["Sucker Punch"], ["Heat Wave"]] - }, - { - "species": "Yveltal", - "item": "Leftovers", - "ability": "Dark Aura", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Foul Play"], ["Taunt"], ["Sucker Punch"], ["Roost"]] - }, - { - "species": "Yveltal", - "item": "Leftovers", - "ability": "Dark Aura", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Bold", - "moves": [["Foul Play"], ["Taunt"], ["Toxic"], ["Roost"]] - } - ] - }, - "xerneas": { - "flags": {}, - "sets": [ - { - "species": "Xerneas", - "item": "Life Orb", - "ability": "Fairy Aura", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Mild", - "moves": [["Moonblast"], ["Close Combat"], ["Rock Slide"], ["Aromatherapy"]] - }, - { - "species": "Xerneas", - "item": "Choice Scarf", - "ability": "Fairy Aura", - "evs": {"hp": 0, "atk": 76, "def": 0, "spa": 248, "spd": 0, "spe": 184}, - "nature": "Rash", - "moves": [["Moonblast"], ["Sleep Talk"], ["Close Combat"], ["Rock Slide"]] - }, - { - "species": "Xerneas", - "item": "Leftovers", - "ability": "Fairy Aura", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Aromatherapy"], ["Rest"], ["Sleep Talk"], ["Moonblast"]] - }, - { - "species": "Xerneas", - "item": "Power Herb", - "ability": "Fairy Aura", - "evs": {"hp": 184, "atk": 0, "def": 28, "spa": 252, "spd": 0, "spe": 44}, - "nature": "Modest", - "moves": [["Geomancy"], ["Moonblast"], ["Focus Blast"], ["Thunder"]] - }, - { - "species": "Xerneas", - "item": "Power Herb", - "ability": "Fairy Aura", - "evs": {"hp": 184, "atk": 0, "def": 28, "spa": 252, "spd": 0, "spe": 44}, - "nature": "Modest", - "moves": [["Geomancy"], ["Moonblast"], ["Hidden Power Ground"], ["Thunder"]] - } - ] - }, - "tyranitar": { - "flags": {}, - "sets": [ - { - "species": "Tyranitar", - "item": "Leftovers", - "ability": "Sand Stream", - "evs": {"hp": 248, "atk": 0, "def": 96, "spa": 0, "spd": 164, "spe": 0}, - "nature": "Careful", - "moves": [["Stealth Rock"], ["Pursuit"], ["Rock Slide"], ["Thunder Wave", "Roar"]] - }, - { - "species": "Tyranitar", - "item": "Shuca Berry", - "ability": "Sand Stream", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Stealth Rock"], ["Pursuit"], ["Rock Slide"], ["Thunder Wave", "Roar"]] - }, - { - "species": "Tyranitar", - "item": "Shuca Berry", - "ability": "Sand Stream", - "evs": {"hp": 248, "atk": 72, "def": 0, "spa": 0, "spd": 188, "spe": 0}, - "nature": "Careful", - "moves": [["Stealth Rock"], ["Low Kick"], ["Rock Slide"], ["Thunder Wave", "Roar"]] - } - ] - }, - "shayminsky": { - "flags": {}, - "sets": [ - { - "species": "Shaymin-Sky", - "item": "Life Orb", - "ability": "Serene Grace", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Seed Flare"], ["Air Slash"], ["Earth Power"], ["Healing Wish"]] - }, - { - "species": "Shaymin-Sky", - "item": "Leftovers", - "ability": "Serene Grace", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Leech Seed"], ["Seed Flare"], ["Air Slash"]] - } - ] - }, - "salamence": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Salamence", - "item": "Salamencite", - "ability": "Intimidate", - "evs": {"hp": 200, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Adamant", - "moves": [["Double-Edge"], ["Refresh", "Earthquake"], ["Roost"], ["Dragon Dance"]] - }, - { - "species": "Salamence", - "item": "Salamencite", - "ability": "Intimidate", - "evs": {"hp": 200, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Adamant", - "moves": [["Return"], ["Refresh", "Earthquake"], ["Roost"], ["Dragon Dance"]], - "happiness": 255 - }, - { - "species": "Salamence", - "item": "Salamencite", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Return"], ["Earthquake"], ["Roost"], ["Dragon Dance"]], - "happiness": 255 - }, - { - "species": "Salamence", - "item": "Salamencite", - "ability": "Intimidate", - "evs": {"hp": 248, "atk": 0, "def": 136, "spa": 0, "spd": 0, "spe": 124}, - "nature": "Impish", - "moves": [["Return"], ["Refresh"], ["Roost"], ["Dragon Dance"]], - "happiness": 255 - } - ] - }, - "sableye": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Sableye", - "item": "Sablenite", - "ability": "Prankster", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Bold", - "moves": [["Foul Play"], ["Protect", "Fake Out"], ["Will-O-Wisp"], ["Recover"]] - } - ] - }, - "reshiram": { - "flags": {}, - "sets": [ - { - "species": "Reshiram", - "item": "Choice Scarf", - "ability": "Turboblaze", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Blue Flare"], ["Draco Meteor"], ["Sleep Talk"], ["Stone Edge"]] - }, - { - "species": "Reshiram", - "item": "Life Orb", - "ability": "Turboblaze", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Flame Charge"], ["Blue Flare"], ["Draco Meteor"], ["Stone Edge"]] - }, - { - "species": "Reshiram", - "item": "Leftovers", - "ability": "Turboblaze", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Blue Flare"], ["Draco Meteor"], ["Toxic"], ["Roost"]] - } - ] - }, - "rayquaza": { - "flags": {}, - "sets": [ - { - "species": "Rayquaza", - "item": "Life Orb", - "ability": "Air Lock", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Dragon Dance"], ["Dragon Ascent"], ["Earthquake"], ["Extreme Speed"]] - }, - { - "species": "Rayquaza", - "item": "Life Orb", - "ability": "Air Lock", - "evs": {"hp": 0, "atk": 40, "def": 0, "spa": 252, "spd": 0, "spe": 216}, - "nature": "Rash", - "moves": [["Draco Meteor"], ["Dragon Ascent"], ["Extreme Speed"], ["Earthquake"]] - }, - { - "species": "Rayquaza", - "item": "Life Orb", - "ability": "Air Lock", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Dragon Ascent"], ["Earthquake"], ["Extreme Speed"]] - } - ] - }, - "palkia": { - "flags": {}, - "sets": [ - { - "species": "Palkia", - "item": "Choice Specs", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Draco Meteor"], ["Spacial Rend"], ["Fire Blast"]] - }, - { - "species": "Palkia", - "item": "Lustrous Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Spacial Rend"], ["Fire Blast"], ["Thunder Wave"]] - }, - { - "species": "Palkia", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Surf"], ["Toxic"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Palkia", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 60, "atk": 0, "def": 0, "spa": 196, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Rest"], ["Toxic"], ["Hydro Pump"], ["Spacial Rend"]] - } - ] - }, - "mewtwo": { - "flags": {}, - "sets": [ - { - "species": "Mewtwo", - "item": "Mewtwonite X", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Ice Beam"], ["Low Kick"], ["Earthquake"], ["Rock Slide"]] - }, - { - "species": "Mewtwo", - "item": "Mewtwonite X", - "ability": "Pressure", - "evs": {"hp": 176, "atk": 80, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Low Kick"], ["Taunt"], ["Earthquake"], ["Ice Beam"]] - }, - { - "species": "Mewtwo", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Psystrike"], ["Calm Mind"], ["Ice Beam"], ["Focus Blast"]] - }, - { - "species": "Mewtwo", - "item": "Mewtwonite Y", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Psystrike"], ["Calm Mind"], ["Ice Beam"], ["Focus Blast"]] - } - ] - }, - "mawile": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Mawile", - "item": "Mawilite", - "ability": "Intimidate", - "evs": {"hp": 248, "atk": 16, "def": 0, "spa": 0, "spd": 244, "spe": 0}, - "nature": "Adamant", - "moves": [["Iron Head"], ["Play Rough"], ["Sucker Punch"], ["Baton Pass"]] - } - ] - }, - "lugia": { - "flags": {}, - "sets": [ - { - "species": "Lugia", - "item": "Leftovers", - "ability": "Multiscale", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Bold", - "moves": [["Roost"], ["Ice Beam"], ["Whirlwind"], ["Toxic"]] - } - ] - }, - "lucario": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Lucario", - "item": "Lucarionite", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Close Combat"], ["Bullet Punch"], ["Stone Edge"], ["Iron Tail"]] - } - ] - }, - "latios": { - "flags": {}, - "sets": [ - { - "species": "Latios", - "item": "Soul Dew", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Defog"], ["Memento", "Recover"]] - }, - { - "species": "Latios", - "item": "Soul Dew", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Defog"], ["Hidden Power Fire"]] - }, - { - "species": "Latios", - "item": "Soul Dew", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Calm Mind"], ["Memento", "Recover"]] - }, - { - "species": "Latios", - "item": "Soul Dew", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Calm Mind"], ["Hidden Power Fire"]] - } - ] - }, - "latias": { - "flags": {}, - "sets": [ - { - "species": "Latias", - "item": "Soul Dew", - "ability": "Levitate", - "evs": {"hp": 212, "atk": 0, "def": 0, "spa": 120, "spd": 0, "spe": 176}, - "nature": "Timid", - "moves": [["Defog"], ["Draco Meteor"], ["Psyshock"], ["Recover", "Healing Wish"]] - }, - { - "species": "Latias", - "item": "Soul Dew", - "ability": "Levitate", - "evs": {"hp": 80, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 176}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Draco Meteor"], ["Psyshock"], ["Recover"]] - } - ] - }, - "kyuremwhite": { - "flags": {}, - "sets": [ - { - "species": "Kyurem-White", - "item": "Choice Specs", - "ability": "Turboblaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Ice Beam"], ["Fusion Flare"], ["Earth Power"]] - }, - { - "species": "Kyurem-White", - "item": "Life Orb", - "ability": "Turboblaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Ice Beam"], ["Fusion Flare"], ["Stone Edge"]] - } - ] - }, - "kyogre": { - "flags": {}, - "sets": [ - { - "species": "Kyogre", - "item": "Blue Orb", - "ability": "Drizzle", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Origin Pulse"], ["Thunder"], ["Ice Beam"], ["Calm Mind"]] - }, - { - "species": "Kyogre", - "item": "Blue Orb", - "ability": "Drizzle", - "evs": {"hp": 248, "atk": 0, "def": 248, "spa": 0, "spd": 0, "spe": 12}, - "nature": "Bold", - "moves": [["Rest"], ["Sleep Talk"], ["Scald"], ["Ice Beam", "Roar"]] - }, - { - "species": "Kyogre", - "item": "Blue Orb", - "ability": "Drizzle", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 248, "spd": 0, "spe": 12}, - "nature": "Modest", - "moves": [["Origin Pulse"], ["Thunder", "Rest", "Substitute"], ["Ice Beam"], ["Calm Mind"]] - }, - { - "species": "Kyogre", - "item": "Choice Specs", - "ability": "Drizzle", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Water Spout"], ["Origin Pulse", "Scald"], ["Ice Beam"], ["Thunder"]] - }, - { - "species": "Kyogre", - "item": "Choice Scarf", - "ability": "Drizzle", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Water Spout"], ["Ice Beam"], ["Origin Pulse"], ["Thunder", "Sleep Talk"]] - } - ] - }, - "kangaskhan": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Kangaskhan", - "item": "Kangaskhanite", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Return"], ["Fake Out"], ["Power-Up Punch"], ["Crunch"]], - "happiness": 255 - }, - { - "species": "Kangaskhan", - "item": "Kangaskhanite", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Double-Edge"], ["Fake Out"], ["Sucker Punch"], ["Low Kick"]] - }, - { - "species": "Kangaskhan", - "item": "Kangaskhanite", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Return"], ["Fake Out"], ["Sucker Punch"], ["Low Kick"]], - "happiness": 255 - } - ] - }, - "hooh": { - "flags": {}, - "sets": [ - { - "species": "Ho-Oh", - "item": "Choice Band", - "ability": "Regenerator", - "evs": {"hp": 248, "atk": 208, "def": 0, "spa": 0, "spd": 52, "spe": 0}, - "nature": "Adamant", - "moves": [["Brave Bird"], ["Sacred Fire"], ["Earthquake"], ["Sleep Talk"]] - }, - { - "species": "Ho-Oh", - "item": "Life Orb", - "ability": "Regenerator", - "evs": {"hp": 248, "atk": 208, "def": 0, "spa": 0, "spd": 52, "spe": 0}, - "nature": "Adamant", - "moves": [["Brave Bird"], ["Sacred Fire"], ["Recover"], ["Thunder Wave", "Earthquake", "Substitute"]] - } - ] - }, - "groudon": { - "flags": {}, - "sets": [ - { - "species": "Groudon", - "item": "Red Orb", - "ability": "Drought", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 200, "spe": 56}, - "nature": "Adamant", - "moves": [["Rock Polish"], ["Precipice Blades", "Earthquake"], ["Stone Edge"], ["Swords Dance", "Dragon Claw"]] - }, - { - "species": "Groudon", - "item": "Red Orb", - "ability": "Drought", - "evs": {"hp": 248, "atk": 0, "def": 56, "spa": 0, "spd": 192, "spe": 12}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Precipice Blades", "Earthquake"], ["Lava Plume", "Stone Edge"], ["Thunder Wave", "Roar"]] - }, - { - "species": "Groudon", - "item": "Red Orb", - "ability": "Drought", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Lava Plume"], ["Roar"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Groudon", - "item": "Leftovers", - "ability": "Drought", - "evs": {"hp": 248, "atk": 0, "def": 248, "spa": 0, "spd": 0, "spe": 12}, - "nature": "Impish", - "moves": [["Precipice Blades"], ["Stealth Rock"], ["Stone Edge"], ["Dragon Tail", "Roar"]] - } - ] - }, - "greninja": { - "flags": {}, - "sets": [ - { - "species": "Greninja", - "item": "Focus Sash", - "ability": "Protean", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Toxic Spikes"], ["Spikes"], ["Taunt"], ["Shadow Sneak"]] - }, - { - "species": "Greninja", - "item": "Focus Sash", - "ability": "Protean", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Toxic Spikes"], ["Scald"], ["Taunt"], ["Shadow Sneak"]] - } - ] - }, - "giratina": { - "flags": {}, - "sets": [ - { - "species": "Giratina", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Sleep Talk"], ["Will-O-Wisp"], ["Roar"]] - }, - { - "species": "Giratina", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Rest"], ["Sleep Talk"], ["Will-O-Wisp"], ["Roar"]] - } - ] - }, - "giratinaorigin": { - "flags": {}, - "sets": [ - { - "species": "Giratina-Origin", - "item": "Griseous Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 180, "def": 0, "spa": 252, "spd": 0, "spe": 76}, - "nature": "Rash", - "moves": [["Draco Meteor"], ["Shadow Sneak"], ["Dragon Tail"], ["Defog"]] - }, - { - "species": "Giratina-Origin", - "item": "Griseous Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 244, "def": 252, "spa": 0, "spd": 0, "spe": 12}, - "nature": "Adamant", - "moves": [["Defog"], ["Shadow Sneak"], ["Dragon Tail"], ["Shadow Force"]] - } - ] - }, - "gengar": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Gengar", - "item": "Gengarite", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Taunt"], ["Destiny Bond"], ["Sludge Wave"], ["Focus Blast"]] - }, - { - "species": "Gengar", - "item": "Gengarite", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 84, "spe": 176}, - "nature": "Timid", - "moves": [["Perish Song"], ["Taunt"], ["Protect"], ["Disable"]] - } - ] - }, - "genesect": { - "flags": {}, - "sets": [ - { - "species": "Genesect", - "item": "Choice Scarf", - "ability": "Download", - "evs": {"hp": 0, "atk": 248, "def": 0, "spa": 8, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["U-turn"], ["Iron Head"], ["Explosion"], ["Ice Beam"]] - } - ] - }, - "ferrothorn": { - "flags": {}, - "sets": [ - { - "species": "Ferrothorn", - "item": "Leftovers", - "ability": "Iron Barbs", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Leech Seed"], ["Spikes"], ["Power Whip", "Gyro Ball"], ["Protect"]] - }, - { - "species": "Ferrothorn", - "item": "Leftovers", - "ability": "Iron Barbs", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Leech Seed"], ["Spikes"], ["Power Whip"], ["Protect", "Gyro Ball"]] - } - ] - }, - "excadrill": { - "flags": {}, - "sets": [ - { - "species": "Excadrill", - "item": "Life Orb", - "ability": "Sand Rush", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Iron Head"], ["Earthquake"], ["Rock Slide"], ["Rapid Spin"]] - }, - { - "species": "Excadrill", - "item": "Air Balloon", - "ability": "Sand Rush", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Iron Head"], ["Earthquake"], ["Swords Dance"], ["Rapid Spin"]] - } - ] - }, - "dialga": { - "flags": {}, - "sets": [ - { - "species": "Dialga", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Stealth Rock"], ["Toxic"], ["Draco Meteor"], ["Fire Blast"]] - }, - { - "species": "Dialga", - "item": "Shuca Berry", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Flash Cannon"], ["Fire Blast"], ["Stealth Rock"]] - } - ] - }, - "deoxys": { - "flags": {}, - "sets": [ - { - "species": "Deoxys", - "item": "Focus Sash", - "ability": "Pressure", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Psycho Boost"], ["Stealth Rock"], ["Spikes"], ["Taunt"]] - } - ] - }, - "deoxysattack": { - "flags": {}, - "sets": [ - { - "species": "Deoxys-Attack", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Psycho Boost"], ["Low Kick"], ["Ice Beam"], ["Extreme Speed"]] - }, - { - "species": "Deoxys-Attack", - "item": "Focus Sash", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Spikes"], ["Psycho Boost"], ["Knock Off"], ["Extreme Speed"]] - } - ] - }, - "deoxysdefense": { - "flags": {}, - "sets": [ - { - "species": "Deoxys-Defense", - "item": "Mental Herb", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Recover"], ["Spikes"], ["Skill Swap"], ["Toxic"]] - } - ] - }, - "deoxysspeed": { - "flags": {}, - "sets": [ - { - "species": "Deoxys-Speed", - "item": "Focus Sash", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Taunt"], ["Spikes"], ["Knock Off"]] - }, - { - "species": "Deoxys-Speed", - "item": "Light Clay", - "ability": "Pressure", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Stealth Rock"], ["Taunt"], ["Reflect"], ["Light Screen"]] - } - ] - }, - "darkrai": { - "flags": {}, - "sets": [ - { - "species": "Darkrai", - "item": "Life Orb", - "ability": "Bad Dreams", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Dark Void"], ["Dark Pulse"], ["Nasty Plot", "Taunt"], ["Sludge Bomb", "Thunder", "Focus Blast"]] - } - ] - }, - "blissey": { - "flags": {}, - "sets": [ - { - "species": "Blissey", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 20, "atk": 0, "def": 236, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Ice Beam"], ["Toxic"], ["Soft-Boiled", "Wish"], ["Heal Bell", "Protect"]] - }, - { - "species": "Blissey", - "item": "Shed Shell", - "ability": "Natural Cure", - "evs": {"hp": 20, "atk": 0, "def": 236, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Toxic"], ["Seismic Toss", "Snatch"], ["Soft-Boiled", "Wish"], ["Heal Bell", "Protect"]] - } - ] - }, - "blaziken": { - "flags": {}, - "sets": [ - { - "species": "Blaziken", - "item": "Leftovers", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Baton Pass"], ["Protect"], ["Swords Dance"], ["Flare Blitz"]] - }, - { - "species": "Blaziken", - "item": "Blazikenite", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Low Kick"], ["Flare Blitz"], ["Protect"], ["Stone Edge", "Knock Off"]] - }, - { - "species": "Blaziken", - "item": "Blazikenite", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Low Kick"], ["Flare Blitz"], ["Protect"], ["Hidden Power Ice"]] - }, - { - "species": "Blaziken", - "item": "Life Orb", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Low Kick"], ["Flare Blitz"], ["Protect"], ["Hidden Power Ice"]] - }, - { - "species": "Blaziken", - "item": "Life Orb", - "ability": "Speed Boost", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Low Kick"], ["Flare Blitz"], ["Protect"], ["Stone Edge", "Knock Off"]] - } - ] - }, - "arceuswater": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Water", - "item": "Splash Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 204, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Bold", - "moves": [["Ice Beam", "Judgment"], ["Defog"], ["Recover"], ["Toxic"]] - } - ] - }, - "arceussteel": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Steel", - "item": "Iron Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 84, "spd": 0, "spe": 176}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Earth Power", "Thunder"]] - }, - { - "species": "Arceus-Steel", - "item": "Iron Plate", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Iron Head"], ["Earthquake"], ["Stone Edge", "Recover", "Extreme Speed"]] - } - ] - }, - "arceusfire": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Fire", - "item": "Flame Plate", - "ability": "Multitype", - "evs": {"hp": 200, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 56}, - "nature": "Modest", - "moves": [["Overheat", "Fire Blast"], ["Calm Mind"], ["Thunder"], ["Earth Power"]] - } - ] - }, - "arceusflying": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Flying", - "item": "Sky Plate", - "ability": "Multitype", - "evs": {"hp": 132, "atk": 0, "def": 0, "spa": 200, "spd": 0, "spe": 176}, - "nature": "Timid", - "moves": [["Judgment"], ["Calm Mind"], ["Recover"], ["Refresh", "Earth Power", "Substitute"]] - } - ] - }, - "arceuspsychic": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Psychic", - "item": "Mind Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 204, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Bold", - "moves": [["Fire Blast", "Payback"], ["Ice Beam"], ["Recover"], ["Toxic"]] - } - ] - }, - "arceuspoison": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Poison", - "item": "Toxic Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 204, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Impish", - "moves": [["Defog"], ["Poison Jab"], ["Thunder Wave"], ["Recover"]] - } - ] - }, - "arceusbug": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Bug", - "item": "Insect Plate", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["X-Scissor"], ["Stone Edge"], ["Earthquake"]] - } - ] - }, - "arceusfighting": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Fighting", - "item": "Fist Plate", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 0, "def": 40, "spa": 252, "spd": 0, "spe": 216}, - "nature": "Modest", - "moves": [["Judgment"], ["Thunder Wave"], ["Recover"], ["Ice Beam", "Stone Edge"]] - } - ] - }, - "arceusfairy": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Fairy", - "item": "Pixie Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 204, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Bold", - "moves": [["Judgment"], ["Recover"], ["Defog"], ["Toxic"]] - }, - { - "species": "Arceus-Fairy", - "item": "Pixie Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Judgment"], ["Calm Mind"], ["Recover"], ["Earth Power", "Thunder"]] - } - ] - }, - "arceusice": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Ice", - "item": "Icicle Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Judgment"], ["Recover"], ["Calm Mind"], ["Thunder", "Fire Blast"]] - } - ] - }, - "arceusrock": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Rock", - "item": "Stone Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Judgment"], ["Defog"], ["Recover"], ["Will-O-Wisp"]] - } - ] - }, - "arceusghost": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Ghost", - "item": "Spooky Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Will-O-Wisp"]] - }, - { - "species": "Arceus-Ghost", - "item": "Spooky Plate", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Shadow Force"], ["Shadow Claw", "Brick Break"], ["Extreme Speed"]] - }, - { - "species": "Arceus-Ghost", - "item": "Spooky Plate", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Shadow Force"], ["Shadow Claw"], ["Brick Break"]] - } - ] - }, - "arceusdragon": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Dragon", - "item": "Draco Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 204, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Bold", - "moves": [["Judgment"], ["Defog"], ["Recover"], ["Toxic"]] - }, - { - "species": "Arceus-Dragon", - "item": "Draco Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 84, "spd": 0, "spe": 176}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Judgment"], ["Fire Blast"], ["Recover"]] - } - ] - }, - "arceus": { - "flags": {}, - "sets": [ - { - "species": "Arceus", - "item": "Life Orb", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Extreme Speed"], ["Earthquake"], ["Stone Edge", "Shadow Claw"]] - }, - { - "species": "Arceus", - "item": "Silk Scarf", - "ability": "Multitype", - "evs": {"hp": 200, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 56}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Extreme Speed"], ["Earthquake", "Shadow Force"], ["Refresh"]] - } - ] - }, - "arceusdark": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Dark", - "item": "Dread Plate", - "ability": "Multitype", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 0, "spd": 144, "spe": 112}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Refresh"]] - } - ] - }, - "arceusgrass": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Grass", - "item": "Meadow Plate", - "ability": "Multitype", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 148, "spe": 112}, - "nature": "Timid", - "moves": [["Grass Knot"], ["Recover"], ["Ice Beam"], ["Defog"]] - } - ] - }, - "arceuselectric": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Electric", - "item": "Zap Plate", - "ability": "Multitype", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Judgment"], ["Ice Beam"], ["Recover"]] - } - ] - }, - "arceusground": { - "flags": {}, - "sets": [ - { - "species": "Arceus-Ground", - "item": "Earth Plate", - "ability": "Multitype", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Earthquake"], ["Stone Edge"], ["Recover", "Extreme Speed"]] - } - ] - }, - "aegislash": { - "flags": {}, - "sets": [ - { - "species": "Aegislash", - "item": "Leftovers", - "ability": "Stance Change", - "evs": {"hp": 252, "atk": 4, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Sassy", - "moves": [["King's Shield"], ["Toxic"], ["Gyro Ball"], ["Pursuit"]] - } - ] - }, - "scizor": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Scizor", - "item": "Scizorite", - "ability": "Technician", - "evs": {"hp": 212, "atk": 60, "def": 152, "spa": 0, "spd": 84, "spe": 0}, - "nature": "Impish", - "moves": [["Toxic"], ["Roost"], ["Defog"], ["Bullet Punch"]] - } - ] - }, - "diancie": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Diancie", - "item": "Diancite", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 68, "def": 0, "spa": 188, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Diamond Storm"], ["Moonblast"], ["Earth Power", "Protect"], ["Stealth Rock"]] - }, - { - "species": "Diancie", - "item": "Diancite", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 68, "def": 0, "spa": 188, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Diamond Storm"], ["Moonblast"], ["Earth Power"], ["Protect"]] - } - ] - }, - "landorus": { - "flags": {}, - "sets": [ - { - "species": "Landorus", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Knock Off"], ["Earth Power"], ["Rock Slide"], ["Sludge Wave"]] - }, - { - "species": "Landorus", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Knock Off"], ["Earth Power"], ["Rock Slide"], ["Hidden Power Ice"]] - } - ] - } - }, - "OU": { - "diancie": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Diancie", - "item": "Diancite", - "ability": "Clear Body", - "evs": {"hp": 44, "atk": 32, "def": 0, "spa": 252, "spd": 0, "spe": 180}, - "nature": "Rash", - "moves": [["Moonblast"], ["Diamond Storm"], ["Earth Power"], ["Rock Polish"]] - }, - { - "species": "Diancie", - "item": "Diancite", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Moonblast"], ["Earth Power"], ["Hidden Power Fire"]] - }, - { - "species": "Diancie", - "item": "Diancite", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 32, "def": 0, "spa": 224, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Diamond Storm"], ["Moonblast"], ["Earth Power"], ["Protect"]] - } - ] - }, - "hippowdon": { - "flags": {}, - "sets": [ - { - "species": "Hippowdon", - "gender": "M", - "item": "Leftovers", - "ability": "Sand Stream", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Impish", - "moves": [["Slack Off"], ["Stealth Rock"], ["Stone Edge"], ["Earthquake"]] - }, - { - "species": "Hippowdon", - "gender": "M", - "item": "Leftovers", - "ability": "Sand Stream", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Slack Off"], ["Stealth Rock"], ["Stone Edge"], ["Earthquake"]] - }, - { - "species": "Hippowdon", - "gender": "M", - "item": "Leftovers", - "ability": "Sand Stream", - "evs": {"hp": 252, "atk": 0, "def": 144, "spa": 0, "spd": 112, "spe": 0}, - "nature": "Careful", - "moves": [["Slack Off"], ["Stealth Rock"], ["Whirlwind"], ["Earthquake"]] - } - ] - }, - "jirachi": { - "flags": {}, - "sets": [ - { - "species": "Jirachi", - "item": "Leftovers", - "ability": "Serene Grace", - "evs": {"hp": 252, "atk": 160, "def": 0, "spa": 0, "spd": 0, "spe": 96}, - "nature": "Jolly", - "moves": [["Iron Head"], ["Fire Punch"], ["Substitute"], ["Toxic"]] - }, - { - "species": "Jirachi", - "item": "Leftovers", - "ability": "Serene Grace", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 0, "spd": 224, "spe": 32}, - "nature": "Careful", - "moves": [["Wish"], ["Protect"], ["Iron Head"], ["Body Slam"]] - }, - { - "species": "Jirachi", - "item": "Choice Scarf", - "ability": "Serene Grace", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["U-turn"], ["Iron Head"], ["Ice Punch"], ["Fire Punch"]] - } - ] - }, - "celebi": { - "flags": {}, - "sets": [ - { - "species": "Celebi", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 252, "atk": 0, "def": 148, "spa": 0, "spd": 0, "spe": 108}, - "nature": "Bold", - "moves": [["Earth Power"], ["Nasty Plot"], ["Giga Drain"], ["Recover"]] - }, - { - "species": "Celebi", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 252, "atk": 0, "def": 156, "spa": 0, "spd": 84, "spe": 16}, - "nature": "Bold", - "moves": [["Thunder Wave"], ["Recover"], ["Giga Drain"], ["Stealth Rock"]] - } - ] - }, - "zygarde": { - "flags": {}, - "sets": [ - { - "species": "Zygarde", - "item": "Life Orb", - "ability": "Aura Break", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Dragon Dance"], ["Earthquake"], ["Outrage"], ["Extreme Speed"]] - }, - { - "species": "Zygarde", - "item": "Leftovers", - "ability": "Aura Break", - "evs": {"hp": 200, "atk": 0, "def": 0, "spa": 0, "spd": 252, "spe": 56}, - "nature": "Careful", - "moves": [["Substitute"], ["Coil"], ["Earthquake"], ["Dragon Tail"]] - } - ] - }, - "weavile": { - "flags": {}, - "sets": [ - { - "species": "Weavile", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Ice Punch"], ["Knock Off"], ["Ice Shard"], ["Low Kick"]] - }, - { - "species": "Weavile", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Pursuit"], ["Knock Off"], ["Ice Shard"], ["Icicle Crash"]] - } - ] - }, - "volcarona": { - "flags": {}, - "sets": [ - { - "species": "Volcarona", - "item": "Leftovers", - "ability": "Flame Body", - "evs": {"hp": 248, "atk": 0, "def": 136, "spa": 0, "spd": 0, "spe": 124}, - "nature": "Bold", - "moves": [["Quiver Dance"], ["Fiery Dance"], ["Giga Drain"], ["Roost"]] - }, - { - "species": "Volcarona", - "item": "Lum Berry", - "ability": "Flame Body", - "evs": {"hp": 96, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 160}, - "nature": "Modest", - "moves": [["Quiver Dance"], ["Fire Blast"], ["Giga Drain"], ["Bug Buzz"]] - } - ] - }, - "victini": { - "flags": {}, - "sets": [ - { - "species": "Victini", - "item": "Choice Band", - "ability": "Victory Star", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["V-create"], ["Bolt Strike"], ["Brick Break"], ["U-turn"]] - }, - { - "species": "Victini", - "item": "Choice Scarf", - "ability": "Victory Star", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["V-create"], ["Bolt Strike"], ["U-turn"], ["Final Gambit"]] - }, - { - "species": "Victini", - "item": "Expert Belt", - "ability": "Victory Star", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Blue Flare"], ["Thunder"], ["Glaciate"], ["Focus Blast"]] - }, - { - "species": "Victini", - "item": "Leftovers", - "ability": "Victory Star", - "evs": {"hp": 248, "atk": 32, "def": 68, "spa": 0, "spd": 0, "spe": 160}, - "nature": "Adamant", - "moves": [["Taunt"], ["V-create"], ["Will-O-Wisp"], ["Bolt Strike"]] - }, - { - "species": "Victini", - "item": "Leftovers", - "ability": "Victory Star", - "evs": {"hp": 96, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 160}, - "nature": "Adamant", - "moves": [["Substitute"], ["V-create"], ["Bolt Strike"], ["Power-Up Punch"]] - } - ] - }, - "tornadustherian": { - "flags": {}, - "sets": [ - { - "species": "Tornadus-Therian", - "item": "Assault Vest", - "ability": "Regenerator", - "evs": {"hp": 132, "atk": 0, "def": 0, "spa": 160, "spd": 0, "spe": 216}, - "nature": "Timid", - "moves": [["Hurricane"], ["Focus Blast"], ["Knock Off"], ["U-turn"]] - }, - { - "species": "Tornadus-Therian", - "item": "Life Orb", - "ability": "Regenerator", - "evs": {"hp": 0, "atk": 76, "def": 0, "spa": 216, "spd": 0, "spe": 216}, - "nature": "Naive", - "moves": [["Hurricane"], ["Superpower"], ["U-turn"], ["Taunt"]] - } - ] - }, - "togekiss": { - "flags": {}, - "sets": [ - { - "species": "Togekiss", - "item": "Lum Berry", - "ability": "Serene Grace", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Nasty Plot"], ["Air Slash"], ["Aura Sphere"], ["Roost"]] - }, - { - "species": "Togekiss", - "item": "Leftovers", - "ability": "Serene Grace", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Thunder Wave"], ["Air Slash"], ["Defog"], ["Roost"]] - } - ] - }, - "staraptor": { - "flags": {}, - "sets": [ - { - "species": "Staraptor", - "item": "Choice Band", - "ability": "Reckless", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Close Combat"], ["U-turn"], ["Double-Edge"]] - }, - { - "species": "Staraptor", - "item": "Choice Scarf", - "ability": "Reckless", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Double-Edge"], ["Close Combat"], ["U-turn"]] - } - ] - }, - "thundurustherian": { - "flags": {}, - "sets": [ - { - "species": "Thundurus-Therian", - "item": "Leftovers", - "ability": "Volt Absorb", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Thunderbolt"], ["Hidden Power Ice"], ["Focus Blast"]] - }, - { - "species": "Thundurus-Therian", - "item": "Choice Scarf", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Hidden Power Ice"], ["Focus Blast"], ["U-turn"]] - }, - { - "species": "Thundurus-Therian", - "item": "Leftovers", - "ability": "Volt Absorb", - "evs": {"hp": 128, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 128}, - "nature": "Modest", - "moves": [["Agility"], ["Nasty Plot"], ["Thunderbolt"], ["Hidden Power Ice"]] - } - ] - }, - "scolipede": { - "flags": {}, - "sets": [ - { - "species": "Scolipede", - "item": "Life Orb", - "ability": "Speed Boost", - "evs": {"hp": 16, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 236}, - "nature": "Adamant", - "moves": [["Megahorn"], ["Earthquake"], ["Poison Jab"], ["Protect"]] - } - ] - }, - "medicham": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Medicham", - "item": "Medichamite", - "ability": "Pure Power", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["High Jump Kick"], ["Zen Headbutt"], ["Fake Out"], ["Ice Punch"]] - } - ] - }, - "manaphy": { - "flags": {}, - "sets": [ - { - "species": "Manaphy", - "item": "Leftovers", - "ability": "Hydration", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Rest"], ["Rain Dance"], ["Scald"]] - }, - { - "species": "Manaphy", - "item": "Leftovers", - "ability": "Hydration", - "evs": {"hp": 96, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 160}, - "nature": "Timid", - "moves": [["Tail Glow"], ["Surf"], ["Ice Beam"], ["Energy Ball"]] - }, - { - "species": "Manaphy", - "item": "Leftovers", - "ability": "Hydration", - "evs": {"hp": 96, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 160}, - "nature": "Timid", - "moves": [["Tail Glow"], ["Rain Dance"], ["Scald"], ["Psychic"]] - } - ] - }, - "klefki": { - "flags": {}, - "sets": [ - { - "species": "Klefki", - "item": "Light Clay", - "ability": "Prankster", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Bold", - "moves": [["Reflect"], ["Light Screen"], ["Spikes"], ["Foul Play"]] - }, - { - "species": "Klefki", - "item": "Leftovers", - "ability": "Prankster", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Thunder Wave"], ["Magnet Rise"], ["Spikes"], ["Play Rough"]] - } - ] - }, - "hawlucha": { - "flags": {}, - "sets": [ - { - "species": "Hawlucha", - "item": "Sitrus Berry", - "ability": "Unburden", - "evs": {"hp": 12, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 244}, - "nature": "Jolly", - "moves": [["Substitute"], ["Swords Dance"], ["High Jump Kick"], ["Acrobatics"]] - }, - { - "species": "Hawlucha", - "item": "Power Herb", - "ability": "Unburden", - "evs": {"hp": 12, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 244}, - "nature": "Jolly", - "moves": [["Sky Attack"], ["Swords Dance"], ["High Jump Kick"], ["Acrobatics"]] - } - ] - }, - "diggersby": { - "flags": {}, - "sets": [ - { - "species": "Diggersby", - "item": "Choice Scarf", - "ability": "Huge Power", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Return"], ["Earthquake"], ["Fire Punch"], ["U-turn"]], - "happiness": 255 - }, - { - "species": "Diggersby", - "item": "Focus Sash", - "ability": "Huge Power", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Earthquake"], ["Return"], ["Quick Attack"]], - "happiness": 255 - }, - { - "species": "Diggersby", - "item": "Life Orb", - "ability": "Huge Power", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Earthquake"], ["Return"], ["Quick Attack"]], - "happiness": 255 - }, - { - "species": "Diggersby", - "item": "Focus Sash", - "ability": "Huge Power", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Earthquake"], ["Return"], ["Fire Punch"]], - "happiness": 255 - } - ] - }, - "crawdaunt": { - "flags": {}, - "sets": [ - { - "species": "Crawdaunt", - "item": "Life Orb", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Crabhammer"], ["Knock Off"], ["Aqua Jet"], ["Swords Dance"]] - }, - { - "species": "Crawdaunt", - "item": "Choice Band", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Crabhammer"], ["Knock Off"], ["Aqua Jet"], ["Crunch"]] - } - ] - }, - "alakazam": { - "flags": {}, - "sets": [ - { - "species": "Alakazam", - "item": "Focus Sash", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Shadow Ball"], ["Hidden Power Ice"], ["Thunder Wave"]] - }, - { - "species": "Alakazam", - "item": "Life Orb", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Shadow Ball"], ["Focus Blast"], ["Encore"]] - }, - { - "species": "Alakazam", - "item": "Life Orb", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Shadow Ball"], ["Focus Blast"], ["Hidden Power Ice"]] - }, - { - "species": "Alakazam", - "item": "Alakazite", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Shadow Ball"], ["Focus Blast"], ["Encore"]] - } - ] - }, - "zapdos": { - "flags": {}, - "sets": [ - { - "species": "Zapdos", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 252, "atk": 0, "def": 168, "spa": 68, "spd": 0, "spe": 20}, - "nature": "Bold", - "moves": [["Thunderbolt"], ["Roost"], ["Defog"], ["Heat Wave"]] - } - ] - }, - "venusaur": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Venusaur", - "item": "Venusaurite", - "ability": "Chlorophyll", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Bold", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Synthesis"], ["Leech Seed"]] - }, - { - "species": "Venusaur", - "item": "Venusaurite", - "ability": "Chlorophyll", - "evs": {"hp": 232, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 20}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Hidden Power Fire"], ["Synthesis"]] - } - ] - }, - "tyranitar": { - "flags": {}, - "sets": [ - { - "species": "Tyranitar", - "item": "Choice Scarf", - "ability": "Sand Stream", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Pursuit"], ["Crunch"], ["Stone Edge"], ["Superpower"]] - }, - { - "species": "Tyranitar", - "item": "Tyranitarite", - "ability": "Sand Stream", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Stone Edge"], ["Superpower"], ["Ice Punch"]] - }, - { - "species": "Tyranitar", - "item": "Leftovers", - "ability": "Sand Stream", - "evs": {"hp": 248, "atk": 0, "def": 80, "spa": 0, "spd": 180, "spe": 0}, - "nature": "Relaxed", - "moves": [["Stealth Rock"], ["Stone Edge"], ["Ice Beam"], ["Pursuit"]] - }, - { - "species": "Tyranitar", - "item": "Choice Band", - "ability": "Sand Stream", - "evs": {"hp": 100, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 156}, - "nature": "Adamant", - "moves": [["Pursuit"], ["Crunch"], ["Stone Edge"], ["Superpower"]] - } - ] - }, - "thundurus": { - "flags": {}, - "sets": [ - { - "species": "Thundurus", - "item": "Life Orb", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 76, "def": 0, "spa": 180, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Thunderbolt"], ["Knock Off"], ["Superpower"], ["Hidden Power Ice"]] - }, - { - "species": "Thundurus", - "item": "Leftovers", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Thunderbolt"], ["Hidden Power Ice"], ["Focus Blast"]] - }, - { - "species": "Thundurus", - "item": "Life Orb", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunder Wave"], ["Thunderbolt"], ["Hidden Power Ice"], ["Focus Blast"]] - } - ] - }, - "terrakion": { - "flags": {}, - "sets": [ - { - "species": "Terrakion", - "item": "Choice Scarf", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Close Combat"], ["Stone Edge"], ["X-Scissor"], ["Rock Slide"]] - }, - { - "species": "Terrakion", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Close Combat"], ["Stone Edge"], ["Swords Dance"], ["Hidden Power Ice"]] - }, - { - "species": "Terrakion", - "item": "Focus Sash", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Close Combat"], ["Stone Edge"], ["Taunt"]] - }, - { - "species": "Terrakion", - "item": "Lum Berry", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Rock Polish"], ["Stone Edge"], ["Close Combat"]] - } - ] - }, - "talonflame": { - "flags": {}, - "sets": [ - { - "species": "Talonflame", - "ability": "Gale Wings", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Bulk Up"], ["Acrobatics"], ["Roost"], ["Taunt"]] - }, - { - "species": "Talonflame", - "item": "Choice Band", - "ability": "Gale Wings", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Brave Bird"], ["Flare Blitz"], ["U-turn"], ["Steel Wing"]] - }, - { - "species": "Talonflame", - "ability": "Gale Wings", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Acrobatics"], ["Taunt"], ["Roost"], ["Will-O-Wisp"]] - }, - { - "species": "Talonflame", - "item": "Sharp Beak", - "ability": "Gale Wings", - "evs": {"hp": 88, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 168}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Brave Bird"], ["Flare Blitz"], ["Roost"]] - }, - { - "species": "Talonflame", - "item": "Liechi Berry", - "ability": "Gale Wings", - "evs": {"hp": 88, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 168}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Natural Gift"], ["Brave Bird"], ["Flare Blitz"]] - }, - { - "species": "Talonflame", - "ability": "Gale Wings", - "evs": {"hp": 248, "atk": 252, "def": 8, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Acrobatics"], ["Will-O-Wisp"], ["Roost"]] - } - ] - }, - "sylveon": { - "flags": {}, - "sets": [ - { - "species": "Sylveon", - "item": "Choice Specs", - "ability": "Pixilate", - "evs": {"hp": 244, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 12}, - "nature": "Modest", - "moves": [["Hyper Voice"], ["Psyshock"], ["Shadow Ball"], ["Hidden Power Ground"]] - } - ] - }, - "slowbro": { - "flags": {}, - "sets": [ - { - "species": "Slowbro", - "item": "Slowbronite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 80, "spa": 0, "spd": 176, "spe": 0}, - "nature": "Bold", - "moves": [["Scald"], ["Calm Mind"], ["Slack Off"], ["Psyshock"]] - }, - { - "species": "Slowbro", - "item": "Slowbronite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 0}, - "nature": "Modest", - "moves": [["Fire Blast"], ["Scald"], ["Psyshock"], ["Slack Off"]] - }, - { - "species": "Slowbro", - "item": "Leftovers", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 232, "spa": 0, "spd": 24, "spe": 0}, - "nature": "Bold", - "moves": [["Scald"], ["Psyshock"], ["Thunder Wave"], ["Slack Off"]] - } - ] - }, - "skarmory": { - "flags": {}, - "sets": [ - { - "species": "Skarmory", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Iron Head"], ["Spikes"], ["Roost"], ["Whirlwind"]] - }, - { - "species": "Skarmory", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Roost"], ["Defog"], ["Brave Bird"], ["Whirlwind"]] - }, - { - "species": "Skarmory", - "gender": "F", - "item": "Custap Berry", - "ability": "Sturdy", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Spikes"], ["Taunt"], ["Stealth Rock"]] - } - ] - }, - "scizor": { - "flags": {}, - "sets": [ - { - "species": "Scizor", - "item": "Scizorite", - "ability": "Light Metal", - "evs": {"hp": 248, "atk": 84, "def": 0, "spa": 0, "spd": 176, "spe": 0}, - "nature": "Impish", - "moves": [["Swords Dance"], ["Roost"], ["Bullet Punch"], ["Knock Off"]] - }, - { - "species": "Scizor", - "item": "Choice Band", - "ability": "Technician", - "evs": {"hp": 248, "atk": 252, "def": 0, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Adamant", - "moves": [["U-turn"], ["Bullet Punch"], ["Knock Off"], ["Superpower"]] - }, - { - "species": "Scizor", - "item": "Scizorite", - "ability": "Light Metal", - "evs": {"hp": 252, "atk": 4, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Defog"], ["Roost"], ["Bullet Punch"], ["Knock Off"]] - }, - { - "species": "Scizor", - "item": "Scizorite", - "ability": "Light Metal", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Bullet Punch"], ["Bug Bite"], ["Superpower"]] - } - ] - }, - "rotomwash": { - "flags": {}, - "sets": [ - { - "species": "Rotom-Wash", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 216, "spa": 0, "spd": 0, "spe": 44}, - "nature": "Bold", - "moves": [["Volt Switch"], ["Hydro Pump"], ["Will-O-Wisp"], ["Pain Split"]] - } - ] - }, - "pinsir": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Pinsir", - "item": "Pinsirite", - "ability": "Hyper Cutter", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Return"], ["Close Combat"], ["Quick Attack"]], - "happiness": 255 - }, - { - "species": "Pinsir", - "item": "Pinsirite", - "ability": "Hyper Cutter", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Return"], ["Earthquake"], ["Quick Attack"]], - "happiness": 255 - } - ] - }, - "mew": { - "flags": {}, - "sets": [ - { - "species": "Mew", - "item": "Leftovers", - "ability": "Synchronize", - "evs": {"hp": 252, "atk": 0, "def": 104, "spa": 0, "spd": 0, "spe": 152}, - "nature": "Impish", - "moves": [["Defog"], ["Soft-Boiled"], ["Will-O-Wisp"], ["Knock Off"]] - }, - { - "species": "Mew", - "item": "Leftovers", - "ability": "Synchronize", - "evs": {"hp": 252, "atk": 0, "def": 104, "spa": 0, "spd": 0, "spe": 152}, - "nature": "Impish", - "moves": [["Taunt"], ["Soft-Boiled"], ["Will-O-Wisp"], ["Knock Off"]] - } - ] - }, - "metagross": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Metagross", - "item": "Metagrossite", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Meteor Mash"], ["Zen Headbutt"], ["Hammer Arm"], ["Grass Knot"]] - }, - { - "species": "Metagross", - "item": "Metagrossite", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Meteor Mash"], ["Zen Headbutt"], ["Hammer Arm"], ["Pursuit"]] - }, - { - "species": "Metagross", - "item": "Metagrossite", - "ability": "Clear Body", - "evs": {"hp": 80, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 176}, - "nature": "Adamant", - "moves": [["Meteor Mash"], ["Zen Headbutt"], ["Earthquake"], ["Agility"]] - } - ] - }, - "manectric": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Manectric", - "item": "Manectite", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Overheat"], ["Hidden Power Ice"]] - }, - { - "species": "Manectric", - "item": "Manectite", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Flamethrower"], ["Hidden Power Ice"]] - } - ] - }, - "mandibuzz": { - "flags": {}, - "sets": [ - { - "species": "Mandibuzz", - "item": "Leftovers", - "ability": "Overcoat", - "evs": {"hp": 248, "atk": 0, "def": 136, "spa": 0, "spd": 108, "spe": 16}, - "nature": "Bold", - "moves": [["Foul Play"], ["Roost"], ["Taunt"], ["Defog"]] - } - ] - }, - "mamoswine": { - "flags": {}, - "sets": [ - { - "species": "Mamoswine", - "item": "Focus Sash", - "ability": "Thick Fat", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Endeavor"], ["Ice Shard"], ["Earthquake"]] - }, - { - "species": "Mamoswine", - "item": "Life Orb", - "ability": "Thick Fat", - "evs": {"hp": 0, "atk": 240, "def": 0, "spa": 16, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Earthquake"], ["Ice Shard"], ["Icicle Crash"], ["Freeze-Dry"]] - } - ] - }, - "magnezone": { - "flags": {}, - "sets": [ - { - "species": "Magnezone", - "item": "Choice Scarf", - "ability": "Magnet Pull", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Hidden Power Fire"], ["Flash Cannon"], ["Thunderbolt"]] - }, - { - "species": "Magnezone", - "item": "Choice Specs", - "ability": "Magnet Pull", - "evs": {"hp": 172, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 84}, - "nature": "Modest", - "moves": [["Volt Switch"], ["Hidden Power Fire"], ["Flash Cannon"], ["Thunderbolt"]] - } - ] - }, - "lopunny": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Lopunny", - "item": "Lopunnite", - "ability": "Limber", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["High Jump Kick"], ["Return"], ["Fake Out"], ["Ice Punch"]], - "happiness": 255 - }, - { - "species": "Lopunny", - "item": "Lopunnite", - "ability": "Limber", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["High Jump Kick"], ["Return"], ["Fake Out"], ["Power-Up Punch"]], - "happiness": 255 - }, - { - "species": "Lopunny", - "item": "Lopunnite", - "ability": "Limber", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["High Jump Kick"], ["Return"], ["Substitute"], ["Encore"]], - "happiness": 255 - } - ] - }, - "latios": { - "flags": {}, - "sets": [ - { - "species": "Latios", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Defog"], ["Trick"]] - }, - { - "species": "Latios", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Earthquake"], ["Defog"]] - }, - { - "species": "Latios", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Roost"], ["Defog"]] - }, - { - "species": "Latios", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Hidden Power Fire"], ["Defog"]] - }, - { - "species": "Latios", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Psyshock"], ["Calm Mind"], ["Roost"]] - }, - { - "species": "Latios", - "gender": "M", - "item": "Latiosite", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Psyshock"], ["Draco Meteor"], ["Earthquake"], ["Hidden Power Fire"]] - } - ] - }, - "latias": { - "flags": {}, - "sets": [ - { - "species": "Latias", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Defog"], ["Draco Meteor"], ["Psyshock"], ["Healing Wish"]] - }, - { - "species": "Latias", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 72, "atk": 0, "def": 0, "spa": 184, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Defog"], ["Draco Meteor"], ["Psyshock"], ["Roost"]] - }, - { - "species": "Latias", - "gender": "F", - "item": "Latiasite", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 100, "spa": 0, "spd": 0, "spe": 160}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Roost"], ["Substitute"], ["Calm Mind"], ["Stored Power"]] - }, - { - "species": "Latias", - "gender": "F", - "item": "Latiasite", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 68, "spa": 0, "spd": 0, "spe": 192}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Thunder Wave"], ["Roar"], ["Recover"], ["Dragon Pulse"]] - } - ] - }, - "landorustherian": { - "flags": {}, - "sets": [ - { - "species": "Landorus-Therian", - "item": "Choice Scarf", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 24, "spa": 0, "spd": 0, "spe": 232}, - "nature": "Jolly", - "moves": [["Earthquake"], ["U-turn"], ["Explosion"], ["Stone Edge"]] - }, - { - "species": "Landorus-Therian", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 8, "spe": 8}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Earthquake"], ["U-turn"], ["Stone Edge"]] - }, - { - "species": "Landorus-Therian", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 56, "atk": 220, "def": 0, "spa": 0, "spd": 0, "spe": 232}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Rock Polish"], ["Earthquake"], ["Stone Edge"]] - }, - { - "species": "Landorus-Therian", - "item": "Earth Plate", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Earthquake"], ["Stone Edge"], ["U-turn"]] - } - ] - }, - "kyuremblack": { - "flags": {}, - "sets": [ - { - "species": "Kyurem-Black", - "item": "Choice Scarf", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 32, "spd": 0, "spe": 224}, - "nature": "Naive", - "moves": [["Outrage"], ["Dragon Claw"], ["Fusion Bolt"], ["Ice Beam"]] - }, - { - "species": "Kyurem-Black", - "item": "Life Orb", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 56, "spd": 0, "spe": 200}, - "nature": "Lonely", - "moves": [["Dragon Claw"], ["Fusion Bolt"], ["Ice Beam"], ["Iron Head"]] - }, - { - "species": "Kyurem-Black", - "item": "Life Orb", - "ability": "Teravolt", - "evs": {"hp": 0, "atk": 56, "def": 0, "spa": 252, "spd": 0, "spe": 200}, - "nature": "Mild", - "moves": [["Ice Beam"], ["Fusion Bolt"], ["Earth Power"], ["Outrage"]] - }, - { - "species": "Kyurem-Black", - "item": "Leftovers", - "ability": "Teravolt", - "evs": {"hp": 56, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 200}, - "nature": "Mild", - "moves": [["Substitute"], ["Ice Beam"], ["Fusion Bolt"], ["Earth Power"]] - } - ] - }, - "keldeo": { - "flags": {}, - "sets": [ - { - "species": "Keldeo", - "item": "Choice Specs", - "ability": "Justified", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Secret Sword"], ["Scald"], ["Icy Wind"]] - }, - { - "species": "Keldeo", - "item": "Choice Scarf", - "ability": "Justified", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Secret Sword"], ["Scald"], ["Hidden Power Electric"]] - }, - { - "species": "Keldeo", - "item": "Leftovers", - "ability": "Justified", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Scald"], ["Secret Sword"], ["Substitute"], ["Calm Mind"]] - }, - { - "species": "Keldeo", - "item": "Salac Berry", - "ability": "Justified", - "evs": {"hp": 8, "atk": 0, "def": 0, "spa": 248, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Endeavor"], ["Substitute"], ["Hydro Pump"], ["Secret Sword"]] - } - ] - }, - "heracross": { - "flags": {}, - "sets": [ - { - "species": "Heracross", - "item": "Heracronite", - "ability": "Guts", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Close Combat"], ["Pin Missile"], ["Rock Blast"], ["Swords Dance"]] - }, - { - "species": "Heracross", - "item": "Toxic Orb", - "ability": "Guts", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Close Combat"], ["Megahorn"], ["Facade"], ["Swords Dance"]] - } - ] - }, - "heatran": { - "flags": {}, - "sets": [ - { - "species": "Heatran", - "item": "Choice Scarf", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Overheat"], ["Flash Cannon"], ["Earth Power"], ["Stone Edge"]] - }, - { - "species": "Heatran", - "item": "Air Balloon", - "ability": "Flash Fire", - "evs": {"hp": 12, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 244}, - "nature": "Timid", - "moves": [["Stealth Rock"], ["Fire Blast"], ["Taunt"], ["Earth Power"]] - }, - { - "species": "Heatran", - "item": "Leftovers", - "ability": "Flash Fire", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 192, "spe": 68}, - "nature": "Calm", - "moves": [["Lava Plume"], ["Toxic"], ["Taunt"], ["Stealth Rock"]] - } - ] - }, - "gyarados": { - "flags": {}, - "sets": [ - { - "species": "Gyarados", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 88, "atk": 192, "def": 4, "spa": 0, "spd": 0, "spe": 224}, - "nature": "Adamant", - "moves": [["Substitute"], ["Dragon Dance"], ["Waterfall"], ["Bounce"]] - }, - { - "species": "Gyarados", - "item": "Gyaradosite", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Dragon Dance"], ["Waterfall"], ["Crunch"], ["Earthquake"]] - } - ] - }, - "gallade": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Gallade", - "item": "Galladite", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Close Combat"], ["Knock Off"], ["Zen Headbutt"]] - }, - { - "species": "Gallade", - "item": "Galladite", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Close Combat"], ["Ice Punch"], ["Zen Headbutt"]] - } - ] - }, - "gliscor": { - "flags": {}, - "sets": [ - { - "species": "Gliscor", - "item": "Toxic Orb", - "ability": "Poison Heal", - "evs": {"hp": 244, "atk": 0, "def": 0, "spa": 0, "spd": 192, "spe": 72}, - "nature": "Careful", - "moves": [["Swords Dance"], ["Roost"], ["Knock Off"], ["Earthquake"]] - }, - { - "species": "Gliscor", - "item": "Toxic Orb", - "ability": "Poison Heal", - "evs": {"hp": 244, "atk": 0, "def": 0, "spa": 0, "spd": 192, "spe": 72}, - "nature": "Careful", - "moves": [["Taunt"], ["Roost"], ["Knock Off"], ["Earthquake"]] - }, - { - "species": "Gliscor", - "item": "Toxic Orb", - "ability": "Poison Heal", - "evs": {"hp": 244, "atk": 0, "def": 0, "spa": 0, "spd": 192, "spe": 72}, - "nature": "Careful", - "moves": [["Taunt"], ["Roost"], ["Toxic"], ["Earthquake"]] - }, - { - "species": "Gliscor", - "item": "Toxic Orb", - "ability": "Poison Heal", - "evs": {"hp": 244, "atk": 0, "def": 28, "spa": 0, "spd": 0, "spe": 236}, - "nature": "Impish", - "moves": [["Substitute"], ["Toxic"], ["Protect"], ["Earthquake"]] - } - ] - }, - "gengar": { - "flags": {}, - "sets": [ - { - "species": "Gengar", - "item": "Black Sludge", - "ability": "Levitate", - "evs": {"hp": 8, "atk": 0, "def": 0, "spa": 248, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hex"], ["Taunt"], ["Will-O-Wisp"], ["Sludge Wave"]] - }, - { - "species": "Gengar", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Sludge Wave"], ["Focus Blast"], ["Taunt"]] - }, - { - "species": "Gengar", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Pain Split"], ["Shadow Ball"], ["Focus Blast"]] - } - ] - }, - "gardevoir": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Gardevoir", - "item": "Gardevoirite", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 24, "spa": 232, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Calm Mind"], ["Hyper Voice"], ["Psyshock"], ["Focus Blast"]] - }, - { - "species": "Gardevoir", - "item": "Gardevoirite", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 24, "spa": 232, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hyper Voice"], ["Psyshock"], ["Focus Blast"], ["Taunt"]] - }, - { - "species": "Gardevoir", - "item": "Gardevoirite", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 24, "spa": 232, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hyper Voice"], ["Psyshock"], ["Focus Blast"], ["Will-O-Wisp"]] - } - ] - }, - "garchomp": { - "flags": {}, - "sets": [ - { - "species": "Garchomp", - "item": "Rocky Helmet", - "ability": "Rough Skin", - "evs": {"hp": 252, "atk": 0, "def": 164, "spa": 0, "spd": 76, "spe": 16}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Earthquake"], ["Dragon Tail"], ["Fire Blast"]] - }, - { - "species": "Garchomp", - "item": "Focus Sash", - "ability": "Rough Skin", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Stealth Rock"], ["Earthquake"], ["Dragon Claw"], ["Fire Blast"]] - }, - { - "species": "Garchomp", - "item": "Lum Berry", - "ability": "Rough Skin", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Earthquake"], ["Outrage"], ["Swords Dance"]] - }, - { - "species": "Garchomp", - "item": "Garchompite", - "ability": "Rough Skin", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Draco Meteor"], ["Earthquake"], ["Fire Blast"], ["Stone Edge"]] - }, - { - "species": "Garchomp", - "item": "Choice Scarf", - "ability": "Rough Skin", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Earthquake"], ["Outrage"], ["Stone Edge"], ["Dragon Claw"]] - } - ] - }, - "ferrothorn": { - "flags": {}, - "sets": [ - { - "species": "Ferrothorn", - "item": "Leftovers", - "ability": "Iron Barbs", - "evs": {"hp": 252, "atk": 0, "def": 88, "spa": 0, "spd": 168, "spe": 0}, - "nature": "Relaxed", - "moves": [["Spikes"], ["Leech Seed"], ["Gyro Ball"], ["Power Whip"]] - }, - { - "species": "Ferrothorn", - "item": "Shed Shell", - "ability": "Iron Barbs", - "evs": {"hp": 252, "atk": 0, "def": 88, "spa": 0, "spd": 168, "spe": 0}, - "nature": "Relaxed", - "moves": [["Spikes"], ["Leech Seed"], ["Gyro Ball"], ["Protect"]] - }, - { - "species": "Ferrothorn", - "item": "Leftovers", - "ability": "Iron Barbs", - "evs": {"hp": 252, "atk": 0, "def": 88, "spa": 0, "spd": 168, "spe": 0}, - "nature": "Relaxed", - "moves": [["Protect"], ["Leech Seed"], ["Gyro Ball"], ["Stealth Rock"]] - } - ] - }, - "excadrill": { - "flags": {}, - "sets": [ - { - "species": "Excadrill", - "item": "Choice Scarf", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Earthquake"], ["Iron Head"], ["Rock Slide"], ["Rapid Spin"]] - }, - { - "species": "Excadrill", - "item": "Air Balloon", - "ability": "Sand Rush", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Earthquake"], ["Iron Head"], ["Rock Slide"], ["Swords Dance"]] - }, - { - "species": "Excadrill", - "item": "Life Orb", - "ability": "Sand Rush", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Earthquake"], ["Iron Head"], ["Rock Slide"], ["Rapid Spin"]] - }, - { - "species": "Excadrill", - "item": "Leftovers", - "ability": "Mold Breaker", - "evs": {"hp": 252, "atk": 4, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Earthquake"], ["Iron Head"], ["Rapid Spin"], ["Toxic"]] - } - ] - }, - "dragonite": { - "flags": {}, - "sets": [ - { - "species": "Dragonite", - "item": "Choice Band", - "ability": "Multiscale", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Outrage"], ["Extreme Speed"], ["Thunder Punch"], ["Superpower"]] - }, - { - "species": "Dragonite", - "item": "Lum Berry", - "ability": "Multiscale", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Dragon Dance"], ["Outrage"], ["Extreme Speed"], ["Earthquake"]] - }, - { - "species": "Dragonite", - "item": "Lum Berry", - "ability": "Multiscale", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Dragon Dance"], ["Outrage"], ["Extreme Speed"], ["Fire Punch"]] - } - ] - }, - "conkeldurr": { - "flags": {}, - "sets": [ - { - "species": "Conkeldurr", - "item": "Assault Vest", - "ability": "Guts", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 236, "spe": 20}, - "nature": "Adamant", - "moves": [["Drain Punch"], ["Mach Punch"], ["Ice Punch"], ["Poison Jab"]] - }, - { - "species": "Conkeldurr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 48, "atk": 252, "def": 0, "spa": 0, "spd": 208, "spe": 0}, - "nature": "Adamant", - "moves": [["Drain Punch"], ["Mach Punch"], ["Ice Punch"], ["Thunder Punch"]] - } - ] - }, - "clefable": { - "flags": {}, - "sets": [ - { - "species": "Clefable", - "item": "Leftovers", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 172, "spa": 0, "spd": 84, "spe": 0}, - "nature": "Calm", - "moves": [["Calm Mind"], ["Moonblast"], ["Soft-Boiled"], ["Flamethrower"]] - }, - { - "species": "Clefable", - "item": "Leftovers", - "ability": "Unaware", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Moonblast"], ["Wish"], ["Protect"], ["Heal Bell"]] - }, - { - "species": "Clefable", - "item": "Leftovers", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 172, "spa": 0, "spd": 84, "spe": 0}, - "nature": "Calm", - "moves": [["Stealth Rock"], ["Moonblast"], ["Thunder Wave"], ["Soft-Boiled"]] - } - ] - }, - "charizard": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Charizard", - "item": "Charizardite X", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Dragon Claw"], ["Flare Blitz"], ["Roost"]] - }, - { - "species": "Charizard", - "item": "Charizardite X", - "ability": "Blaze", - "evs": {"hp": 248, "atk": 24, "def": 0, "spa": 0, "spd": 180, "spe": 56}, - "nature": "Adamant", - "moves": [["Earthquake"], ["Dragon Claw"], ["Will-O-Wisp"], ["Roost"]] - }, - { - "species": "Charizard", - "item": "Charizardite X", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Dragon Claw"], ["Flare Blitz"], ["Earthquake"]] - }, - { - "species": "Charizard", - "item": "Charizardite X", - "ability": "Blaze", - "evs": {"hp": 144, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 112}, - "nature": "Adamant", - "moves": [["Tailwind"], ["Outrage"], ["Flare Blitz"], ["Swords Dance"]] - }, - { - "species": "Charizard", - "item": "Charizardite Y", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Solar Beam"], ["Focus Blast"], ["Roost"]] - } - ] - }, - "chansey": { - "flags": {}, - "sets": [ - { - "species": "Chansey", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 4, "atk": 0, "def": 252, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Bold", - "moves": [["Soft-Boiled"], ["Heal Bell"], ["Stealth Rock"], ["Seismic Toss"]] - }, - { - "species": "Chansey", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 4, "atk": 0, "def": 252, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Bold", - "moves": [["Wish"], ["Soft-Boiled"], ["Seismic Toss"], ["Toxic"]] - } - ] - }, - "breloom": { - "flags": {}, - "sets": [ - { - "species": "Breloom", - "item": "Toxic Orb", - "ability": "Poison Heal", - "evs": {"hp": 12, "atk": 244, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Superpower"], ["Seed Bomb"], ["Facade"]] - }, - { - "species": "Breloom", - "item": "Focus Sash", - "ability": "Technician", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Spore"], ["Bullet Seed"], ["Mach Punch"], ["Rock Tomb"]] - }, - { - "species": "Breloom", - "item": "Life Orb", - "ability": "Technician", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Spore"], ["Bullet Seed"], ["Mach Punch"], ["Swords Dance"]] - } - ] - }, - "bisharp": { - "flags": {}, - "sets": [ - { - "species": "Bisharp", - "item": "Black Glasses", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 52, "spe": 204}, - "nature": "Adamant", - "moves": [["Knock Off"], ["Iron Head"], ["Sucker Punch"], ["Pursuit"]] - }, - { - "species": "Bisharp", - "item": "Life Orb", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["Swords Dance"], ["Iron Head"], ["Sucker Punch"]] - }, - { - "species": "Bisharp", - "item": "Life Orb", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["Low Kick"], ["Iron Head"], ["Sucker Punch"]] - }, - { - "species": "Bisharp", - "item": "Black Glasses", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["Low Kick"], ["Iron Head"], ["Sucker Punch"]] - } - ] - }, - "azumarill": { - "flags": {}, - "sets": [ - { - "species": "Azumarill", - "item": "Assault Vest", - "ability": "Huge Power", - "evs": {"hp": 240, "atk": 252, "def": 0, "spa": 0, "spd": 16, "spe": 0}, - "nature": "Adamant", - "moves": [["Play Rough"], ["Waterfall"], ["Aqua Jet"], ["Knock Off"]] - }, - { - "species": "Azumarill", - "item": "Sitrus Berry", - "ability": "Huge Power", - "evs": {"hp": 92, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 164}, - "nature": "Adamant", - "moves": [["Belly Drum"], ["Aqua Jet"], ["Play Rough"], ["Knock Off"]] - }, - { - "species": "Azumarill", - "item": "Choice Band", - "ability": "Huge Power", - "evs": {"hp": 172, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 84}, - "nature": "Adamant", - "moves": [["Play Rough"], ["Waterfall"], ["Aqua Jet"], ["Superpower"]] - } - ] - }, - "altaria": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Altaria", - "item": "Altarianite", - "ability": "Cloud Nine", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Roost"], ["Return"], ["Earthquake"]], - "happiness": 255 - }, - { - "species": "Altaria", - "item": "Altarianite", - "ability": "Cloud Nine", - "evs": {"hp": 248, "atk": 0, "def": 136, "spa": 0, "spd": 96, "spe": 28}, - "nature": "Impish", - "moves": [["Dragon Dance"], ["Roost"], ["Return"], ["Substitute"]], - "happiness": 255 - }, - { - "species": "Altaria", - "item": "Altarianite", - "ability": "Cloud Nine", - "evs": {"hp": 248, "atk": 0, "def": 136, "spa": 0, "spd": 96, "spe": 28}, - "nature": "Impish", - "moves": [["Dragon Dance"], ["Roost"], ["Return"], ["Heal Bell"]], - "happiness": 255 - }, - { - "species": "Altaria", - "item": "Altarianite", - "ability": "Cloud Nine", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 168, "spd": 0, "spe": 92}, - "nature": "Modest", - "moves": [["Hyper Voice"], ["Fire Blast"], ["Roost"], ["Earthquake"]] - }, - { - "species": "Altaria", - "item": "Altarianite", - "ability": "Natural Cure", - "evs": {"hp": 248, "atk": 0, "def": 104, "spa": 0, "spd": 156, "spe": 0}, - "nature": "Bold", - "moves": [["Hyper Voice"], ["Roost"], ["Heal Bell"], ["Flamethrower"]] - }, - { - "species": "Altaria", - "item": "Altarianite", - "ability": "Cloud Nine", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Return"], ["Earthquake"], ["Fire Blast"]], - "happiness": 255 - } - ] - }, - "serperior": { - "flags": {}, - "sets": [ - { - "species": "Serperior", - "item": "Life Orb", - "ability": "Contrary", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Dragon Pulse"], ["Hidden Power Fire"], ["Glare"]] - }, - { - "species": "Serperior", - "item": "Meadow Plate", - "ability": "Contrary", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Dragon Pulse"], ["Hidden Power Fire"], ["Taunt"]] - }, - { - "species": "Serperior", - "item": "Leftovers", - "ability": "Contrary", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Dragon Pulse"], ["Hidden Power Ground"], ["Substitute"]] - }, - { - "species": "Serperior", - "item": "Life Orb", - "ability": "Contrary", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Dragon Pulse"], ["Hidden Power Fire"], ["Giga Drain"]] - } - ] - }, - "feraligatr": { - "flags": {}, - "sets": [ - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Ice Punch"], ["Superpower"], ["Dragon Dance"]] - }, - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Ice Punch"], ["Crunch"], ["Dragon Dance"]] - } - ] - }, - "raikou": { - "flags": {}, - "sets": [ - { - "species": "Raikou", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Calm Mind"], ["Thunderbolt"], ["Hidden Power Ice"]] - }, - { - "species": "Raikou", - "item": "Choice Specs", - "ability": "Pressure", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Ice"]] - }, - { - "species": "Raikou", - "item": "Assault Vest", - "ability": "Pressure", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Ice"]] - } - ] - } - }, - "UU": { - "gardevoir": { - "flags": {}, - "sets": [ - { - "species": "Gardevoir", - "item": "Choice Specs", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Moonblast"], ["Psyshock"], ["Focus Blast"], ["Trick"]] - }, - { - "species": "Gardevoir", - "item": "Choice Specs", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Moonblast"], ["Psyshock"], ["Focus Blast"], ["Shadow Ball"]] - }, - { - "species": "Gardevoir", - "item": "Choice Specs", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Moonblast"], ["Psyshock"], ["Shadow Ball"], ["Trick"]] - }, - { - "species": "Gardevoir", - "item": "Leftovers", - "ability": "Trace", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Moonblast"], ["Psyshock"], ["Focus Blast", "Substitute"]] - } - ] - }, - "sableye": { - "flags": {}, - "sets": [ - { - "species": "Sableye", - "item": "Leftovers", - "ability": "Prankster", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Recover"], ["Will-O-Wisp"], ["Taunt"], ["Knock Off"]] - } - ] - }, - "diancie": { - "flags": {}, - "sets": [ - { - "species": "Diancie", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 0}, - "nature": "Quiet", - "moves": [["Stealth Rock"], ["Moonblast"], ["Diamond Storm"], ["Earth Power", "Protect"]] - } - ] - }, - "metagross": { - "flags": {}, - "sets": [ - { - "species": "Metagross", - "item": "Shuca Berry", - "ability": "Clear Body", - "evs": {"hp": 40, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 216}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Earthquake", "Ice Punch", "Thunder Punch"], ["Zen Headbutt"], ["Bullet Punch"]] - } - ] - }, - "gyarados": { - "flags": {}, - "sets": [ - { - "species": "Gyarados", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Waterfall"], ["Bounce"], ["Substitute", "Earthquake", "Stone Edge"]] - }, - { - "species": "Gyarados", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 216, "atk": 60, "def": 184, "spa": 0, "spd": 0, "spe": 48}, - "nature": "Impish", - "moves": [["Rest"], ["Sleep Talk"], ["Waterfall"], ["Toxic", "Roar"]] - } - ] - }, - "hoopa": { - "flags": {}, - "sets": [ - { - "species": "Hoopa", - "item": "Life Orb", - "ability": "Magician", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Trick Room"], ["Shadow Ball"], ["Psyshock", "Psychic"], ["Focus Blast"]] - }, - { - "species": "Hoopa", - "item": "Life Orb", - "ability": "Magician", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Focus Blast"], ["Psyshock"], ["Substitute"]] - }, - { - "species": "Hoopa", - "item": "Life Orb", - "ability": "Magician", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Focus Blast"], ["Psyshock"], ["Nasty Plot"]] - }, - { - "species": "Hoopa", - "item": "Life Orb", - "ability": "Magician", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Focus Blast"], ["Nasty Plot"], ["Substitute"]] - } - ] - }, - "crobat": { - "flags": {}, - "sets": [ - { - "species": "Crobat", - "item": "Choice Band", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Sleep Talk"], ["Brave Bird"], ["Cross Poison"], ["U-turn"]] - }, - { - "species": "Crobat", - "item": "Black Sludge", - "ability": "Infiltrator", - "evs": {"hp": 248, "atk": 0, "def": 80, "spa": 0, "spd": 4, "spe": 176}, - "nature": "Jolly", - "moves": [["Roost"], ["Defog"], ["Taunt"], ["Brave Bird"]] - } - ] - }, - "entei": { - "flags": {}, - "sets": [ - { - "species": "Entei", - "item": "Choice Band", - "ability": "Pressure", - "shiny": true, - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Extreme Speed"], ["Sacred Fire"], ["Stone Edge"], ["Bulldoze"]] - }, - { - "species": "Entei", - "item": "Life Orb", - "ability": "Pressure", - "shiny": true, - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Extreme Speed"], ["Sacred Fire"], ["Stone Edge"], ["Bulldoze"]] - }, - { - "species": "Entei", - "item": "Assault Vest", - "ability": "Pressure", - "shiny": true, - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 240, "spe": 16}, - "nature": "Adamant", - "moves": [["Extreme Speed"], ["Sacred Fire"], ["Stone Edge"], ["Bulldoze"]] - } - ] - }, - "suicune": { - "flags": {}, - "sets": [ - { - "species": "Suicune", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Rest"], ["Sleep Talk"], ["Calm Mind"], ["Scald"]] - }, - { - "species": "Suicune", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Rest"], ["Sleep Talk"], ["Roar"], ["Scald"]] - }, - { - "species": "Suicune", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 196, "spd": 0, "spe": 64}, - "nature": "Modest", - "moves": [["Substitute"], ["Calm Mind"], ["Hydro Pump"], ["Ice Beam"]] - }, - { - "species": "Suicune", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Hydro Pump"], ["Ice Beam"], ["Hidden Power Grass"]] - } - ] - }, - "aerodactyl": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Aerodactyl", - "item": "Aerodactylite", - "ability": "Pressure", - "evs": {"hp": 40, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 216}, - "nature": "Jolly", - "moves": [["Hone Claws"], ["Stone Edge"], ["Aerial Ace"], ["Aqua Tail"]] - }, - { - "species": "Aerodactyl", - "item": "Aerodactylite", - "ability": "Pressure", - "evs": {"hp": 40, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 216}, - "nature": "Jolly", - "moves": [["Roost"], ["Taunt"], ["Stone Edge"], ["Aerial Ace"]] - } - ] - }, - "hydreigon": { - "flags": {}, - "sets": [ - { - "species": "Hydreigon", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Roost"], ["Draco Meteor"], ["Dark Pulse"], ["Fire Blast"]] - }, - { - "species": "Hydreigon", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Roost"], ["Draco Meteor"], ["Fire Blast"], ["Superpower"]] - }, - { - "species": "Hydreigon", - "item": "Choice Specs", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Dark Pulse"], ["Focus Blast"], ["Flash Cannon"]] - }, - { - "species": "Hydreigon", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["U-turn"], ["Draco Meteor"], ["Dark Pulse"], ["Focus Blast"]] - } - ] - }, - "machamp": { - "flags": {}, - "sets": [ - { - "species": "Machamp", - "item": "Assault Vest", - "ability": "No Guard", - "evs": {"hp": 172, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 84}, - "nature": "Adamant", - "moves": [["Bullet Punch"], ["Dynamic Punch"], ["Knock Off"], ["Ice Punch"]] - }, - { - "species": "Machamp", - "item": "Choice Band", - "ability": "No Guard", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Bullet Punch"], ["Dynamic Punch"], ["Knock Off"], ["Ice Punch"]] - }, - { - "species": "Machamp", - "item": "Leftovers", - "ability": "No Guard", - "evs": {"hp": 248, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Adamant", - "moves": [["Rest"], ["Sleep Talk"], ["Dynamic Punch"], ["Knock Off"]] - }, - { - "species": "Machamp", - "item": "Leftovers", - "ability": "No Guard", - "evs": {"hp": 212, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 44}, - "nature": "Adamant", - "moves": [["Bulk Up"], ["Dynamic Punch"], ["Stone Edge"], ["Ice Punch"]] - } - ] - }, - "mienshao": { - "flags": {}, - "sets": [ - { - "species": "Mienshao", - "item": "Life Orb", - "ability": "Regenerator", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Fake Out"], ["High Jump Kick"], ["Knock Off"], ["U-turn"]] - }, - { - "species": "Mienshao", - "item": "Choice Scarf", - "ability": "Reckless", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["High Jump Kick"], ["Knock Off"], ["Poison Jab"], ["U-turn"]] - } - ] - }, - "absol": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Absol", - "item": "Absolite", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Sucker Punch"], ["Knock Off"], ["Superpower"]] - }, - { - "species": "Absol", - "item": "Absolite", - "ability": "Justified", - "evs": {"hp": 0, "atk": 240, "def": 0, "spa": 44, "spd": 0, "spe": 224}, - "nature": "Naive", - "moves": [["Sucker Punch"], ["Knock Off"], ["Ice Beam"], ["Fire Blast"]] - } - ] - }, - "aggron": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Aggron", - "item": "Aggronite", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 0, "def": 16, "spa": 0, "spd": 244, "spe": 0}, - "nature": "Impish", - "moves": [["Rest"], ["Sleep Talk"], ["Heavy Slam"], ["Earthquake"]] - }, - { - "species": "Aggron", - "item": "Aggronite", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 0, "def": 136, "spa": 0, "spd": 124, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Roar"], ["Heavy Slam"], ["Earthquake"]] - } - ] - }, - "beedrill": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Beedrill", - "item": "Beedrillite", - "ability": "Swarm", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Protect"], ["U-turn"], ["Poison Jab"], ["Drill Run"]] - } - ] - }, - "blastoise": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Blastoise", - "item": "Blastoisinite", - "ability": "Rain Dish", - "evs": {"hp": 56, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 200}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Aura Sphere"], ["Dark Pulse"]] - }, - { - "species": "Blastoise", - "item": "Blastoisinite", - "ability": "Torrent", - "evs": {"hp": 252, "atk": 0, "def": 148, "spa": 44, "spd": 64, "spe": 0}, - "nature": "Bold", - "moves": [["Rapid Spin"], ["Scald"], ["Ice Beam"], ["Dark Pulse"]] - } - ] - }, - "empoleon": { - "flags": {}, - "sets": [ - { - "species": "Empoleon", - "item": "Leftovers", - "ability": "Torrent", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Stealth Rock"], ["Defog"], ["Roar"], ["Scald"]] - }, - { - "species": "Empoleon", - "item": "Choice Specs", - "ability": "Torrent", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 8}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Flash Cannon"], ["Ice Beam"], ["Grass Knot"]] - }, - { - "species": "Empoleon", - "item": "Petaya Berry", - "ability": "Torrent", - "evs": {"hp": 12, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 240}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Agility"], ["Substitute"], ["Surf"], ["Ice Beam"]] - } - ] - }, - "krookodile": { - "flags": {}, - "sets": [ - { - "species": "Krookodile", - "item": "Choice Band", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Pursuit"], ["Earthquake"], ["Knock Off"], ["Superpower"]] - }, - { - "species": "Krookodile", - "item": "Choice Scarf", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Earthquake"], ["Knock Off"], ["Stone Edge"], ["Superpower"]] - }, - { - "species": "Krookodile", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Taunt"], ["Earthquake"], ["Knock Off"]] - } - ] - }, - "nidoqueen": { - "flags": {}, - "sets": [ - { - "species": "Nidoqueen", - "gender": "F", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 128, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 128}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Stealth Rock"], ["Sludge Wave"], ["Earth Power"], ["Ice Beam"]] - }, - { - "species": "Nidoqueen", - "gender": "F", - "item": "Black Sludge", - "ability": "Sheer Force", - "evs": {"hp": 248, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 20}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Roar"], ["Earth Power"], ["Ice Beam"]] - } - ] - }, - "shaymin": { - "flags": {}, - "sets": [ - { - "species": "Shaymin", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Substitute"], ["Leech Seed"], ["Seed Flare"], ["Air Slash"]] - }, - { - "species": "Shaymin", - "item": "Life Orb", - "ability": "Natural Cure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Rest"], ["Seed Flare"], ["Earth Power"], ["Air Slash"]] - } - ] - }, - "swampert": { - "flags": {}, - "sets": [ - { - "species": "Swampert", - "item": "Leftovers", - "ability": "Torrent", - "evs": {"hp": 240, "atk": 16, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Relaxed", - "moves": [["Stealth Rock"], ["Roar"], ["Earthquake"], ["Scald"]] - }, - { - "species": "Swampert", - "item": "Choice Band", - "ability": "Torrent", - "evs": {"hp": 204, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 52}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Earthquake"], ["Ice Beam"], ["Superpower"]] - }, - { - "species": "Swampert", - "item": "Chesto Berry", - "ability": "Torrent", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Curse"], ["Earthquake"], ["Ice Beam"]] - }, - { - "species": "Swampert", - "item": "Swampertite", - "ability": "Torrent", - "evs": {"hp": 104, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 152}, - "nature": "Adamant", - "moves": [["Rain Dance"], ["Waterfall"], ["Earthquake"], ["Ice Punch"]] - } - ] - }, - "ampharos": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Ampharos", - "item": "Ampharosite", - "ability": "Static", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Agility"], ["Dragon Pulse"], ["Thunderbolt"], ["Focus Blast"]] - }, - { - "species": "Ampharos", - "gender": "M", - "item": "Ampharosite", - "ability": "Static", - "evs": {"hp": 132, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 124}, - "nature": "Modest", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Dragon Pulse"], ["Focus Blast"]] - }, - { - "species": "Ampharos", - "item": "Ampharosite", - "ability": "Static", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 8, "spd": 0, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Rest"], ["Sleep Talk"], ["Volt Switch"], ["Dragon Pulse"]] - }, - { - "species": "Ampharos", - "item": "Ampharosite", - "ability": "Static", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Rest"], ["Sleep Talk"], ["Volt Switch"], ["Dragon Pulse"]] - } - ] - }, - "arcanine": { - "flags": {}, - "sets": [ - { - "species": "Arcanine", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Morning Sun"], ["Will-O-Wisp"], ["Extreme Speed"], ["Flare Blitz"]] - }, - { - "species": "Arcanine", - "item": "Life Orb", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Extreme Speed"], ["Flare Blitz"], ["Close Combat"], ["Wild Charge"]] - }, - { - "species": "Arcanine", - "item": "Choice Band", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Extreme Speed"], ["Flare Blitz"], ["Close Combat"], ["Wild Charge"]] - } - ] - }, - "blissey": { - "flags": {}, - "sets": [ - { - "species": "Blissey", - "gender": "F", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Soft-Boiled"], ["Wish"], ["Toxic"], ["Seismic Toss"]] - }, - { - "species": "Blissey", - "gender": "F", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Soft-Boiled"], ["Heal Bell"], ["Toxic"], ["Seismic Toss"]] - }, - { - "species": "Blissey", - "gender": "F", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Protect"], ["Wish"], ["Heal Bell"], ["Seismic Toss"]] - } - ] - }, - "chandelure": { - "flags": {}, - "sets": [ - { - "species": "Chandelure", - "item": "Choice Scarf", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Trick"], ["Fire Blast"], ["Shadow Ball"], ["Energy Ball"]] - }, - { - "species": "Chandelure", - "item": "Choice Specs", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Trick"], ["Overheat"], ["Shadow Ball"], ["Energy Ball"]] - }, - { - "species": "Chandelure", - "item": "Leftovers", - "ability": "Flash Fire", - "evs": {"hp": 112, "atk": 0, "def": 0, "spa": 140, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Substitute"], ["Flamethrower"], ["Shadow Ball"]] - } - ] - }, - "chesnaught": { - "flags": {}, - "sets": [ - { - "species": "Chesnaught", - "item": "Leftovers", - "ability": "Bulletproof", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Spiky Shield"], ["Spikes"], ["Leech Seed"], ["Drain Punch"]] - }, - { - "species": "Chesnaught", - "item": "Leftovers", - "ability": "Bulletproof", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Spiky Shield"], ["Spikes"], ["Leech Seed"], ["Drain Punch"]] - } - ] - }, - "cloyster": { - "flags": {}, - "sets": [ - { - "species": "Cloyster", - "item": "Focus Sash", - "ability": "Skill Link", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Shell Smash"], ["Icicle Spear"], ["Rock Blast"], ["Ice Shard"]] - }, - { - "species": "Cloyster", - "item": "Focus Sash", - "ability": "Skill Link", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Rapid Spin"], ["Spikes"], ["Icicle Spear"], ["Explosion"]] - } - ] - }, - "darmanitan": { - "flags": {}, - "sets": [ - { - "species": "Darmanitan", - "item": "Choice Band", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Rock Slide"], ["Superpower"], ["U-turn"]] - }, - { - "species": "Darmanitan", - "item": "Choice Scarf", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Rock Slide"], ["Superpower"], ["U-turn"]] - }, - { - "species": "Darmanitan", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Rock Slide"], ["Superpower"], ["U-turn"]] - } - ] - }, - "donphan": { - "flags": {}, - "sets": [ - { - "species": "Donphan", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Rapid Spin"], ["Ice Shard"], ["Earthquake"]] - }, - { - "species": "Donphan", - "item": "Assault Vest", - "ability": "Sturdy", - "evs": {"hp": 176, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 80}, - "nature": "Adamant", - "moves": [["Rapid Spin"], ["Ice Shard"], ["Earthquake"], ["Knock Off"]] - } - ] - }, - "espeon": { - "flags": {}, - "sets": [ - { - "species": "Espeon", - "item": "Light Clay", - "ability": "Magic Bounce", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 8, "spd": 0, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Morning Sun"], ["Reflect"], ["Light Screen"], ["Psyshock"]] - }, - { - "species": "Espeon", - "item": "Choice Specs", - "ability": "Magic Bounce", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Trick"], ["Psyshock"], ["Shadow Ball"], ["Hidden Power Fighting"]] - } - ] - }, - "florges": { - "flags": {}, - "sets": [ - { - "species": "Florges", - "gender": "F", - "item": "Leftovers", - "ability": "Flower Veil", - "evs": {"hp": 248, "atk": 0, "def": 236, "spa": 0, "spd": 24, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Protect"], ["Wish"], ["Aromatherapy"], ["Moonblast"]] - }, - { - "species": "Florges", - "gender": "F", - "item": "Leftovers", - "ability": "Flower Veil", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Synthesis"], ["Aromatherapy"], ["Calm Mind"], ["Moonblast"]] - } - ] - }, - "flygon": { - "flags": {}, - "sets": [ - { - "species": "Flygon", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Defog"], ["Outrage"], ["Earthquake"], ["U-turn"]] - }, - { - "species": "Flygon", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Roost"], ["Defog"], ["Earthquake"], ["U-turn"]] - } - ] - }, - "forretress": { - "flags": {}, - "sets": [ - { - "species": "Forretress", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 0}, - "nature": "Relaxed", - "moves": [["Spikes"], ["Rapid Spin"], ["Gyro Ball"], ["Volt Switch"]] - } - ] - }, - "galvantula": { - "flags": {}, - "sets": [ - { - "species": "Galvantula", - "item": "Focus Sash", - "ability": "Compound Eyes", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Sticky Web"], ["Thunder"], ["Bug Buzz"], ["Energy Ball"]] - }, - { - "species": "Galvantula", - "gender": "M", - "item": "Life Orb", - "ability": "Compound Eyes", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunder"], ["Bug Buzz"], ["Energy Ball"]] - }, - { - "species": "Galvantula", - "gender": "M", - "item": "Choice Specs", - "ability": "Compound Eyes", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunder"], ["Bug Buzz"], ["Energy Ball"]] - } - ] - }, - "goodra": { - "flags": {}, - "sets": [ - { - "species": "Goodra", - "item": "Assault Vest", - "ability": "Sap Sipper", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 8, "spe": 0}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Fire Blast"], ["Sludge Bomb"], ["Dragon Tail"]] - }, - { - "species": "Goodra", - "item": "Life Orb", - "ability": "Sap Sipper", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Fire Blast"], ["Sludge Bomb"], ["Ice Beam"]] - } - ] - }, - "haxorus": { - "flags": {}, - "sets": [ - { - "species": "Haxorus", - "item": "Choice Band", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Sleep Talk"], ["Outrage"], ["Earthquake"], ["Poison Jab"]] - }, - { - "species": "Haxorus", - "item": "Life Orb", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Taunt"], ["Outrage"], ["Earthquake"]] - }, - { - "species": "Haxorus", - "gender": "M", - "item": "Lum Berry", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Outrage"], ["Earthquake"], ["Poison Jab"]] - }, - { - "species": "Haxorus", - "item": "Life Orb", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Taunt"], ["Outrage"], ["Earthquake"]] - } - ] - }, - "heliolisk": { - "flags": {}, - "sets": [ - { - "species": "Heliolisk", - "item": "Choice Specs", - "ability": "Dry Skin", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Grass Knot"], ["Hidden Power Ice"]] - }, - { - "species": "Heliolisk", - "item": "Life Orb", - "ability": "Dry Skin", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Grass Knot"], ["Hidden Power Ice"]] - } - ] - }, - "honchkrow": { - "flags": {}, - "sets": [ - { - "species": "Honchkrow", - "item": "Life Orb", - "ability": "Moxie", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Roost"], ["Sucker Punch"], ["Brave Bird"], ["Superpower"]] - }, - { - "species": "Honchkrow", - "item": "Choice Scarf", - "ability": "Moxie", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Brave Bird"], ["Night Slash"], ["Superpower"], ["Heat Wave"]] - } - ] - }, - "infernape": { - "flags": {}, - "sets": [ - { - "species": "Infernape", - "item": "Focus Sash", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Fake Out"], ["Stealth Rock"], ["Close Combat"], ["Overheat"]] - }, - { - "species": "Infernape", - "item": "Choice Scarf", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Close Combat"], ["Stone Edge"], ["U-turn"]] - }, - { - "species": "Infernape", - "item": "Choice Band", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Close Combat"], ["Stone Edge"], ["U-turn"]] - }, - { - "species": "Infernape", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Vacuum Wave"], ["Fire Blast"], ["Grass Knot"]] - } - ] - }, - "kingdra": { - "flags": {}, - "sets": [ - { - "species": "Kingdra", - "item": "Lum Berry", - "ability": "Sniper", - "evs": {"hp": 24, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 232}, - "nature": "Adamant", - "moves": [["Dragon Dance"], ["Outrage"], ["Waterfall"], ["Iron Head"]] - }, - { - "species": "Kingdra", - "item": "Leftovers", - "ability": "Sniper", - "evs": {"hp": 24, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 232}, - "nature": "Adamant", - "moves": [["Iron Head"], ["Dragon Dance"], ["Outrage"], ["Waterfall"]] - }, - { - "species": "Kingdra", - "item": "Scope Lens", - "ability": "Sniper", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Rash", - "moves": [["Agility"], ["Focus Energy"], ["Draco Meteor"], ["Waterfall"]] - }, - { - "species": "Kingdra", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 60, "def": 0, "spa": 252, "spd": 0, "spe": 196}, - "nature": "Mild", - "moves": [["Rain Dance"], ["Hydro Pump"], ["Draco Meteor"], ["Waterfall"]] - } - ] - }, - "lucario": { - "flags": {}, - "sets": [ - { - "species": "Lucario", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Bullet Punch"], ["Close Combat"], ["Crunch"]] - }, - { - "species": "Lucario", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Extreme Speed"], ["Close Combat"], ["Ice Punch"]] - }, - { - "species": "Lucario", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Bullet Punch"], ["Close Combat"], ["Ice Punch"]] - }, - { - "species": "Lucario", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Extreme Speed"], ["Close Combat"], ["Crunch"]] - }, - { - "species": "Lucario", - "item": "Life Orb", - "ability": "Steadfast", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Vacuum Wave"], ["Aura Sphere"], ["Flash Cannon"]] - } - ] - }, - "milotic": { - "flags": {}, - "sets": [ - { - "species": "Milotic", - "item": "Life Orb", - "ability": "Competitive", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Recover"], ["Hydro Pump"], ["Ice Beam"], ["Hidden Power Grass"]] - }, - { - "species": "Milotic", - "item": "Leftovers", - "ability": "Marvel Scale", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Recover"], ["Haze"], ["Scald"], ["Ice Beam"]] - }, - { - "species": "Milotic", - "item": "Leftovers", - "ability": "Marvel Scale", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Recover"], ["Haze"], ["Scald"], ["Ice Beam"]] - } - ] - }, - "noivern": { - "flags": {}, - "sets": [ - { - "species": "Noivern", - "item": "Choice Specs", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Switcheroo"], ["Draco Meteor"], ["Hurricane"], ["Flamethrower"]] - }, - { - "species": "Noivern", - "item": "Life Orb", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Roost"], ["Draco Meteor"], ["Hurricane"], ["Flamethrower"]] - }, - { - "species": "Noivern", - "item": "Leftovers", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Roost"], ["Taunt"], ["Draco Meteor"], ["Air Slash"]] - } - ] - }, - "porygonz": { - "flags": {}, - "sets": [ - { - "species": "Porygon-Z", - "item": "Life Orb", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Tri Attack"], ["Dark Pulse"], ["Hidden Power Fighting"]] - }, - { - "species": "Porygon-Z", - "item": "Choice Specs", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Trick"], ["Tri Attack"], ["Thunderbolt"], ["Ice Beam"]] - }, - { - "species": "Porygon-Z", - "item": "Choice Scarf", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Trick"], ["Tri Attack"], ["Thunderbolt"], ["Ice Beam"]] - } - ] - }, - "porygon2": { - "flags": {}, - "sets": [ - { - "species": "Porygon2", - "item": "Eviolite", - "ability": "Trace", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Recover"], ["Thunder Wave"], ["Thunderbolt"], ["Ice Beam"]] - }, - { - "species": "Porygon2", - "item": "Eviolite", - "ability": "Trace", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Recover"], ["Thunder Wave"], ["Thunderbolt"], ["Ice Beam"]] - } - ] - }, - "rotomheat": { - "flags": {}, - "sets": [ - { - "species": "Rotom-Heat", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Trick"], ["Overheat"], ["Volt Switch"], ["Hidden Power Grass"]] - }, - { - "species": "Rotom-Heat", - "item": "Choice Specs", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Trick"], ["Overheat"], ["Volt Switch"], ["Hidden Power Grass"]] - }, - { - "species": "Rotom-Heat", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 216, "spa": 0, "spd": 0, "spe": 44}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Pain Split"], ["Will-O-Wisp"], ["Overheat"], ["Volt Switch"]] - } - ] - }, - "scrafty": { - "flags": {}, - "sets": [ - { - "species": "Scrafty", - "item": "Leftovers", - "ability": "Shed Skin", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Bulk Up"], ["Drain Punch"], ["Knock Off"]] - }, - { - "species": "Scrafty", - "item": "Life Orb", - "ability": "Moxie", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Drain Punch"], ["Knock Off"], ["Zen Headbutt"]] - } - ] - }, - "snorlax": { - "flags": {}, - "sets": [ - { - "species": "Snorlax", - "item": "Choice Band", - "ability": "Thick Fat", - "evs": {"hp": 0, "atk": 252, "def": 56, "spa": 0, "spd": 200, "spe": 0}, - "nature": "Adamant", - "moves": [["Pursuit"], ["Body Slam"], ["Earthquake"], ["Fire Punch"]] - }, - { - "species": "Snorlax", - "item": "Assault Vest", - "ability": "Thick Fat", - "evs": {"hp": 0, "atk": 252, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Adamant", - "moves": [["Pursuit"], ["Body Slam"], ["Earthquake"], ["Fire Blast"]] - }, - { - "species": "Snorlax", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 144, "atk": 0, "def": 188, "spa": 0, "spd": 176, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Sleep Talk"], ["Curse"], ["Body Slam"]] - } - ] - }, - "tentacruel": { - "flags": {}, - "sets": [ - { - "species": "Tentacruel", - "item": "Black Sludge", - "ability": "Liquid Ooze", - "evs": {"hp": 240, "atk": 0, "def": 244, "spa": 0, "spd": 0, "spe": 24}, - "nature": "Bold", - "moves": [["Toxic Spikes"], ["Rapid Spin"], ["Scald"], ["Knock Off"]] - } - ] - }, - "toxicroak": { - "flags": {}, - "sets": [ - { - "species": "Toxicroak", - "item": "Life Orb", - "ability": "Dry Skin", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Sucker Punch"], ["Gunk Shot"], ["Drain Punch"]] - }, - { - "species": "Toxicroak", - "item": "Black Sludge", - "ability": "Dry Skin", - "evs": {"hp": 248, "atk": 132, "def": 116, "spa": 0, "spd": 0, "spe": 12}, - "nature": "Adamant", - "moves": [["Substitute"], ["Bulk Up"], ["Sucker Punch"], ["Drain Punch"]] - } - ] - }, - "umbreon": { - "flags": {}, - "sets": [ - { - "species": "Umbreon", - "gender": "M", - "item": "Leftovers", - "ability": "Synchronize", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Protect"], ["Wish"], ["Heal Bell"], ["Foul Play"]] - }, - { - "species": "Umbreon", - "gender": "M", - "item": "Leftovers", - "ability": "Synchronize", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Protect"], ["Wish"], ["Heal Bell"], ["Foul Play"]] - } - ] - }, - "vaporeon": { - "flags": {}, - "sets": [ - { - "species": "Vaporeon", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 200, "atk": 0, "def": 252, "spa": 0, "spd": 56, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Protect"], ["Wish"], ["Heal Bell"], ["Scald"]] - } - ] - }, - "froslass": { - "flags": {}, - "sets": [ - { - "species": "Froslass", - "gender": "F", - "item": "Focus Sash", - "ability": "Cursed Body", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Destiny Bond"], ["Spikes"], ["Taunt"], ["Icy Wind"]] - } - ] - }, - "houndoom": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Houndoom", - "item": "Houndoominite", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Taunt"], ["Fire Blast"], ["Dark Pulse"]] - }, - { - "species": "Houndoom", - "item": "Houndoominite", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Sunny Day"], ["Fire Blast"], ["Dark Pulse"], ["Solar Beam"]] - } - ] - }, - "kyurem": { - "flags": {}, - "sets": [ - { - "species": "Kyurem", - "item": "Choice Scarf", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Draco Meteor"], ["Ice Beam"], ["Earth Power"], ["Outrage"]] - }, - { - "species": "Kyurem", - "item": "Choice Specs", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Ice Beam"], ["Earth Power"], ["Flash Cannon"]] - }, - { - "species": "Kyurem", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Roost"], ["Draco Meteor"], ["Ice Beam"], ["Earth Power"]] - }, - { - "species": "Kyurem", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 56, "atk": 0, "def": 0, "spa": 236, "spd": 0, "spe": 216}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Roost"], ["Substitute"], ["Ice Beam"], ["Earth Power"]] - } - ] - }, - "shuckle": { - "flags": {}, - "sets": [ - { - "species": "Shuckle", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Stealth Rock"], ["Sticky Web"], ["Encore"], ["Knock Off"]] - } - ] - }, - "tornadus": { - "flags": {}, - "sets": [ - { - "species": "Tornadus", - "gender": "M", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Acrobatics"], ["Knock Off"], ["Superpower"], ["U-turn"]] - }, - { - "species": "Tornadus", - "gender": "M", - "item": "Life Orb", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Tailwind"], ["Hurricane"], ["Heat Wave"], ["Grass Knot"]] - } - ] - }, - "yanmega": { - "flags": {}, - "sets": [ - { - "species": "Yanmega", - "item": "Choice Specs", - "ability": "Tinted Lens", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Sleep Talk"], ["Bug Buzz"], ["Air Slash"], ["Giga Drain"]] - }, - { - "species": "Yanmega", - "item": "Life Orb", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Protect"], ["Bug Buzz"], ["Air Slash"], ["Giga Drain"]] - } - ] - }, - "zoroark": { - "flags": {}, - "sets": [ - { - "species": "Zoroark", - "item": "Choice Specs", - "ability": "Illusion", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Trick"], ["Night Daze"], ["Focus Blast"], ["Flamethrower"]] - }, - { - "species": "Zoroark", - "item": "Life Orb", - "ability": "Illusion", - "evs": {"hp": 0, "atk": 196, "def": 0, "spa": 96, "spd": 0, "spe": 216}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Naive", - "moves": [["Sucker Punch"], ["Knock Off"], ["Flamethrower"], ["Grass Knot"]] - }, - { - "species": "Zoroark", - "item": "Life Orb", - "ability": "Illusion", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Night Daze"], ["Focus Blast"], ["Flamethrower"]] - } - ] - }, - "cresselia": { - "flags": {}, - "sets": [ - { - "species": "Cresselia", - "gender": "F", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Moonlight"], ["Thunder Wave"], ["Psyshock"], ["Moonblast"]] - }, - { - "species": "Cresselia", - "gender": "F", - "item": "Light Clay", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Lunar Dance"], ["Reflect"], ["Light Screen"], ["Moonblast"]] - }, - { - "species": "Cresselia", - "gender": "F", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 116, "spa": 0, "spd": 0, "spe": 144}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Moonlight"], ["Substitute"], ["Calm Mind"], ["Psyshock"]] - }, - { - "species": "Cresselia", - "item": "Light Clay", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Reflect"], ["Light Screen"], ["Lunar Dance"], ["Psyshock"]] - }, - { - "species": "Cresselia", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 136, "spa": 0, "spd": 0, "spe": 120}, - "nature": "Bold", - "moves": [["Substitute"], ["Calm Mind"], ["Moonblast"], ["Moonlight"]] - }, - { - "species": "Cresselia", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 116, "spa": 0, "spd": 0, "spe": 144}, - "nature": "Bold", - "moves": [["Substitute"], ["Calm Mind"], ["Psyshock"], ["Moonblast"]] - } - ] - }, - "gligar": { - "flags": {}, - "sets": [ - { - "species": "Gligar", - "item": "Eviolite", - "ability": "Hyper Cutter", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Roost"], ["Defog"], ["Toxic"], ["Earthquake"]] - }, - { - "species": "Gligar", - "item": "Eviolite", - "ability": "Hyper Cutter", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Roost"], ["Defog"], ["Stealth Rock"], ["Earthquake"]] - }, - { - "species": "Gligar", - "item": "Eviolite", - "ability": "Hyper Cutter", - "evs": {"hp": 248, "atk": 0, "def": 20, "spa": 0, "spd": 240, "spe": 0}, - "nature": "Careful", - "moves": [["Roost"], ["Defog"], ["Toxic"], ["Earthquake"]] - } - ] - }, - "aromatisse": { - "flags": {}, - "sets": [ - { - "species": "Aromatisse", - "item": "Leftovers", - "ability": "Aroma Veil", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Bold", - "moves": [["Protect"], ["Wish"], ["Aromatherapy"], ["Moonblast"]] - }, - { - "species": "Aromatisse", - "item": "Leftovers", - "ability": "Aroma Veil", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Protect"], ["Wish"], ["Aromatherapy"], ["Moonblast"]] - } - ] - }, - "roserade": { - "flags": {}, - "sets": [ - { - "species": "Roserade", - "item": "Life Orb", - "ability": "Natural Cure", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Spikes"], ["Giga Drain"], ["Sludge Bomb"], ["Synthesis"]] - }, - { - "species": "Roserade", - "item": "Black Sludge", - "ability": "Natural Cure", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 244, "spe": 16}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Rest"], ["Spikes"], ["Giga Drain"], ["Sludge Bomb"]] - } - ] - }, - "cobalion": { - "flags": {}, - "sets": [ - { - "species": "Cobalion", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Calm Mind"], ["Focus Blast"], ["Flash Cannon"], ["Hidden Power Ghost"]] - }, - { - "species": "Cobalion", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Close Combat"], ["Iron Head"], ["Stone Edge"]] - }, - { - "species": "Cobalion", - "item": "Leftovers", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Taunt"], ["Close Combat"], ["Iron Head"]] - } - ] - }, - "dragalge": { - "flags": {}, - "sets": [ - { - "species": "Dragalge", - "item": "Choice Specs", - "ability": "Adaptability", - "evs": {"hp": 200, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 56}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Sludge Wave"], ["Hidden Power Fire"], ["Focus Blast"]] - }, - { - "species": "Dragalge", - "item": "Choice Specs", - "ability": "Adaptability", - "evs": {"hp": 200, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 56}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Sludge Wave"], ["Scald"], ["Focus Blast"]] - }, - { - "species": "Dragalge", - "item": "Black Sludge", - "ability": "Adaptability", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Toxic Spikes"], ["Dragon Tail"], ["Sludge Bomb"], ["Scald"]] - }, - { - "species": "Dragalge", - "item": "Dragon Fang", - "ability": "Adaptability", - "evs": {"hp": 188, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 68}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Sludge Bomb"], ["Focus Blast"], ["Dragon Pulse"]] - }, - { - "species": "Dragalge", - "item": "Choice Specs", - "ability": "Adaptability", - "evs": {"hp": 188, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 68}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Dragon Pulse"], ["Sludge Wave"], ["Focus Blast"]] - } - ] - }, - "reuniclus": { - "flags": {}, - "sets": [ - { - "species": "Reuniclus", - "item": "Leftovers", - "ability": "Magic Guard", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Recover"], ["Calm Mind"], ["Psyshock"], ["Focus Blast"]] - }, - { - "species": "Reuniclus", - "item": "Life Orb", - "ability": "Magic Guard", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Recover"], ["Calm Mind"], ["Psyshock"], ["Focus Blast"]] - } - ] - }, - "whimsicott": { - "flags": {}, - "sets": [ - { - "species": "Whimsicott", - "item": "Life Orb", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Encore"], ["Giga Drain"], ["Moonblast"], ["Hidden Power Fire"]] - }, - { - "species": "Whimsicott", - "item": "Leftovers", - "ability": "Prankster", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Encore"], ["Taunt"], ["Leech Seed"], ["Moonblast"]] - }, - { - "species": "Whimsicott", - "item": "Life Orb", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Moonblast"], ["Giga Drain"], ["Hidden Power Fire"], ["Encore"]] - }, - { - "species": "Whimsicott", - "item": "Leftovers", - "ability": "Prankster", - "evs": {"hp": 248, "atk": 0, "def": 236, "spa": 0, "spd": 0, "spe": 24}, - "nature": "Bold", - "moves": [["Encore"], ["U-turn"], ["Stun Spore"], ["Moonblast"]] - } - ] - }, - "sharpedo": { - "flags": {}, - "sets": [ - { - "species": "Sharpedo", - "item": "Sharpedonite", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Protect"], ["Waterfall"], ["Crunch"], ["Ice Fang"]] - }, - { - "species": "Sharpedo", - "item": "Sharpedonite", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Naughty", - "moves": [["Protect"], ["Crunch"], ["Ice Fang"], ["Hydro Pump"]] - }, - { - "species": "Sharpedo", - "item": "Sharpedonite", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Protect"], ["Destiny Bond"], ["Waterfall"], ["Crunch"]] - }, - { - "species": "Sharpedo", - "item": "Life Orb", - "ability": "Speed Boost", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Protect"], ["Destiny Bond"], ["Waterfall"], ["Crunch"]] - } - ] - }, - "sceptile": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Sceptile", - "item": "Sceptilite", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Giga Drain"], ["Dragon Pulse"], ["Hidden Power Fire"]] - }, - { - "species": "Sceptile", - "item": "Sceptilite", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Giga Drain"], ["Dragon Pulse"], ["Hidden Power Fire"]] - }, - { - "species": "Sceptile", - "item": "Sceptilite", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Dragon Pulse"], ["Giga Drain"], ["Focus Blast"], ["Substitute"]] - }, - { - "species": "Sceptile", - "item": "Sceptilite", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Giga Drain"], ["Dragon Pulse"], ["Focus Blast"], ["Leaf Storm"]] - }, - { - "species": "Sceptile", - "item": "Sceptilite", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Leaf Blade"], ["Outrage"], ["Earthquake"]] - }, - { - "species": "Sceptile", - "item": "Sceptilite", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Dragon Pulse"], ["Giga Drain"], ["Focus Blast"], ["Hidden Power Fire"]] - } - ] - }, - "rhyperior": { - "flags": {}, - "sets": [ - { - "species": "Rhyperior", - "item": "Choice Band", - "ability": "Solid Rock", - "evs": {"hp": 168, "atk": 248, "def": 0, "spa": 0, "spd": 0, "spe": 92}, - "nature": "Adamant", - "moves": [["Stone Edge"], ["Earthquake"], ["Megahorn"], ["Aqua Tail"]] - }, - { - "species": "Rhyperior", - "item": "Leftovers", - "ability": "Solid Rock", - "evs": {"hp": 248, "atk": 16, "def": 244, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Earthquake"], ["Rock Blast"], ["Megahorn"]] - }, - { - "species": "Rhyperior", - "item": "Leftovers", - "ability": "Solid Rock", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Stealth Rock"], ["Earthquake"], ["Rock Blast"], ["Megahorn"]] - } - ] - }, - "bronzong": { - "flags": {}, - "sets": [ - { - "species": "Bronzong", - "item": "Light Clay", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Reflect"], ["Light Screen"], ["Explosion"]] - }, - { - "species": "Bronzong", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 0}, - "nature": "Relaxed", - "moves": [["Stealth Rock"], ["Toxic"], ["Gyro Ball"], ["Earthquake"]] - }, - { - "species": "Bronzong", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 0}, - "nature": "Sassy", - "moves": [["Stealth Rock"], ["Toxic"], ["Gyro Ball"], ["Earthquake"]] - } - ] - }, - "feraligatr": { - "flags": {}, - "sets": [ - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 32, "atk": 248, "def": 0, "spa": 0, "spd": 0, "spe": 228}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Waterfall"], ["Ice Punch"], ["Crunch"]] - }, - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Torrent", - "evs": {"hp": 52, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 204}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Aqua Jet"], ["Waterfall"], ["Crunch"]] - }, - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Superpower"], ["Aqua Jet"], ["Swords Dance"]] - }, - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Ice Punch"], ["Superpower"], ["Dragon Dance"]] - }, - { - "species": "Feraligatr", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Ice Punch"], ["Crunch"], ["Dragon Dance"]] - } - ] - }, - "slurpuff": { - "flags": {}, - "sets": [ - { - "species": "Slurpuff", - "item": "Sitrus Berry", - "ability": "Unburden", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Belly Drum"], ["Play Rough"], ["Drain Punch"], ["Return"]], - "happiness": 255 - }, - { - "species": "Slurpuff", - "item": "Chesto Berry", - "ability": "Unburden", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Rest"], ["Calm Mind"], ["Draining Kiss"], ["Flamethrower"]] - }, - { - "species": "Slurpuff", - "item": "Sitrus Berry", - "ability": "Unburden", - "evs": {"hp": 52, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 204}, - "nature": "Adamant", - "moves": [["Belly Drum"], ["Play Rough"], ["Return"], ["Aromatherapy"]], - "happiness": 255 - } - ] - }, - "pangoro": { - "flags": {}, - "sets": [ - { - "species": "Pangoro", - "item": "Choice Band", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Knock Off"], ["Superpower"], ["Gunk Shot"], ["Ice Punch"]] - }, - { - "species": "Pangoro", - "item": "Life Orb", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Drain Punch"], ["Knock Off"], ["Gunk Shot"]] - }, - { - "species": "Pangoro", - "item": "Lum Berry", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Drain Punch"], ["Knock Off"], ["Gunk Shot"]] - } - ] - }, - "abomasnow": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Abomasnow", - "item": "Abomasite", - "ability": "Soundproof", - "evs": {"hp": 0, "atk": 128, "def": 0, "spa": 252, "spd": 0, "spe": 128}, - "nature": "Mild", - "moves": [["Blizzard"], ["Giga Drain"], ["Ice Shard"], ["Focus Blast"]] - }, - { - "species": "Abomasnow", - "item": "Abomasite", - "ability": "Soundproof", - "evs": {"hp": 128, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 128}, - "nature": "Adamant", - "moves": [["Ice Shard"], ["Wood Hammer"], ["Earthquake"], ["Swords Dance"]] - } - ] - } - }, - "RU": { - "venusaur": { - "flags": {}, - "sets": [ - { - "species": "Venusaur", - "item": "Life Orb", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Sludge Bomb"], ["Synthesis"], ["Hidden Power Fire"]] - }, - { - "species": "Venusaur", - "item": "Black Sludge", - "ability": "Overgrow", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 92, "spd": 0, "spe": 164}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Synthesis"], ["Hidden Power Fire"]] - } - ] - }, - "diancie": { - "flags": {}, - "sets": [ - { - "species": "Diancie", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Sassy", - "moves": [["Stealth Rock"], ["Heal Bell"], ["Moonblast"], ["Diamond Storm"]] - }, - { - "species": "Diancie", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 4, "spd": 0, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Rest"], ["Sleep Talk"], ["Moonblast"]] - }, - { - "species": "Diancie", - "item": "Life Orb", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 0}, - "ivs": {"hp": 31, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 0}, - "nature": "Quiet", - "moves": [["Trick Room"], ["Moonblast"], ["Earth Power"], ["Psychic", "Diamond Storm", "Explosion"]] - } - ] - }, - "manectric": { - "flags": {}, - "sets": [ - { - "species": "Manectric", - "item": "Life Orb", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Flamethrower", "Overheat"], ["Hidden Power Ice"]] - }, - { - "species": "Manectric", - "item": "Choice Scarf", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Hidden Power Ice"], ["Overheat", "Switcheroo"]] - } - ] - }, - "hoopa": { - "flags": {}, - "sets": [ - { - "species": "Hoopa", - "item": "Life Orb", - "ability": "Magician", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute", "Nasty Plot"], ["Shadow Ball"], ["Psyshock"], ["Focus Blast"]] - }, - { - "species": "Hoopa", - "item": "Life Orb", - "ability": "Magician", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Mild", - "moves": [["Knock Off"], ["Shadow Ball"], ["Psyshock"], ["Focus Blast"]] - }, - { - "species": "Hoopa", - "item": "Leftovers", - "ability": "Magician", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Nasty Plot"], ["Shadow Ball"], ["Focus Blast"]] - } - ] - }, - "banette": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Banette", - "item": "Banettite", - "ability": "Insomnia", - "evs": {"hp": 172, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 84}, - "nature": "Adamant", - "moves": [["Destiny Bond", "Gunk Shot"], ["Knock Off"], ["Sucker Punch"], ["Will-O-Wisp", "Taunt", "Thunder Wave"]] - } - ] - }, - "jellicent": { - "flags": {}, - "sets": [ - { - "species": "Jellicent", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 252, "atk": 0, "def": 212, "spa": 0, "spd": 0, "spe": 44}, - "nature": "Bold", - "moves": [["Scald", "Hex"], ["Will-O-Wisp"], ["Recover"], ["Taunt"]] - } - ] - }, - "sigilyph": { - "flags": {}, - "sets": [ - { - "species": "Sigilyph", - "item": "Life Orb", - "ability": "Magic Guard", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Air Slash"], ["Heat Wave"], ["Roost"], ["Psychic"]] - }, - { - "species": "Sigilyph", - "item": "Flame Orb", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Roost"], ["Psycho Shift"], ["Air Slash"]] - } - ] - }, - "gastrodon": { - "flags": {}, - "sets": [ - { - "species": "Gastrodon", - "item": "Leftovers", - "ability": "Storm Drain", - "evs": {"hp": 252, "atk": 0, "def": 244, "spa": 0, "spd": 0, "spe": 12}, - "nature": "Bold", - "moves": [["Scald"], ["Recover"], ["Toxic"], ["Earth Power"]] - } - ] - }, - "delphox": { - "flags": {}, - "sets": [ - { - "species": "Delphox", - "item": "Choice Scarf", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Psyshock"], ["Dazzling Gleam"], ["Trick", "Overheat"]] - }, - { - "species": "Delphox", - "item": "Choice Specs", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Psychic"], ["Grass Knot"], ["Flamethrower"]] - }, - { - "species": "Delphox", - "item": "Choice Specs", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Psychic"], ["Grass Knot"], ["Hidden Power Water"]] - }, - { - "species": "Delphox", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Fire Blast"], ["Psychic"], ["Grass Knot"]] - }, - { - "species": "Delphox", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Fire Blast"], ["Psychic"], ["Hidden Power Water"]] - }, - { - "species": "Delphox", - "item": "Leftovers", - "ability": "Blaze", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Calm Mind"], ["Flamethrower"], ["Psyshock"]] - } - ] - }, - "clawitzer": { - "flags": {}, - "sets": [ - { - "species": "Clawitzer", - "item": "Life Orb", - "ability": "Mega Launcher", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Scald"], ["Dark Pulse"], ["Ice Beam"], ["Aura Sphere"]] - } - ] - }, - "rotommow": { - "flags": {}, - "sets": [ - { - "species": "Rotom-Mow", - "item": "Choice Specs", - "ability": "Levitate", - "evs": {"hp": 48, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 208}, - "nature": "Timid", - "moves": [["Leaf Storm"], ["Volt Switch"], ["Thunderbolt"], ["Trick"]] - } - ] - }, - "rotom": { - "flags": {}, - "sets": [ - { - "species": "Rotom", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 124, "atk": 0, "def": 0, "spa": 132, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Will-O-Wisp"], ["Discharge"], ["Hex"]] - } - ] - }, - "hitmontop": { - "flags": {}, - "sets": [ - { - "species": "Hitmontop", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Impish", - "moves": [["Rapid Spin"], ["Close Combat"], ["Foresight"], ["Toxic"]] - } - ] - }, - "braviary": { - "flags": {}, - "sets": [ - { - "species": "Braviary", - "item": "Choice Scarf", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Return"], ["Superpower"], ["U-turn"]], - "happiness": 255 - }, - { - "species": "Braviary", - "item": "Life Orb", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Brave Bird"], ["Return"], ["Superpower"], ["Roost"]], - "happiness": 255 - }, - { - "species": "Braviary", - "item": "Leftovers", - "ability": "Defiant", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 0, "spd": 212, "spe": 44}, - "nature": "Careful", - "moves": [["Substitute"], ["Bulk Up"], ["Roost"], ["Brave Bird"]] - } - ] - }, - "registeel": { - "flags": {}, - "sets": [ - { - "species": "Registeel", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Curse"], ["Iron Head"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Registeel", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Seismic Toss"], ["Protect"], ["Thunder Wave", "Toxic"], ["Stealth Rock"]] - } - ] - }, - "omastar": { - "flags": {}, - "sets": [ - { - "species": "Omastar", - "item": "Focus Sash", - "ability": "Weak Armor", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Stealth Rock"], ["Spikes"], ["Scald"], ["Ice Beam"]] - }, - { - "species": "Omastar", - "item": "Choice Specs", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Scald"], ["Hidden Power Grass"]] - } - ] - }, - "magneton": { - "flags": {}, - "sets": [ - { - "species": "Magneton", - "item": "Eviolite", - "ability": "Magnet Pull", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Magnet Rise"], ["Thunderbolt"], ["Flash Cannon"], ["Hidden Power Water"]] - }, - { - "species": "Magneton", - "item": "Choice Specs", - "ability": "Analytic", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Flash Cannon"], ["Hidden Power Grass"]] - }, - { - "species": "Magneton", - "item": "Eviolite", - "ability": "Analytic", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Flash Cannon"], ["Hidden Power Grass"]] - } - ] - }, - "jolteon": { - "flags": {}, - "sets": [ - { - "species": "Jolteon", - "item": "Choice Specs", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Ice"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Choice Specs", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Water"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Choice Specs", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Grass"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Life Orb", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Ice"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Life Orb", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Water"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Life Orb", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Grass"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Expert Belt", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Ice"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Expert Belt", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Water"], ["Volt Switch"]] - }, - { - "species": "Jolteon", - "item": "Expert Belt", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Shadow Ball"], ["Hidden Power Grass"], ["Volt Switch"]] - } - ] - }, - "golbat": { - "flags": {}, - "sets": [ - { - "species": "Golbat", - "item": "Eviolite", - "ability": "Infiltrator", - "evs": {"hp": 248, "atk": 0, "def": 180, "spa": 0, "spd": 0, "spe": 80}, - "nature": "Impish", - "moves": [["Taunt"], ["Roost"], ["Brave Bird"], ["Super Fang", "Toxic"]] - } - ] - }, - "exploud": { - "flags": {}, - "sets": [ - { - "species": "Exploud", - "item": "Choice Specs", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Boomburst"], ["Fire Blast"], ["Sleep Talk"], ["Focus Blast"]] - }, - { - "species": "Exploud", - "item": "Life Orb", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Boomburst"], ["Fire Blast"], ["Surf"], ["Focus Blast"]] - } - ] - }, - "eelektross": { - "flags": {}, - "sets": [ - { - "species": "Eelektross", - "item": "Assault Vest", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 0}, - "nature": "Modest", - "moves": [["Volt Switch"], ["Giga Drain"], ["Flamethrower"], ["Knock Off"]] - } - ] - }, - "druddigon": { - "flags": {}, - "sets": [ - { - "species": "Druddigon", - "item": "Rocky Helmet", - "ability": "Rough Skin", - "evs": {"hp": 236, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 20}, - "nature": "Impish", - "moves": [["Dragon Tail"], ["Stealth Rock"], ["Fire Punch"], ["Glare", "Gunk Shot"]] - }, - { - "species": "Druddigon", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 236, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 20}, - "nature": "Adamant", - "moves": [["Outrage", "Dragon Claw"], ["Sucker Punch"], ["Fire Punch"], ["Gunk Shot"]] - } - ] - }, - "accelgor": { - "flags": {}, - "sets": [ - { - "species": "Accelgor", - "item": "Focus Sash", - "ability": "Sticky Hold", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Spikes"], ["Final Gambit"], ["Encore"], ["Bug Buzz"]] - }, - { - "species": "Accelgor", - "item": "Life Orb", - "ability": "Sticky Hold", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Bug Buzz"], ["Focus Blast"], ["Spikes"], ["Sludge Bomb"]] - }, - { - "species": "Accelgor", - "item": "Life Orb", - "ability": "Sticky Hold", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Bug Buzz"], ["Focus Blast"], ["Spikes"], ["Hidden Power Ice"]] - } - ] - }, - "spiritomb": { - "flags": {}, - "sets": [ - { - "species": "Spiritomb", - "item": "Leftovers", - "ability": "Infiltrator", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Dark Pulse"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Spiritomb", - "item": "Leftovers", - "ability": "Infiltrator", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Impish", - "moves": [["Will-O-Wisp"], ["Foul Play"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Spiritomb", - "item": "Black Glasses", - "ability": "Infiltrator", - "evs": {"hp": 212, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 44}, - "nature": "Adamant", - "moves": [["Sucker Punch"], ["Pursuit"], ["Will-O-Wisp"], ["Foul Play", "Taunt"]] - } - ] - }, - "drapion": { - "flags": {}, - "sets": [ - { - "species": "Drapion", - "item": "Black Sludge", - "ability": "Battle Armor", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 216, "spe": 44}, - "nature": "Careful", - "moves": [["Knock Off"], ["Taunt"], ["Toxic Spikes"], ["Poison Jab"]] - }, - { - "species": "Drapion", - "item": "Shuca Berry", - "ability": "Battle Armor", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Knock Off"], ["Pursuit"], ["Poison Jab"]] - }, - { - "species": "Drapion", - "item": "Shuca Berry", - "ability": "Battle Armor", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Knock Off"], ["Aqua Tail"], ["Poison Jab"]] - } - ] - }, - "camerupt": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Camerupt", - "item": "Cameruptite", - "ability": "Solid Rock", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Fire Blast", "Flamethrower"], ["Earth Power"], ["Hidden Power Ice"], ["Toxic"]] - } - ] - }, - "bronzong": { - "flags": {}, - "sets": [ - { - "species": "Bronzong", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Brave", - "moves": [["Trick Room"], ["Stealth Rock"], ["Earthquake"], ["Explosion"]] - }, - { - "species": "Bronzong", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Sassy", - "moves": [["Hidden Power Fire"], ["Gyro Ball"], ["Earthquake"], ["Toxic"]] - }, - { - "species": "Bronzong", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Sassy", - "moves": [["Stealth Rock"], ["Gyro Ball"], ["Psywave"], ["Toxic"]] - } - ] - }, - "rhyperior": { - "flags": {}, - "sets": [ - { - "species": "Rhyperior", - "item": "Choice Band", - "ability": "Solid Rock", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Earthquake"], ["Stone Edge"], ["Ice Punch"], ["Megahorn"]] - }, - { - "species": "Rhyperior", - "item": "Life Orb", - "ability": "Solid Rock", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Rock Polish"], ["Earthquake"], ["Stone Edge"], ["Ice Punch", "Swords Dance"]] - }, - { - "species": "Rhyperior", - "item": "Leftovers", - "ability": "Solid Rock", - "evs": {"hp": 248, "atk": 16, "def": 0, "spa": 0, "spd": 244, "spe": 0}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Earthquake"], ["Rock Blast"], ["Ice Punch", "Megahorn"]] - } - ] - }, - "hitmonlee": { - "flags": {}, - "sets": [ - { - "species": "Hitmonlee", - "item": "Choice Scarf", - "ability": "Reckless", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["High Jump Kick"], ["Knock Off"], ["Rapid Spin"], ["Close Combat"]] - }, - { - "species": "Hitmonlee", - "item": "Life Orb", - "ability": "Reckless", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["High Jump Kick"], ["Knock Off"], ["Mach Punch"], ["Rapid Spin"]] - }, - { - "species": "Hitmonlee", - "item": "Liechi Berry", - "ability": "Unburden", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Endure"], ["Reversal"], ["Knock Off"], ["Mach Punch"]] - } - ] - }, - "glalie": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Glalie", - "item": "Glalitite", - "ability": "Inner Focus", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Spikes"], ["Double-Edge"], ["Explosion"], ["Ice Shard"]] - }, - { - "species": "Glalie", - "item": "Glalitite", - "ability": "Inner Focus", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Double-Edge"], ["Freeze-Dry"], ["Earthquake"], ["Explosion"]] - } - ] - }, - "fletchinder": { - "flags": {}, - "sets": [ - { - "species": "Fletchinder", - "ability": "Gale Wings", - "evs": {"hp": 160, "atk": 252, "def": 72, "spa": 0, "spd": 24, "spe": 0}, - "nature": "Adamant", - "moves": [["Acrobatics"], ["Swords Dance"], ["Will-O-Wisp"], ["Roost"]] - } - ] - }, - "escavalier": { - "flags": {}, - "sets": [ - { - "species": "Escavalier", - "item": "Assault Vest", - "ability": "Overcoat", - "evs": {"hp": 172, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 84}, - "nature": "Adamant", - "moves": [["Megahorn"], ["Iron Head"], ["Knock Off"], ["Drill Run", "Pursuit"]] - }, - { - "species": "Escavalier", - "item": "Choice Band", - "ability": "Overcoat", - "evs": {"hp": 172, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 84}, - "nature": "Adamant", - "moves": [["Megahorn"], ["Iron Head"], ["Knock Off"], ["Drill Run"]] - } - ] - }, - "aromatisse": { - "flags": {}, - "sets": [ - { - "species": "Aromatisse", - "item": "Leftovers", - "ability": "Aroma Veil", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Wish"], ["Protect"], ["Moonblast"], ["Aromatherapy"]] - } - ] - }, - "meloetta": { - "flags": {}, - "sets": [ - { - "species": "Meloetta", - "item": "Assault Vest", - "ability": "Serene Grace", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Psyshock"], ["Hyper Voice"], ["Focus Blast"], ["Shadow Ball", "Grass Knot", "Dazzling Gleam"]] - }, - { - "species": "Meloetta", - "item": "Choice Scarf", - "ability": "Serene Grace", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hyper Voice"], ["Psyshock"], ["Focus Blast"], ["Dazzling Gleam", "Shadow Ball", "Trick", "U-turn"]] - }, - { - "species": "Meloetta", - "item": "Choice Specs", - "ability": "Serene Grace", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hyper Voice"], ["Psychic"], ["Focus Blast"], ["U-turn", "Dazzling Gleam", "Shadow Ball"]] - }, - { - "species": "Meloetta", - "item": "Life Orb", - "ability": "Serene Grace", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Relic Song"], ["Return"], ["Close Combat"], ["Knock Off"]], - "happiness": 255 - }, - { - "species": "Meloetta", - "item": "Colbur Berry", - "ability": "Serene Grace", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Hyper Voice", "Psychic"], ["Shadow Ball"], ["Focus Blast"]] - }, - { - "species": "Meloetta", - "item": "Leftovers", - "ability": "Serene Grace", - "evs": {"hp": 252, "atk": 4, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Perish Song"], ["Knock Off"], ["Heal Bell"], ["Thunder Wave"]] - }, - { - "species": "Meloetta", - "item": "Leftovers", - "ability": "Serene Grace", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Modest", - "moves": [["Substitute"], ["Calm Mind"], ["Hyper Voice"], ["Shadow Ball"]] - } - ] - }, - "alomomola": { - "flags": {}, - "sets": [ - { - "species": "Alomomola", - "item": "Leftovers", - "ability": "Regenerator", - "evs": {"hp": 120, "atk": 0, "def": 136, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Scald"], ["Wish"], ["Protect"], ["Toxic"]] - } - ] - }, - "emboar": { - "flags": {}, - "sets": [ - { - "species": "Emboar", - "item": "Choice Band", - "ability": "Reckless", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Flare Blitz"], ["Superpower"], ["Wild Charge"], ["Sucker Punch"]] - }, - { - "species": "Emboar", - "item": "Expert Belt", - "ability": "Reckless", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Flare Blitz"], ["Superpower"], ["Wild Charge"], ["Sucker Punch"]] - }, - { - "species": "Emboar", - "item": "Choice Scarf", - "ability": "Reckless", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Superpower"], ["Wild Charge"], ["Toxic"]] - } - ] - }, - "seismitoad": { - "flags": {}, - "sets": [ - { - "species": "Seismitoad", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 200, "atk": 0, "def": 252, "spa": 0, "spd": 56, "spe": 0}, - "nature": "Relaxed", - "moves": [["Stealth Rock"], ["Scald"], ["Earthquake"], ["Knock Off"]] - }, - { - "species": "Seismitoad", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Rain Dance"], ["Hydro Pump"], ["Earth Power"], ["Sludge Bomb"]] - }, - { - "species": "Seismitoad", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 164, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 92}, - "nature": "Modest", - "moves": [["Stealth Rock"], ["Hydro Pump"], ["Earth Power"], ["Grass Knot"]] - } - ] - }, - "qwilfish": { - "flags": {}, - "sets": [ - { - "species": "Qwilfish", - "item": "Black Sludge", - "ability": "Intimidate", - "evs": {"hp": 252, "atk": 0, "def": 232, "spa": 0, "spd": 0, "spe": 24}, - "nature": "Bold", - "moves": [["Spikes"], ["Pain Split"], ["Scald"], ["Taunt"]] - }, - { - "species": "Qwilfish", - "item": "Focus Sash", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Spikes"], ["Taunt"], ["Toxic Spikes"], ["Explosion"]] - } - ] - }, - "granbull": { - "flags": {}, - "sets": [ - { - "species": "Granbull", - "item": "Leftovers", - "ability": "Intimidate", - "evs": {"hp": 252, "atk": 0, "def": 232, "spa": 0, "spd": 0, "spe": 24}, - "nature": "Impish", - "moves": [["Play Rough"], ["Earthquake"], ["Heal Bell"], ["Roar"]] - }, - { - "species": "Granbull", - "item": "Choice Band", - "ability": "Intimidate", - "evs": {"hp": 212, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 44}, - "nature": "Adamant", - "moves": [["Play Rough"], ["Fire Punch"], ["Thunder Punch"], ["Close Combat"]] - } - ] - }, - "medicham": { - "flags": {}, - "sets": [ - { - "species": "Medicham", - "item": "Life Orb", - "ability": "Pure Power", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["High Jump Kick"], ["Zen Headbutt"], ["Thunder Punch"], ["Drain Punch"]] - }, - { - "species": "Medicham", - "item": "Choice Scarf", - "ability": "Pure Power", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["High Jump Kick"], ["Zen Headbutt"], ["Rock Slide", "Poison Jab"], ["Drain Punch", "Trick"]] - } - ] - }, - "smeargle": { - "flags": {}, - "sets": [ - { - "species": "Smeargle", - "item": "Focus Sash", - "ability": "Own Tempo", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Spore", "Dark Void"], ["Sticky Web"], ["Stealth Rock"], ["Explosion"]] - } - ] - }, - "absol": { - "flags": {}, - "sets": [ - { - "species": "Absol", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Knock Off"], ["Superpower"], ["Sucker Punch"], ["Iron Tail", "Pursuit"]] - }, - { - "species": "Absol", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Knock Off"], ["Superpower"], ["Sucker Punch"], ["Swords Dance"]] - } - ] - }, - "aerodactyl": { - "flags": {}, - "sets": [ - { - "species": "Aerodactyl", - "item": "Life Orb", - "ability": "Unnerve", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Stone Edge"], ["Fire Fang", "Earthquake"], ["Aerial Ace"], ["Roost"]] - } - ] - }, - "aggron": { - "flags": {}, - "sets": [ - { - "species": "Aggron", - "item": "Choice Band", - "ability": "Rock Head", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Head Smash"], ["Heavy Slam"], ["Sleep Talk", "Fire Punch"], ["Low Kick"]] - } - ] - }, - "blastoise": { - "flags": {}, - "sets": [ - { - "species": "Blastoise", - "item": "Leftovers", - "ability": "Torrent", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Bold", - "moves": [["Scald"], ["Rapid Spin"], ["Toxic"], ["Foresight", "Refresh"]] - } - ] - }, - "slowking": { - "flags": {}, - "sets": [ - { - "species": "Slowking", - "item": "Leftovers", - "ability": "Regenerator", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Bold", - "moves": [["Scald"], ["Psyshock"], ["Calm Mind", "Thunder Wave"], ["Slack Off"]] - }, - { - "species": "Slowking", - "item": "Choice Specs", - "ability": "Regenerator", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 8}, - "nature": "Modest", - "moves": [["Scald"], ["Psyshock"], ["Fire Blast"], ["Trick"]] - }, - { - "species": "Slowking", - "item": "Colbur Berry", - "ability": "Regenerator", - "evs": {"hp": 160, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 96}, - "nature": "Bold", - "moves": [["Scald"], ["Psyshock"], ["Fire Blast"], ["Thunder Wave"]] - } - ] - }, - "abomasnow": { - "flags": {}, - "sets": [ - { - "species": "Abomasnow", - "item": "Life Orb", - "ability": "Snow Warning", - "evs": {"hp": 0, "atk": 132, "def": 0, "spa": 252, "spd": 0, "spe": 124}, - "nature": "Mild", - "moves": [["Blizzard"], ["Giga Drain"], ["Ice Shard"], ["Focus Blast"]] - } - ] - }, - "flygon": { - "flags": {}, - "sets": [ - { - "species": "Flygon", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Earth Power"], ["Roost"], ["Fire Blast"]] - }, - { - "species": "Flygon", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Draco Meteor"], ["Earth Power"], ["Roost"], ["Defog"]] - }, - { - "species": "Flygon", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 116, "spa": 0, "spd": 116, "spe": 24}, - "nature": "Careful", - "moves": [["Defog"], ["Roost"], ["Earthquake"], ["U-turn"]] - }, - { - "species": "Flygon", - "item": "Choice Band", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Outrage"], ["Earthquake"], ["U-turn"], ["Iron Tail"]] - } - ] - }, - "scrafty": { - "flags": {}, - "sets": [ - { - "species": "Scrafty", - "item": "Choice Band", - "ability": "Intimidate", - "evs": {"hp": 152, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 104}, - "nature": "Adamant", - "moves": [["Knock Off"], ["High Jump Kick"], ["Drain Punch"], ["Poison Jab"]] - }, - { - "species": "Scrafty", - "item": "Chople Berry", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["High Jump Kick"], ["Poison Jab", "Iron Head"], ["Dragon Dance"]] - }, - { - "species": "Scrafty", - "item": "Coba Berry", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["High Jump Kick"], ["Head Smash"], ["Dragon Dance"]] - } - ] - }, - "houndoom": { - "flags": {}, - "sets": [ - { - "species": "Houndoom", - "item": "Life Orb", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Fire Blast"], ["Dark Pulse"], ["Sucker Punch"], ["Nasty Plot"]] - }, - { - "species": "Houndoom", - "item": "Life Orb", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 220, "def": 0, "spa": 36, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Fire Blast"], ["Crunch"], ["Sucker Punch"], ["Pursuit"]] - } - ] - }, - "togetic": { - "flags": {}, - "sets": [ - { - "species": "Togetic", - "item": "Eviolite", - "ability": "Serene Grace", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Bold", - "moves": [["Dazzling Gleam"], ["Roost"], ["Flamethrower"], ["Thunder Wave"]] - } - ] - }, - "gallade": { - "flags": {}, - "sets": [ - { - "species": "Gallade", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Zen Headbutt"], ["Knock Off"], ["Swords Dance"]] - }, - { - "species": "Gallade", - "item": "Choice Band", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Zen Headbutt"], ["Knock Off"], ["Drain Punch"]] - } - ] - }, - "virizion": { - "flags": {}, - "sets": [ - { - "species": "Virizion", - "item": "Lum Berry", - "ability": "Justified", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Leaf Blade"], ["Close Combat"], ["Stone Edge", "Zen Headbutt"], ["Swords Dance"]] - }, - { - "species": "Virizion", - "item": "Life Orb", - "ability": "Justified", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Giga Drain"], ["Focus Blast"], ["Hidden Power Ice"], ["Calm Mind"]] - }, - { - "species": "Virizion", - "item": "Leftovers", - "ability": "Justified", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Giga Drain"], ["Focus Blast"], ["Substitute"], ["Calm Mind"]] - } - ] - }, - "uxie": { - "flags": {}, - "sets": [ - { - "species": "Uxie", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 64, "spa": 0, "spd": 0, "spe": 192}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Psyshock"], ["Thunder Wave"], ["U-turn"]] - } - ] - }, - "sneasel": { - "flags": {}, - "sets": [ - { - "species": "Sneasel", - "item": "Life Orb", - "ability": "Pickpocket", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["Icicle Crash"], ["Ice Shard"], ["Low Kick", "Pursuit"]] - } - ] - }, - "samurott": { - "flags": {}, - "sets": [ - { - "species": "Samurott", - "item": "Lum Berry", - "ability": "Shell Armor", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Waterfall"], ["Megahorn"], ["Aqua Jet"]] - } - ] - }, - "gurdurr": { - "flags": {}, - "sets": [ - { - "species": "Gurdurr", - "item": "Eviolite", - "ability": "Guts", - "evs": {"hp": 248, "atk": 252, "def": 0, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Adamant", - "moves": [["Bulk Up"], ["Drain Punch"], ["Knock Off"], ["Mach Punch"]] - } - ] - }, - "poliwrath": { - "flags": {}, - "sets": [ - { - "species": "Poliwrath", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Relaxed", - "moves": [["Scald"], ["Circle Throw"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Poliwrath", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 8}, - "nature": "Modest", - "moves": [["Hydro Pump", "Scald"], ["Focus Blast"], ["Ice Beam"], ["Vacuum Wave"]] - }, - { - "species": "Poliwrath", - "item": "Life Orb", - "ability": "Water Absorb", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 8}, - "nature": "Modest", - "moves": [["Hydro Pump", "Scald"], ["Focus Blast"], ["Ice Beam"], ["Vacuum Wave"]] - }, - { - "species": "Poliwrath", - "item": "Choice Specs", - "ability": "Water Absorb", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 8}, - "nature": "Modest", - "moves": [["Hydro Pump", "Scald"], ["Focus Blast"], ["Ice Beam"], ["Vacuum Wave"]] - } - ] - }, - "vivillon": { - "flags": {}, - "sets": [ - { - "species": "Vivillon", - "item": "Leftovers", - "ability": "Compound Eyes", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Sleep Powder"], ["Quiver Dance"], ["Hurricane"], ["Substitute"]] - } - ] - }, - "audino": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Audino", - "item": "Audinite", - "ability": "Regenerator", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 8}, - "nature": "Modest", - "moves": [["Dazzling Gleam"], ["Fire Blast"], ["Surf"], ["Healing Wish"]] - } - ] - }, - "mesprit": { - "flags": {}, - "sets": [ - { - "species": "Mesprit", - "item": "Colbur Berry", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Dazzling Gleam", "Ice Beam"], ["Stealth Rock"], ["Healing Wish"]] - } - ] - }, - "archeops": { - "flags": {}, - "sets": [ - { - "species": "Archeops", - "item": "Focus Sash", - "ability": "Defeatist", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Stealth Rock"], ["Taunt"], ["Endeavor"], ["Head Smash"]] - } - ] - }, - "malamar": { - "flags": {}, - "sets": [ - { - "species": "Malamar", - "item": "Leftovers", - "ability": "Contrary", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 108, "spe": 152}, - "nature": "Jolly", - "moves": [["Superpower"], ["Knock Off"], ["Rest"], ["Sleep Talk"]] - } - ] - }, - "roselia": { - "flags": {}, - "sets": [ - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 248, "atk": 0, "def": 172, "spa": 0, "spd": 88, "spe": 0}, - "nature": "Calm", - "moves": [["Spikes"], ["Synthesis"], ["Giga Drain"], ["Sludge Bomb"]] - } - ] - }, - "piloswine": { - "flags": {}, - "sets": [ - { - "species": "Piloswine", - "item": "Eviolite", - "ability": "Thick Fat", - "evs": {"hp": 240, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Ice Shard"], ["Earthquake"], ["Icicle Crash"]] - } - ] - }, - "sawk": { - "flags": {}, - "sets": [ - { - "species": "Sawk", - "item": "Choice Band", - "ability": "Sturdy", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Knock Off"], ["Zen Headbutt"], ["Stone Edge"]] - }, - { - "species": "Sawk", - "item": "Expert Belt", - "ability": "Mold Breaker", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Knock Off"], ["Stone Edge"], ["Zen Headbutt"]] - }, - { - "species": "Sawk", - "item": "Lum Berry", - "ability": "Mold Breaker", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Knock Off"], ["Earthquake"], ["Stone Edge"]] - }, - { - "species": "Sawk", - "item": "Choice Scarf", - "ability": "Sturdy", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Knock Off"], ["Stone Edge"], ["Zen Headbutt"]] - } - ] - } - }, - "NU": { - "dodrio": { - "flags": {}, - "sets": [ - { - "species": "Dodrio", - "item": "Choice Band", - "ability": "Early Bird", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Return"], ["Knock Off"], ["Quick Attack"]], - "happiness": 255 - } - ] - }, - "chatot": { - "flags": {}, - "sets": [ - { - "species": "Chatot", - "item": "Choice Scarf", - "ability": "Keen Eye", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Boomburst"], ["Chatter"], ["U-turn"], ["Hidden Power Grass"]] - }, - { - "species": "Chatot", - "item": "Choice Specs", - "ability": "Keen Eye", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Boomburst"], ["Chatter"], ["U-turn"], ["Hidden Power Grass"]] - }, - { - "species": "Chatot", - "item": "Leftovers", - "ability": "Tangled Feet", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Boomburst"], ["Chatter"], ["Nasty Plot"], ["Encore"]] - } - ] - }, - "carracosta": { - "flags": {}, - "sets": [ - { - "species": "Carracosta", - "item": "Life Orb", - "ability": "Solid Rock", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Shell Smash"], ["Waterfall"], ["Stone Edge"], ["Aqua Jet"]] - }, - { - "species": "Carracosta", - "item": "Leftovers", - "ability": "Solid Rock", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Relaxed", - "moves": [["Stealth Rock"], ["Scald"], ["Rock Slide"], ["Knock Off", "Toxic"]] - }, - { - "species": "Carracosta", - "item": "Life Orb", - "ability": "Solid Rock", - "evs": {"hp": 0, "atk": 28, "def": 0, "spa": 228, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Shell Smash"], ["Hydro Pump"], ["Stone Edge"], ["Ice Beam"]] - } - ] - }, - "beheeyem": { - "flags": {}, - "sets": [ - { - "species": "Beheeyem", - "item": "Life Orb", - "ability": "Analytic", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 252, "spd": 0, "spe": 0}, - "nature": "Quiet", - "moves": [["Trick Room"], ["Psychic"], ["Thunderbolt"], ["Hidden Power Fighting"]] - }, - { - "species": "Beheeyem", - "item": "Choice Specs", - "ability": "Analytic", - "evs": {"hp": 132, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 124}, - "nature": "Modest", - "moves": [["Psychic", "Psyshock"], ["Signal Beam"], ["Hidden Power Ground"], ["Trick", "Thunderbolt"]] - } - ] - }, - "basculin": { - "flags": {}, - "sets": [ - { - "species": "Basculin", - "item": "Choice Band", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Waterfall"], ["Aqua Jet"], ["Zen Headbutt"], ["Superpower"]] - }, - { - "species": "Basculin", - "item": "Splash Plate", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Aqua Jet"], ["Double-Edge"], ["Superpower"]] - } - ] - }, - "barbaracle": { - "flags": {}, - "sets": [ - { - "species": "Barbaracle", - "item": "Shuca Berry", - "ability": "Tough Claws", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Shell Smash"], ["Razor Shell"], ["Return"], ["Earthquake", "Substitute"]], - "happiness": 255 - } - ] - }, - "aurorus": { - "flags": {}, - "sets": [ - { - "species": "Aurorus", - "item": "Choice Specs", - "ability": "Refrigerate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Hyper Voice"], ["Freeze-Dry"], ["Psychic", "Frost Breath"], ["Earth Power"]] - }, - { - "species": "Aurorus", - "item": "Focus Sash", - "ability": "Snow Warning", - "evs": {"hp": 0, "atk": 32, "def": 0, "spa": 224, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Stealth Rock"], ["Blizzard"], ["Freeze-Dry"], ["Rock Tomb"]] - } - ] - }, - "articuno": { - "flags": {}, - "sets": [ - { - "species": "Articuno", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Ice Beam"], ["Roost"], ["Hurricane"], ["Freeze-Dry"]] - }, - { - "species": "Articuno", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Hidden Power Fire"], ["Roost"], ["Hurricane"], ["Freeze-Dry"]] - }, - { - "species": "Articuno", - "item": "Leftovers", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Roost"], ["Hurricane"], ["Freeze-Dry"]] - } - ] - }, - "zangoose": { - "flags": {}, - "sets": [ - { - "species": "Zangoose", - "item": "Toxic Orb", - "ability": "Toxic Boost", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Facade"], ["Knock Off"], ["Quick Attack"], ["Close Combat"]] - } - ] - }, - "xatu": { - "flags": {}, - "sets": [ - { - "species": "Xatu", - "item": "Colbur Berry", - "ability": "Magic Bounce", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Timid", - "moves": [["Psychic", "Psyshock"], ["Roost"], ["Heat Wave"], ["U-turn", "Thunder Wave"]] - }, - { - "species": "Xatu", - "item": "Leftovers", - "ability": "Magic Bounce", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Timid", - "moves": [["Calm Mind"], ["Roost"], ["Psyshock"], ["Heat Wave", "Signal Beam"]] - }, - { - "species": "Xatu", - "item": "Life Orb", - "ability": "Magic Bounce", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic", "Psyshock"], ["Grass Knot"], ["Heat Wave"], ["Roost"]] - } - ] - }, - "weezing": { - "flags": {}, - "sets": [ - { - "species": "Weezing", - "item": "Black Sludge", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 148, "spa": 0, "spd": 0, "spe": 108}, - "nature": "Bold", - "moves": [["Will-O-Wisp"], ["Sludge Bomb"], ["Taunt"], ["Pain Split"]] - }, - { - "species": "Weezing", - "item": "Black Sludge", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 148, "spa": 0, "spd": 0, "spe": 108}, - "nature": "Bold", - "moves": [["Will-O-Wisp"], ["Sludge Bomb"], ["Taunt"], ["Toxic Spikes"]] - } - ] - }, - "vivillon": { - "flags": {}, - "sets": [ - { - "species": "Vivillon", - "item": "Leftovers", - "ability": "Compound Eyes", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Quiver Dance"], ["Sleep Powder"], ["Hurricane"], ["Substitute"]] - }, - { - "species": "Vivillon", - "item": "Focus Sash", - "ability": "Compound Eyes", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Sleep Powder"], ["Quiver Dance"], ["Hurricane"], ["Energy Ball"]] - } - ] - }, - "vileplume": { - "flags": {}, - "sets": [ - { - "species": "Vileplume", - "item": "Black Sludge", - "ability": "Effect Spore", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 4, "spd": 0, "spe": 0}, - "nature": "Bold", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Synthesis"], ["Aromatherapy", "Sleep Powder"]] - }, - { - "species": "Vileplume", - "item": "Black Sludge", - "ability": "Effect Spore", - "evs": {"hp": 112, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 144}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Hidden Power Fire"], ["Synthesis"]] - }, - { - "species": "Vileplume", - "item": "Black Sludge", - "ability": "Effect Spore", - "evs": {"hp": 112, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 144}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Hidden Power Ground"], ["Synthesis"]] - } - ] - }, - "swellow": { - "flags": {}, - "sets": [ - { - "species": "Swellow", - "item": "Choice Specs", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Boomburst"], ["U-turn"], ["Heat Wave"], ["Sleep Talk"]] - }, - { - "species": "Swellow", - "item": "Choice Specs", - "ability": "Scrappy", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Boomburst"], ["U-turn"], ["Heat Wave"], ["Hidden Power Grass"]] - }, - { - "species": "Swellow", - "item": "Toxic Orb", - "ability": "Guts", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Facade"], ["Brave Bird"], ["U-turn"], ["Quick Attack"]] - } - ] - }, - "sandslash": { - "flags": {}, - "sets": [ - { - "species": "Sandslash", - "item": "Lum Berry", - "ability": "Sand Rush", - "evs": {"hp": 172, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 84}, - "nature": "Adamant", - "moves": [["Rapid Spin"], ["Knock Off"], ["Earthquake"], ["Stealth Rock"]] - } - ] - }, - "samurott": { - "flags": {}, - "sets": [ - { - "species": "Samurott", - "item": "Life Orb", - "ability": "Torrent", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Rash", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Aqua Jet"], ["Megahorn", "Taunt"]] - }, - { - "species": "Samurott", - "item": "Life Orb", - "ability": "Torrent", - "evs": {"hp": 120, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 136}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Waterfall"], ["Aqua Jet"], ["Megahorn"]] - }, - { - "species": "Samurott", - "item": "Lum Berry", - "ability": "Torrent", - "evs": {"hp": 120, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 136}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Waterfall"], ["Aqua Jet"], ["Megahorn"]] - } - ] - }, - "rotomfan": { - "flags": {}, - "sets": [ - { - "species": "Rotom-Fan", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Air Slash"], ["Volt Switch"], ["Trick"], ["Thunderbolt"]] - }, - { - "species": "Rotom-Fan", - "item": "Expert Belt", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Air Slash"], ["Hidden Power Water"], ["Will-O-Wisp"]] - }, - { - "species": "Rotom-Fan", - "item": "Expert Belt", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Air Slash"], ["Hidden Power Grass"], ["Will-O-Wisp"]] - } - ] - }, - "rotom": { - "flags": {}, - "sets": [ - { - "species": "Rotom", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Shadow Ball"], ["Thunderbolt"], ["Trick"]] - }, - { - "species": "Rotom", - "item": "Choice Specs", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Shadow Ball"], ["Thunderbolt"], ["Trick"]] - }, - { - "species": "Rotom", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 108, "spa": 0, "spd": 0, "spe": 148}, - "nature": "Timid", - "moves": [["Will-O-Wisp"], ["Shadow Ball"], ["Volt Switch"], ["Pain Split"]] - }, - { - "species": "Rotom", - "item": "Spell Tag", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Will-O-Wisp"], ["Hex"], ["Volt Switch"], ["Discharge", "Shadow Ball"]] - } - ] - }, - "rhydon": { - "flags": {}, - "sets": [ - { - "species": "Rhydon", - "item": "Eviolite", - "ability": "Lightning Rod", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Earthquake"], ["Stone Edge"], ["Rock Polish"]] - }, - { - "species": "Rhydon", - "item": "Eviolite", - "ability": "Lightning Rod", - "evs": {"hp": 252, "atk": 16, "def": 0, "spa": 0, "spd": 240, "spe": 0}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Earthquake"], ["Rock Blast"], ["Megahorn"]] - } - ] - }, - "regirock": { - "flags": {}, - "sets": [ - { - "species": "Regirock", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 44, "def": 16, "spa": 0, "spd": 196, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Stone Edge", "Rock Slide"], ["Thunder Wave", "Toxic"], ["Drain Punch", "Earthquake"]] - } - ] - }, - "pyroar": { - "flags": {}, - "sets": [ - { - "species": "Pyroar", - "item": "Life Orb", - "ability": "Unnerve", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Hyper Voice"], ["Hidden Power Grass"], ["Will-O-Wisp"]] - }, - { - "species": "Pyroar", - "item": "Choice Specs", - "ability": "Unnerve", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Hyper Voice"], ["Hidden Power Grass"], ["Flamethrower", "Overheat"]] - } - ] - }, - "primeape": { - "flags": {}, - "sets": [ - { - "species": "Primeape", - "item": "Choice Band", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Close Combat"], ["U-turn"], ["Stone Edge"], ["Earthquake", "Gunk Shot"]] - }, - { - "species": "Primeape", - "item": "Expert Belt", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Close Combat"], ["U-turn"], ["Stone Edge"], ["Encore"]] - } - ] - }, - "pawniard": { - "flags": {}, - "sets": [ - { - "species": "Pawniard", - "item": "Eviolite", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Knock Off"], ["Iron Head"], ["Sucker Punch"]] - } - ] - }, - "musharna": { - "flags": {}, - "sets": [ - { - "species": "Musharna", - "item": "Leftovers", - "ability": "Synchronize", - "evs": {"hp": 240, "atk": 0, "def": 252, "spa": 0, "spd": 16, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Psyshock"], ["Heal Bell", "Signal Beam"], ["Moonlight"]] - }, - { - "species": "Musharna", - "item": "Leftovers", - "ability": "Synchronize", - "evs": {"hp": 240, "atk": 0, "def": 252, "spa": 0, "spd": 16, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Barrier"], ["Moonlight"], ["Stored Power"]] - } - ] - }, - "muk": { - "flags": {}, - "sets": [ - { - "species": "Muk", - "item": "Assault Vest", - "ability": "Poison Touch", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Adamant", - "moves": [["Gunk Shot"], ["Poison Jab"], ["Fire Punch"], ["Ice Punch"]] - }, - { - "species": "Muk", - "item": "Choice Band", - "ability": "Poison Touch", - "evs": {"hp": 220, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 36}, - "nature": "Adamant", - "moves": [["Gunk Shot"], ["Shadow Sneak"], ["Focus Punch"], ["Ice Punch"]] - } - ] - }, - "mismagius": { - "flags": {}, - "sets": [ - { - "species": "Mismagius", - "item": "Colbur Berry", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Taunt"], ["Shadow Ball"], ["Dazzling Gleam"], ["Destiny Bond"]] - }, - { - "species": "Mismagius", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Taunt"], ["Shadow Ball"], ["Dazzling Gleam"], ["Nasty Plot"]] - }, - { - "species": "Mismagius", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Taunt"], ["Will-O-Wisp"], ["Hex"], ["Pain Split"]] - } - ] - }, - "miltank": { - "flags": {}, - "sets": [ - { - "species": "Miltank", - "item": "Leftovers", - "ability": "Scrappy", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Curse"], ["Body Slam"], ["Milk Drink"], ["Heal Bell"]] - }, - { - "species": "Miltank", - "item": "Leftovers", - "ability": "Sap Sipper", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Impish", - "moves": [["Body Slam"], ["Milk Drink"], ["Toxic", "Thunder Wave"], ["Heal Bell"]] - }, - { - "species": "Miltank", - "item": "Leftovers", - "ability": "Sap Sipper", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Impish", - "moves": [["Body Slam"], ["Milk Drink"], ["Toxic", "Thunder Wave"], ["Stealth Rock"]] - } - ] - }, - "mesprit": { - "flags": {}, - "sets": [ - { - "species": "Mesprit", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Psychic", "Psyshock"], ["Signal Beam", "Ice Beam"], ["Energy Ball"], ["Healing Wish", "Calm Mind"]] - }, - { - "species": "Mesprit", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Psychic", "Psyshock"], ["Signal Beam", "Ice Beam"], ["Hidden Power Ground"], ["Healing Wish", "Calm Mind"]] - }, - { - "species": "Mesprit", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Psychic"], ["Ice Beam", "Signal Beam"], ["U-turn"], ["Healing Wish"]] - }, - { - "species": "Mesprit", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Psychic"], ["U-turn"], ["Thunder Wave", "Healing Wish"]] - } - ] - }, - "mantine": { - "flags": {}, - "sets": [ - { - "species": "Mantine", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 16, "spe": 0}, - "nature": "Calm", - "moves": [["Defog"], ["Scald"], ["Air Slash"], ["Toxic"]] - }, - { - "species": "Mantine", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 32, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 224}, - "nature": "Modest", - "moves": [["Air Slash"], ["Hydro Pump"], ["Ice Beam"], ["Rain Dance"]] - } - ] - }, - "malamar": { - "flags": {}, - "sets": [ - { - "species": "Malamar", - "item": "Leftovers", - "ability": "Contrary", - "evs": {"hp": 252, "atk": 4, "def": 0, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Sleep Talk"], ["Superpower"], ["Knock Off"]] - }, - { - "species": "Malamar", - "item": "Choice Scarf", - "ability": "Contrary", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Superpower"], ["Knock Off"], ["Psycho Cut"], ["Switcheroo"]] - } - ] - }, - "magmortar": { - "flags": {}, - "sets": [ - { - "species": "Magmortar", - "item": "Assault Vest", - "ability": "Vital Spirit", - "evs": {"hp": 64, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 192}, - "nature": "Modest", - "moves": [["Fire Blast"], ["Thunderbolt"], ["Focus Blast"], ["Flame Charge", "Earthquake"]] - }, - { - "species": "Magmortar", - "item": "Assault Vest", - "ability": "Vital Spirit", - "evs": {"hp": 64, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 192}, - "nature": "Modest", - "moves": [["Fire Blast"], ["Thunderbolt"], ["Hidden Power Grass"], ["Flame Charge", "Earthquake"]] - }, - { - "species": "Magmortar", - "item": "Life Orb", - "ability": "Vital Spirit", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Mild", - "moves": [["Fire Blast"], ["Thunderbolt"], ["Earthquake"], ["Focus Blast"]] - }, - { - "species": "Magmortar", - "item": "Life Orb", - "ability": "Vital Spirit", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Mild", - "moves": [["Fire Blast"], ["Thunderbolt"], ["Earthquake"], ["Hidden Power Grass"]] - } - ] - }, - "ludicolo": { - "flags": {}, - "sets": [ - { - "species": "Ludicolo", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Giga Drain"], ["Ice Beam"], ["Rain Dance"]] - } - ] - }, - "lilligant": { - "flags": {}, - "sets": [ - { - "species": "Lilligant", - "item": "Life Orb", - "ability": "Own Tempo", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Quiver Dance"], ["Sleep Powder"], ["Giga Drain"], ["Hidden Power Fire"]] - }, - { - "species": "Lilligant", - "item": "Life Orb", - "ability": "Own Tempo", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Quiver Dance"], ["Sleep Powder"], ["Giga Drain"], ["Hidden Power Ice"]] - }, - { - "species": "Lilligant", - "item": "Choice Scarf", - "ability": "Own Tempo", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Sleep Powder"], ["Leaf Storm"], ["Hidden Power Rock"], ["Healing Wish"]] - } - ] - }, - "liepard": { - "flags": {}, - "sets": [ - { - "species": "Liepard", - "item": "Black Glasses", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Dark Pulse"], ["Copycat"], ["Encore"]] - }, - { - "species": "Liepard", - "item": "Black Glasses", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Knock Off"], ["Encore"], ["Sucker Punch"], ["U-turn"]] - } - ] - }, - "lanturn": { - "flags": {}, - "sets": [ - { - "species": "Lanturn", - "item": "Choice Specs", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 72, "spe": 184}, - "nature": "Modest", - "moves": [["Hydro Pump", "Scald"], ["Volt Switch"], ["Ice Beam", "Signal Beam"], ["Hidden Power Fire"]] - }, - { - "species": "Lanturn", - "item": "Choice Specs", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 72, "spe": 184}, - "nature": "Modest", - "moves": [["Hydro Pump", "Scald"], ["Volt Switch"], ["Ice Beam", "Signal Beam"], ["Hidden Power Grass"]] - }, - { - "species": "Lanturn", - "item": "Leftovers", - "ability": "Volt Absorb", - "evs": {"hp": 40, "atk": 0, "def": 152, "spa": 0, "spd": 208, "spe": 108}, - "nature": "Calm", - "moves": [["Scald"], ["Volt Switch"], ["Heal Bell"], ["Toxic", "Thunder Wave", "Protect"]] - }, - { - "species": "Lanturn", - "item": "Assault Vest", - "ability": "Volt Absorb", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 144, "spe": 112}, - "nature": "Modest", - "moves": [["Scald"], ["Volt Switch"], ["Ice Beam"], ["Hidden Power Fire"]] - } - ] - }, - "klinklang": { - "flags": {}, - "sets": [ - { - "species": "Klinklang", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 92, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 164}, - "nature": "Adamant", - "moves": [["Shift Gear"], ["Gear Grind"], ["Return"], ["Substitute"]], - "happiness": 255 - } - ] - }, - "kangaskhan": { - "flags": {}, - "sets": [ - { - "species": "Kangaskhan", - "gender": "F", - "item": "Silk Scarf", - "ability": "Scrappy", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Fake Out"], ["Double-Edge"], ["Sucker Punch"], ["Earthquake"]] - } - ] - }, - "kabutops": { - "flags": {}, - "sets": [ - { - "species": "Kabutops", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Rapid Spin"], ["Stone Edge"], ["Aqua Jet"], ["Waterfall"]] - }, - { - "species": "Kabutops", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Stone Edge"], ["Aqua Jet"], ["Superpower", "Waterfall"]] - } - ] - }, - "jynx": { - "flags": {}, - "sets": [ - { - "species": "Jynx", - "item": "Choice Scarf", - "ability": "Dry Skin", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Ice Beam"], ["Psychic"], ["Focus Blast"], ["Trick"]] - }, - { - "species": "Jynx", - "item": "Focus Sash", - "ability": "Dry Skin", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Lovely Kiss"], ["Ice Beam"], ["Psychic"], ["Focus Blast", "Nasty Plot"]] - }, - { - "species": "Jynx", - "item": "Life Orb", - "ability": "Dry Skin", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Lovely Kiss"], ["Nasty Plot"], ["Psychic"], ["Ice Beam"]] - } - ] - }, - "hariyama": { - "flags": {}, - "sets": [ - { - "species": "Hariyama", - "item": "Assault Vest", - "ability": "Thick Fat", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Knock Off"], ["Bullet Punch"], ["Fake Out", "Earthquake"]] - }, - { - "species": "Hariyama", - "item": "Choice Band", - "ability": "Guts", - "evs": {"hp": 248, "atk": 252, "def": 0, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Adamant", - "moves": [["Close Combat"], ["Knock Off"], ["Earthquake"], ["Bullet Punch"]] - } - ] - }, - "golurk": { - "flags": {}, - "sets": [ - { - "species": "Golurk", - "item": "Choice Band", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Shadow Punch"], ["Earthquake"], ["Ice Punch"], ["Zen Headbutt", "Thunder Punch"]] - }, - { - "species": "Golurk", - "item": "Colbur Berry", - "ability": "No Guard", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Earthquake"], ["Shadow Punch"], ["Dynamic Punch"]] - }, - { - "species": "Golurk", - "item": "Life Orb", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Rock Polish"], ["Earthquake"], ["Shadow Punch"], ["Ice Punch"]] - } - ] - }, - "garbodor": { - "flags": {}, - "sets": [ - { - "species": "Garbodor", - "item": "Rocky Helmet", - "ability": "Aftermath", - "evs": {"hp": 252, "atk": 0, "def": 160, "spa": 0, "spd": 0, "spe": 96}, - "nature": "Impish", - "moves": [["Spikes"], ["Gunk Shot"], ["Drain Punch"], ["Toxic Spikes"]] - }, - { - "species": "Garbodor", - "item": "Rocky Helmet", - "ability": "Aftermath", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Spikes"], ["Gunk Shot"], ["Drain Punch"], ["Seed Bomb"]] - } - ] - }, - "ferroseed": { - "flags": {}, - "sets": [ - { - "species": "Ferroseed", - "item": "Eviolite", - "ability": "Iron Barbs", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Relaxed", - "moves": [["Spikes"], ["Gyro Ball", "Knock Off"], ["Leech Seed"], ["Protect"]] - }, - { - "species": "Ferroseed", - "item": "Eviolite", - "ability": "Iron Barbs", - "evs": {"hp": 252, "atk": 0, "def": 112, "spa": 0, "spd": 144, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Seed Bomb"], ["Leech Seed"], ["Thunder Wave"]] - } - ] - }, - "exeggutor": { - "flags": {}, - "sets": [ - { - "species": "Exeggutor", - "item": "Life Orb", - "ability": "Chlorophyll", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Psychic"], ["Hidden Power Fire"], ["Sleep Powder"]] - }, - { - "species": "Exeggutor", - "item": "Choice Specs", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Psychic"], ["Leaf Storm"], ["Giga Drain"], ["Hidden Power Fire"]] - }, - { - "species": "Exeggutor", - "item": "Lum Berry", - "ability": "Harvest", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 176, "spd": 0, "spe": 84}, - "nature": "Modest", - "moves": [["Sleep Powder"], ["Giga Drain"], ["Psychic"], ["Rest"]] - } - ] - }, - "electivire": { - "flags": {}, - "sets": [ - { - "species": "Electivire", - "item": "Life Orb", - "ability": "Motor Drive", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Wild Charge"], ["Earthquake"], ["Ice Punch"], ["Hidden Power Grass"]] - } - ] - }, - "cryogonal": { - "flags": {}, - "sets": [ - { - "species": "Cryogonal", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Rapid Spin"], ["Freeze-Dry"], ["Frost Breath"], ["Recover"]] - }, - { - "species": "Cryogonal", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Rapid Spin"], ["Freeze-Dry"], ["Hidden Power Ground"], ["Recover"]] - } - ] - }, - "crustle": { - "flags": {}, - "sets": [ - { - "species": "Crustle", - "item": "Custap Berry", - "ability": "Sturdy", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Spikes"], ["Rock Blast"], ["Knock Off"]] - } - ] - }, - "cacturne": { - "flags": {}, - "sets": [ - { - "species": "Cacturne", - "item": "Life Orb", - "ability": "Water Absorb", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Rash", - "moves": [["Dark Pulse"], ["Giga Drain"], ["Sucker Punch"], ["Destiny Bond"]] - } - ] - }, - "audino": { - "flags": { - "megaOnly": 1 - }, - "sets": [ - { - "species": "Audino", - "item": "Audinite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 208, "spa": 48, "spd": 0, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Dazzling Gleam"], ["Wish"], ["Protect"]] - }, - { - "species": "Audino", - "item": "Audinite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 208, "spa": 48, "spd": 0, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Dazzling Gleam"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Audino", - "item": "Audinite", - "ability": "Regenerator", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Calm Mind", "Healing Wish"], ["Dazzling Gleam"], ["Fire Blast"], ["Surf", "Thunder Wave", "Psychic"]] - }, - { - "species": "Audino", - "item": "Audinite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 128, "spa": 0, "spd": 128, "spe": 0}, - "nature": "Calm", - "moves": [["Wish"], ["Protect"], ["Heal Bell"], ["Dazzling Gleam"]] - } - ] - }, - "archeops": { - "flags": {}, - "sets": [ - { - "species": "Archeops", - "ability": "Defeatist", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Taunt"], ["Roost"], ["Acrobatics"], ["Earth Power"]] - }, - { - "species": "Archeops", - "ability": "Defeatist", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Taunt"], ["Roost"], ["Acrobatics"], ["Defog"]] - }, - { - "species": "Archeops", - "ability": "Defeatist", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Defog"], ["Roost"], ["Acrobatics"], ["Earth Power"]] - }, - { - "species": "Archeops", - "item": "Focus Sash", - "ability": "Defeatist", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Stealth Rock"], ["Taunt"], ["Endeavor"], ["Head Smash"]] - }, - { - "species": "Archeops", - "ability": "Defeatist", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Acrobatics"], ["Stone Edge"], ["Earth Power"], ["Roost"]] - } - ] - }, - "claydol": { - "flags": {}, - "sets": [ - { - "species": "Claydol", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Rapid Spin"], ["Earth Power"], ["Shadow Ball"], ["Psychic", "Psyshock"]] - } - ] - }, - "tauros": { - "flags": {}, - "sets": [ - { - "species": "Tauros", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Rock Climb"], ["Earthquake"], ["Fire Blast"], ["Iron Tail", "Zen Headbutt"]] - } - ] - }, - "mawile": { - "flags": {}, - "sets": [ - { - "species": "Mawile", - "item": "Life Orb", - "ability": "Sheer Force", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naughty", - "moves": [["Play Rough"], ["Iron Head"], ["Fire Blast"], ["Sucker Punch"]] - } - ] - }, - "scyther": { - "flags": {}, - "sets": [ - { - "species": "Scyther", - "item": "Eviolite", - "ability": "Technician", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Aerial Ace"], ["U-turn"], ["Roost"]] - }, - { - "species": "Scyther", - "item": "Choice Band", - "ability": "Technician", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["U-turn"], ["Aerial Ace"], ["Knock Off", "Pursuit"], ["Quick Attack"]] - }, - { - "species": "Scyther", - "item": "Choice Scarf", - "ability": "Technician", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["U-turn"], ["Aerial Ace"], ["Knock Off"], ["Bug Bite"]] - } - ] - }, - "torterra": { - "flags": {}, - "sets": [ - { - "species": "Torterra", - "item": "Leftovers", - "ability": "Overgrow", - "evs": {"hp": 252, "atk": 128, "def": 128, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Wood Hammer"], ["Earthquake"], ["Stealth Rock"], ["Synthesis"]] - }, - { - "species": "Torterra", - "item": "Soft Sand", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Rock Polish"], ["Wood Hammer"], ["Earthquake"], ["Stone Edge"]] - } - ] - }, - "haunter": { - "flags": {}, - "sets": [ - { - "species": "Haunter", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Sludge Bomb"], ["Destiny Bond"], ["Trick"]] - }, - { - "species": "Haunter", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Sludge Bomb"], ["Taunt"], ["Destiny Bond", "Will-O-Wisp"]] - }, - { - "species": "Haunter", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Shadow Ball"], ["Sludge Bomb"], ["Substitute"], ["Pain Split"]] - } - ] - }, - "prinplup": { - "flags": {}, - "sets": [ - { - "species": "Prinplup", - "item": "Eviolite", - "ability": "Torrent", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Defog"], ["Scald"], ["Stealth Rock"], ["Toxic"]] - } - ] - }, - "tangela": { - "flags": {}, - "sets": [ - { - "species": "Tangela", - "item": "Eviolite", - "ability": "Regenerator", - "evs": {"hp": 236, "atk": 0, "def": 48, "spa": 224, "spd": 0, "spe": 0}, - "nature": "Modest", - "moves": [["Leaf Storm"], ["Giga Drain", "Ancient Power"], ["Sleep Powder"], ["Hidden Power Fire"]] - }, - { - "species": "Tangela", - "item": "Eviolite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 4, "spd": 0, "spe": 0}, - "nature": "Bold", - "moves": [["Giga Drain"], ["Hidden Power Fire"], ["Sleep Powder"], ["Leech Seed"]] - } - ] - }, - "pelipper": { - "flags": {}, - "sets": [ - { - "species": "Pelipper", - "item": "Leftovers", - "ability": "Keen Eye", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 4, "spd": 0, "spe": 0}, - "nature": "Bold", - "moves": [["Defog"], ["Scald"], ["Roost"], ["U-turn", "Hurricane"]] - } - ] - }, - "piloswine": { - "flags": {}, - "sets": [ - { - "species": "Piloswine", - "item": "Eviolite", - "ability": "Thick Fat", - "evs": {"hp": 252, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Earthquake"], ["Stealth Rock"], ["Icicle Crash"], ["Ice Shard"]] - } - ] - }, - "poliwrath": { - "flags": {}, - "sets": [ - { - "species": "Poliwrath", - "item": "Choice Specs", - "ability": "Water Absorb", - "evs": {"hp": 96, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 160}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Focus Blast"], ["Ice Beam"], ["Vacuum Wave"]] - }, - { - "species": "Poliwrath", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 96, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 160}, - "nature": "Modest", - "moves": [["Scald"], ["Focus Blast"], ["Ice Beam"], ["Vacuum Wave"]] - } - ] - }, - "shiftry": { - "flags": {}, - "sets": [ - { - "species": "Shiftry", - "item": "Life Orb", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Lonely", - "moves": [["Knock Off"], ["Leaf Storm"], ["Sucker Punch"], ["Explosion"]] - }, - { - "species": "Shiftry", - "item": "Life Orb", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Lonely", - "moves": [["Knock Off"], ["Leaf Storm"], ["Sucker Punch"], ["Defog"]] - }, - { - "species": "Shiftry", - "item": "Black Glasses", - "ability": "Chlorophyll", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Knock Off"], ["Seed Bomb"], ["Sucker Punch"]] - } - ] - }, - "charizard": { - "flags": {}, - "sets": [ - { - "species": "Charizard", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Air Slash"], ["Focus Blast"], ["Roost"]] - }, - { - "species": "Charizard", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Fire Blast"], ["Air Slash"], ["Hidden Power Grass"], ["Roost"]] - }, - { - "species": "Charizard", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Fire Blast"], ["Air Slash"], ["Earthquake"], ["Roost"]] - }, - { - "species": "Charizard", - "ability": "Blaze", - "evs": {"hp": 248, "atk": 8, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Acrobatics"], ["Roost"], ["Will-O-Wisp"]] - } - ] - }, - "floatzel": { - "flags": {}, - "sets": [ - { - "species": "Floatzel", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Focus Blast"], ["Taunt"]] - } - ] - }, - "abomasnow": { - "flags": {}, - "sets": [ - { - "species": "Abomasnow", - "item": "Life Orb", - "ability": "Snow Warning", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Blizzard"], ["Giga Drain"], ["Earthquake"], ["Ice Shard"]] - }, - { - "species": "Abomasnow", - "item": "Life Orb", - "ability": "Snow Warning", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Ice Shard"], ["Seed Bomb"], ["Earthquake"]] - } - ] - }, - "hitmonchan": { - "flags": {}, - "sets": [ - { - "species": "Hitmonchan", - "item": "Life Orb", - "ability": "Iron Fist", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Drain Punch", "Close Combat"], ["Mach Punch"], ["Ice Punch", "Stone Edge"], ["Rapid Spin"]] - } - ] - }, - "skuntank": { - "flags": {}, - "sets": [ - { - "species": "Skuntank", - "item": "Lum Berry", - "ability": "Aftermath", - "evs": {"hp": 0, "atk": 232, "def": 0, "spa": 0, "spd": 132, "spe": 144}, - "nature": "Adamant", - "moves": [["Sucker Punch"], ["Pursuit"], ["Poison Jab"], ["Taunt"]] - }, - { - "species": "Skuntank", - "item": "Expert Belt", - "ability": "Aftermath", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Dark Pulse"], ["Fire Blast"], ["Hidden Power Grass"], ["Defog"]] - } - ] - }, - "omastar": { - "flags": {}, - "sets": [ - { - "species": "Omastar", - "item": "White Herb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Shell Smash"], ["Hydro Pump"], ["Ice Beam"], ["Hidden Power Electric"]] - }, - { - "species": "Omastar", - "item": "Leftovers", - "ability": "Shell Armor", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Spikes"], ["Stealth Rock"], ["Scald"], ["Icy Wind"]] - }, - { - "species": "Omastar", - "item": "Leftovers", - "ability": "Shell Armor", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Spikes"], ["Stealth Rock"], ["Scald"], ["Hidden Power Electric"]] - }, - { - "species": "Omastar", - "item": "Focus Sash", - "ability": "Weak Armor", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Stealth Rock"], ["Spikes"], ["Scald"], ["Ice Beam"]] - } - ] - }, - "pinsir": { - "flags": {}, - "sets": [ - { - "species": "Pinsir", - "item": "Life Orb", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["X-Scissor"], ["Earthquake"], ["Stone Edge"]] - }, - { - "species": "Pinsir", - "item": "Choice Band", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["X-Scissor"], ["Earthquake"], ["Stone Edge"], ["Close Combat"]] - }, - { - "species": "Pinsir", - "item": "Focus Sash", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["X-Scissor"], ["Rock Tomb"], ["Earthquake"]] - } - ] - }, - "grumpig": { - "flags": {}, - "sets": [ - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Calm Mind"], ["Psyshock"], ["Focus Blast"], ["Signal Beam"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 160, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic", "Psyshock"], ["Focus Blast"], ["Taunt"], ["Thunder Wave", "Toxic"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Psychic"], ["Heal Bell"], ["Thunder Wave"], ["Whirlwind"]] - } - ] - }, - "sliggoo": { - "flags": {}, - "sets": [ - { - "species": "Sliggoo", - "item": "Eviolite", - "ability": "Sap Sipper", - "evs": {"hp": 252, "atk": 0, "def": 168, "spa": 0, "spd": 88, "spe": 0}, - "nature": "Careful", - "moves": [["Curse"], ["Outrage"], ["Rest"], ["Sleep Talk"]] - }, - { - "species": "Sliggoo", - "item": "Eviolite", - "ability": "Sap Sipper", - "evs": {"hp": 92, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 164}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Sludge Bomb"], ["Muddy Water"], ["Thunderbolt"]] - } - ] - }, - "camerupt": { - "flags": {}, - "sets": [ - { - "species": "Camerupt", - "item": "Leftovers", - "ability": "Solid Rock", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 4, "spd": 252, "spe": 0}, - "nature": "Sassy", - "moves": [["Stealth Rock"], ["Lava Plume"], ["Earthquake"], ["Toxic"]] - }, - { - "species": "Camerupt", - "item": "Choice Specs", - "ability": "Solid Rock", - "evs": {"hp": 140, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 116}, - "nature": "Modest", - "moves": [["Fire Blast"], ["Earth Power"], ["Lava Plume"], ["Hidden Power Electric"]] - } - ] - }, - "ninetales": { - "flags": {}, - "sets": [ - { - "species": "Ninetales", - "item": "Life Orb", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Fire Blast"], ["Psyshock"], ["Energy Ball"]] - } - ] - }, - "manectric": { - "flags": {}, - "sets": [ - { - "species": "Manectric", - "item": "Life Orb", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Hidden Power Grass"], ["Overheat"]] - } - ] - }, - "roselia": { - "flags": {}, - "sets": [ - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Spikes"], ["Giga Drain"], ["Synthesis"], ["Sludge Bomb"]] - }, - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 80, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 176}, - "nature": "Modest", - "moves": [["Spikes"], ["Leaf Storm"], ["Sludge Bomb"], ["Sleep Powder"]] - } - ] - }, - "misdreavus": { - "flags": {}, - "sets": [ - { - "species": "Misdreavus", - "item": "Eviolite", - "ability": "Levitate", - "evs": {"hp": 252, "atk": 0, "def": 240, "spa": 0, "spd": 0, "spe": 16}, - "nature": "Bold", - "moves": [["Hex"], ["Will-O-Wisp"], ["Taunt"], ["Pain Split"]] - } - ] - }, - "clefairy": { - "flags": {}, - "sets": [ - { - "species": "Clefairy", - "item": "Eviolite", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Moonblast"], ["Soft-Boiled"], ["Thunder Wave"], ["Healing Wish"]] - }, - { - "species": "Clefairy", - "item": "Eviolite", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Moonblast"], ["Soft-Boiled"], ["Thunder Wave"], ["Stealth Rock"]] - } - ] - } - }, - "PU": { - "prinplup": { - "flags": {}, - "sets": [ - { - "species": "Prinplup", - "item": "Eviolite", - "ability": "Torrent", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Scald"], ["Toxic"], ["Defog"]] - } - ] - }, - "ampharos": { - "flags": {}, - "sets": [ - { - "species": "Ampharos", - "item": "Life Orb", - "ability": "Static", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Agility"], ["Thunderbolt"], ["Focus Blast"], ["Hidden Power Ice"]] - } - ] - }, - "cryogonal": { - "flags": {}, - "sets": [ - { - "species": "Cryogonal", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Freeze-Dry"], ["Hidden Power Fighting"], ["Recover"], ["Rapid Spin"]] - }, - { - "species": "Cryogonal", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 156, "spa": 0, "spd": 104, "spe": 0}, - "nature": "Calm", - "moves": [["Freeze-Dry"], ["Rapid Spin"], ["Recover"], ["Hidden Power Fighting"]] - } - ] - }, - "glalie": { - "flags": {}, - "sets": [ - { - "species": "Glalie", - "item": "Focus Sash", - "ability": "Inner Focus", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Spikes"], ["Taunt"], ["Ice Beam", "Freeze-Dry"], ["Explosion"]] - } - ] - }, - "camerupt": { - "flags": {}, - "sets": [ - { - "species": "Camerupt", - "item": "Leftovers", - "ability": "Solid Rock", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 4, "spd": 252, "spe": 0}, - "nature": "Timid", - "moves": [["Stealth Rock"], ["Lava Plume", "Fire Blast"], ["Earth Power"], ["Roar", "Toxic"]] - } - ] - }, - "altaria": { - "flags": {}, - "sets": [ - { - "species": "Altaria", - "item": "Leftovers", - "ability": "Natural Cure", - "evs": {"hp": 116, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 140}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Dragon Claw"], ["Substitute", "Earthquake"], ["Roost"]] - }, - { - "species": "Altaria", - "item": "Life Orb", - "ability": "Natural Cure", - "evs": {"hp": 116, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 140}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Roost"], ["Fire Blast"], ["Toxic"]] - }, - { - "species": "Altaria", - "item": "Life Orb", - "ability": "Natural Cure", - "evs": {"hp": 116, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 140}, - "nature": "Modest", - "moves": [["Draco Meteor"], ["Roost"], ["Fire Blast"], ["Hidden Power Fighting"]] - } - ] - }, - "audino": { - "flags": {}, - "sets": [ - { - "species": "Audino", - "item": "Leftovers", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Knock Off"], ["Wish"], ["Protect"], ["Encore", "Toxic", "Double-Edge", "Thunder Wave"]] - } - ] - }, - "bouffalant": { - "flags": {}, - "sets": [ - { - "species": "Bouffalant", - "item": "Leftovers", - "ability": "Sap Sipper", - "evs": {"hp": 252, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Adamant", - "moves": [["Substitute"], ["Swords Dance"], ["Return"], ["Earthquake"]], - "happiness": 255 - }, - { - "species": "Bouffalant", - "item": "Assault Vest", - "ability": "Sap Sipper", - "evs": {"hp": 252, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Adamant", - "moves": [["Return"], ["Earthquake"], ["Megahorn"], ["Pursuit", "Head Charge"]], - "happiness": 255 - }, - { - "species": "Bouffalant", - "item": "Choice Band", - "ability": "Sap Sipper", - "evs": {"hp": 252, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Adamant", - "moves": [["Head Charge"], ["Earthquake"], ["Megahorn"], ["Pursuit"]] - } - ] - }, - "gorebyss": { - "flags": {}, - "sets": [ - { - "species": "Gorebyss", - "item": "White Herb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Shell Smash"], ["Hydro Pump"], ["Ice Beam"], ["Hidden Power Electric"]] - } - ] - }, - "pawniard": { - "flags": {}, - "sets": [ - { - "species": "Pawniard", - "item": "Eviolite", - "ability": "Defiant", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Knock Off"], ["Iron Head"], ["Sucker Punch"], ["Swords Dance"]] - } - ] - }, - "gothitelle": { - "flags": {}, - "sets": [ - { - "species": "Gothitelle", - "item": "Leftovers", - "ability": "Competitive", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Mean Look"], ["Rest"], ["Psychic"]] - } - ] - }, - "roselia": { - "flags": {}, - "sets": [ - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 252, "atk": 0, "def": 128, "spa": 0, "spd": 128, "spe": 0}, - "nature": "Calm", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Synthesis"], ["Spikes"]] - }, - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 252, "atk": 0, "def": 128, "spa": 0, "spd": 128, "spe": 0}, - "nature": "Calm", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Synthesis"], ["Toxic Spikes"]] - }, - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 36, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 220}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Hidden Power Fighting"], ["Sleep Powder"]] - }, - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 36, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 220}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Hidden Power Fighting"], ["Spikes"]] - }, - { - "species": "Roselia", - "item": "Eviolite", - "ability": "Natural Cure", - "evs": {"hp": 36, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 220}, - "nature": "Modest", - "moves": [["Giga Drain"], ["Sludge Bomb"], ["Hidden Power Fighting"], ["Toxic Spikes"]] - } - ] - }, - "floatzel": { - "flags": {}, - "sets": [ - { - "species": "Floatzel", - "item": "Choice Specs", - "ability": "Water Veil", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Hidden Power Electric"], ["Surf", "Switcheroo"]] - }, - { - "species": "Floatzel", - "item": "Choice Band", - "ability": "Water Veil", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Waterfall"], ["Ice Punch"], ["Return"], ["Aqua Jet"]], - "happiness": 255 - }, - { - "species": "Floatzel", - "item": "Life Orb", - "ability": "Water Veil", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Ice Punch"], ["Hidden Power Electric"]] - }, - { - "species": "Floatzel", - "item": "Choice Scarf", - "ability": "Water Veil", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Hidden Power Electric"], ["Surf", "Switcheroo"]] - } - ] - }, - "stoutland": { - "flags": {}, - "sets": [ - { - "species": "Stoutland", - "item": "Choice Band", - "ability": "Scrappy", - "evs": {"hp": 4, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Return"], ["Superpower"], ["Facade"], ["Pursuit", "Crunch"]], - "happiness": 255 - } - ] - }, - "dodrio": { - "flags": {}, - "sets": [ - { - "species": "Dodrio", - "item": "Choice Band", - "ability": "Early Bird", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Return"], ["Knock Off"], ["Quick Attack", "Pursuit"]], - "happiness": 255 - }, - { - "species": "Dodrio", - "item": "Choice Scarf", - "ability": "Early Bird", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Return"], ["Knock Off"], ["Pursuit"]], - "happiness": 255 - } - ] - }, - "zebstrika": { - "flags": {}, - "sets": [ - { - "species": "Zebstrika", - "item": "Life Orb", - "ability": "Sap Sipper", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Overheat"], ["Hidden Power Ice"]] - }, - { - "species": "Zebstrika", - "item": "Life Orb", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Volt Switch"], ["Thunderbolt"], ["Overheat"], ["Hidden Power Ice"]] - } - ] - }, - "jumpluff": { - "flags": {}, - "sets": [ - { - "species": "Jumpluff", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Acrobatics"], ["Sleep Powder"], ["U-turn", "Seed Bomb"], ["Memento"]] - }, - { - "species": "Jumpluff", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Acrobatics"], ["Sleep Powder"], ["Seed Bomb"], ["Swords Dance"]] - } - ] - }, - "grumpig": { - "flags": {}, - "sets": [ - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Taunt"], ["Toxic"]] - }, - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Taunt"], ["Shadow Ball"]] - }, - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Taunt"], ["Thunder Wave"]] - }, - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Thunder Wave"], ["Toxic"]] - }, - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Thunder Wave"], ["Shadow Ball"]] - }, - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Shadow Ball"], ["Toxic"]] - }, - { - "species": "Grumpig", - "item": "Colbur Berry", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Shadow Ball"], ["Thunder Wave"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Taunt"], ["Toxic"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Taunt"], ["Shadow Ball"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Taunt"], ["Thunder Wave"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Thunder Wave"], ["Toxic"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Thunder Wave"], ["Shadow Ball"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Shadow Ball"], ["Toxic"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Shadow Ball"], ["Thunder Wave"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 160, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 96}, - "nature": "Modest", - "moves": [["Psychic"], ["Focus Blast"], ["Calm Mind"], ["Shadow Ball", "Taunt"]] - }, - { - "species": "Grumpig", - "item": "Leftovers", - "ability": "Thick Fat", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 4, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Psychic"], ["Thunder Wave", "Toxic"], ["Focus Blast", "Whirlwind"], ["Protect"]] - } - ] - }, - "stunfisk": { - "flags": {}, - "sets": [ - { - "species": "Stunfisk", - "item": "Leftovers", - "ability": "Static", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Discharge"], ["Earth Power"], ["Protect"]] - }, - { - "species": "Stunfisk", - "item": "Leftovers", - "ability": "Static", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Discharge"], ["Earth Power"], ["Hidden Power Bug"]] - }, - { - "species": "Stunfisk", - "item": "Passho Berry", - "ability": "Static", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Discharge"], ["Earth Power"], ["Toxic"]] - }, - { - "species": "Stunfisk", - "item": "Passho Berry", - "ability": "Static", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Discharge"], ["Earth Power"], ["Hidden Power Bug"]] - }, - { - "species": "Stunfisk", - "item": "Leftovers", - "ability": "Static", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Discharge"], ["Earth Power"], ["Protect"]] - }, - { - "species": "Stunfisk", - "item": "Leftovers", - "ability": "Static", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Bold", - "moves": [["Stealth Rock"], ["Discharge"], ["Earth Power"], ["Hidden Power Bug"]] - } - ] - }, - "rapidash": { - "flags": {}, - "sets": [ - { - "species": "Rapidash", - "item": "Leftovers", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Wild Charge"], ["Will-O-Wisp"], ["Morning Sun"]] - }, - { - "species": "Rapidash", - "item": "Charcoal", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Flare Blitz"], ["Wild Charge"], ["Will-O-Wisp"], ["Morning Sun"]] - } - ] - }, - "tangela": { - "flags": {}, - "sets": [ - { - "species": "Tangela", - "item": "Eviolite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Bold", - "moves": [["Giga Drain"], ["Synthesis"], ["Hidden Power Fire"], ["Sleep Powder", "Knock Off"]] - }, - { - "species": "Tangela", - "item": "Eviolite", - "ability": "Regenerator", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 0}, - "nature": "Modest", - "moves": [["Leaf Storm"], ["Giga Drain"], ["Hidden Power Fire"], ["Sleep Powder"]] - } - ] - }, - "simipour": { - "flags": {}, - "sets": [ - { - "species": "Simipour", - "item": "Life Orb", - "ability": "Torrent", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Grass Knot"], ["Knock Off", "Low Kick", "Nasty Plot"]] - }, - { - "species": "Simipour", - "item": "Life Orb", - "ability": "Torrent", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Hidden Power Electric"], ["Knock Off", "Low Kick", "Nasty Plot"]] - }, - { - "species": "Simipour", - "item": "Choice Scarf", - "ability": "Torrent", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Hasty", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Grass Knot"], ["Superpower", "Knock Off"]] - }, - { - "species": "Simipour", - "item": "Salac Berry", - "ability": "Torrent", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Hydro Pump"], ["Ice Beam"], ["Substitute"], ["Nasty Plot"]] - } - ] - }, - "kadabra": { - "flags": {}, - "sets": [ - { - "species": "Kadabra", - "item": "Focus Sash", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Shadow Ball", "Signal Beam"], ["Thunder Wave"], ["Encore"]] - }, - { - "species": "Kadabra", - "item": "Focus Sash", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Hidden Power Fighting"], ["Thunder Wave"], ["Encore"]] - }, - { - "species": "Kadabra", - "item": "Focus Sash", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Shadow Ball"], ["Thunder Wave"], ["Encore"]] - }, - { - "species": "Kadabra", - "item": "Life Orb", - "ability": "Magic Guard", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Psychic"], ["Hidden Power Fighting"], ["Shadow Ball"], ["Substitute", "Encore"]] - } - ] - }, - "raichu": { - "flags": {}, - "sets": [ - { - "species": "Raichu", - "item": "Life Orb", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Thunderbolt"], ["Hidden Power Ice"], ["Focus Blast"]] - }, - { - "species": "Raichu", - "item": "Life Orb", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 30, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Focus Blast"], ["Signal Beam"]] - }, - { - "species": "Raichu", - "item": "Life Orb", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Focus Blast"], ["Hidden Power Ice"]] - }, - { - "species": "Raichu", - "item": "Life Orb", - "ability": "Static", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Signal Beam", "Focus Blast"], ["Surf"]] - }, - { - "species": "Raichu", - "item": "Choice Scarf", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 30, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Signal Beam"], ["Focus Blast"]] - }, - { - "species": "Raichu", - "item": "Choice Scarf", - "ability": "Lightning Rod", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Hidden Power Ice"], ["Focus Blast"]] - } - ] - }, - "regice": { - "flags": {}, - "sets": [ - { - "species": "Regice", - "item": "Life Orb", - "ability": "Clear Body", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Ice Beam"], ["Focus Blast"], ["Thunderbolt"], ["Rock Polish"]] - }, - { - "species": "Regice", - "item": "Leftovers", - "ability": "Clear Body", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 8, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Thunder Wave"], ["Ice Beam"], ["Thunderbolt"], ["Focus Blast"]] - } - ] - }, - "relicanth": { - "flags": {}, - "sets": [ - { - "species": "Relicanth", - "item": "Stone Plate", - "ability": "Rock Head", - "evs": {"hp": 104, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 148}, - "nature": "Adamant", - "moves": [["Rock Polish"], ["Head Smash"], ["Waterfall"], ["Earthquake"]] - }, - { - "species": "Relicanth", - "item": "Leftovers", - "ability": "Rock Head", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Head Smash"], ["Stealth Rock"], ["Earthquake", "Waterfall"], ["Toxic", "Yawn"]] - }, - { - "species": "Relicanth", - "item": "Leftovers", - "ability": "Rock Head", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Head Smash"], ["Stealth Rock"], ["Earthquake", "Waterfall"], ["Protect"]] - }, - { - "species": "Relicanth", - "item": "Leftovers", - "ability": "Rock Head", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Head Smash"], ["Stealth Rock"], ["Protect"], ["Toxic", "Yawn"]] - }, - { - "species": "Relicanth", - "item": "Stone Plate", - "ability": "Rock Head", - "evs": {"hp": 168, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 88}, - "nature": "Adamant", - "moves": [["Head Smash"], ["Stealth Rock"], ["Waterfall"], ["Toxic", "Earthquake"]] - }, - { - "species": "Relicanth", - "item": "Leftovers", - "ability": "Rock Head", - "evs": {"hp": 168, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 88}, - "nature": "Adamant", - "moves": [["Head Smash"], ["Stealth Rock"], ["Waterfall"], ["Toxic", "Earthquake"]] - } - ] - }, - "rotomfrost": { - "flags": {}, - "sets": [ - { - "species": "Rotom-Frost", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Blizzard"], ["Trick", "Will-O-Wisp"]] - }, - { - "species": "Rotom-Frost", - "item": "Choice Scarf", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Blizzard"], ["Hidden Power Ice"]] - }, - { - "species": "Rotom-Frost", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Thunderbolt"], ["Blizzard"], ["Will-O-Wisp", "Volt Switch"]] - }, - { - "species": "Rotom-Frost", - "item": "Life Orb", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Thunderbolt"], ["Blizzard"], ["Pain Split", "Will-O-Wisp"]] - } - ] - }, - "simisage": { - "flags": {}, - "sets": [ - { - "species": "Simisage", - "item": "Life Orb", - "ability": "Overgrow", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "ivs": {"hp": 29, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Naive", - "moves": [["Leaf Storm"], ["Superpower"], ["Gunk Shot"], ["Knock Off"]] - } - ] - }, - "chatot": { - "flags": {}, - "sets": [ - { - "species": "Chatot", - "item": "Choice Scarf", - "ability": "Keen Eye", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Boomburst"], ["Heat Wave"], ["Hidden Power Fighting"], ["U-turn"]] - }, - { - "species": "Chatot", - "item": "Choice Scarf", - "ability": "Keen Eye", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Timid", - "moves": [["Boomburst"], ["Heat Wave"], ["Hidden Power Fighting"], ["U-turn"]] - }, - { - "species": "Chatot", - "item": "Choice Specs", - "ability": "Keen Eye", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Boomburst"], ["Heat Wave"], ["Hidden Power Fighting"], ["U-turn"]] - } - ] - }, - "mrmime": { - "flags": {}, - "sets": [ - { - "species": "Mr. Mime", - "item": "Choice Scarf", - "ability": "Soundproof", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Psychic"], ["Dazzling Gleam"], ["Focus Blast"], ["Healing Wish"]] - }, - { - "species": "Mr. Mime", - "item": "Choice Specs", - "ability": "Soundproof", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Psychic"], ["Dazzling Gleam"], ["Focus Blast"], ["Shadow Ball"]] - }, - { - "species": "Mr. Mime", - "item": "Life Orb", - "ability": "Soundproof", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Psychic"], ["Dazzling Gleam"], ["Focus Blast"], ["Shadow Ball", "Healing Wish"]] - } - ] - }, - "mightyena": { - "flags": {}, - "sets": [ - { - "species": "Mightyena", - "item": "Life Orb", - "ability": "Moxie", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "ivs": {"hp": 29, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Adamant", - "moves": [["Crunch"], ["Sucker Punch"], ["Play Rough"], ["Iron Tail"]] - } - ] - }, - "fraxure": { - "flags": {}, - "sets": [ - { - "species": "Fraxure", - "item": "Eviolite", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Dragon Dance"], ["Outrage"], ["Low Kick"], ["Dual Chop", "Taunt", "Poison Jab"]] - } - ] - }, - "misdreavus": { - "flags": {}, - "sets": [ - { - "species": "Misdreavus", - "item": "Eviolite", - "ability": "Levitate", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Nasty Plot"], ["Taunt", "Will-O-Wisp"], ["Shadow Ball"], ["Thunderbolt"]] - }, - { - "species": "Misdreavus", - "item": "Eviolite", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 124, "spa": 0, "spd": 0, "spe": 136}, - "nature": "Timid", - "moves": [["Will-O-Wisp"], ["Taunt"], ["Foul Play"], ["Pain Split", "Thunder Wave"]] - } - ] - }, - "probopass": { - "flags": {}, - "sets": [ - { - "species": "Probopass", - "item": "Leftovers", - "ability": "Magnet Pull", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 0}, - "nature": "Modest", - "moves": [["Stealth Rock"], ["Flash Cannon"], ["Volt Switch"], ["Earth Power", "Thunder Wave"]] - }, - { - "species": "Probopass", - "item": "Passho Berry", - "ability": "Sturdy", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 0}, - "nature": "Modest", - "moves": [["Stealth Rock"], ["Flash Cannon"], ["Volt Switch"], ["Earth Power", "Thunder Wave"]] - }, - { - "species": "Probopass", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Calm", - "moves": [["Stealth Rock"], ["Flash Cannon"], ["Volt Switch"], ["Earth Power", "Toxic", "Thunder Wave"]] - } - ] - }, - "sawsbuck": { - "flags": {}, - "sets": [ - { - "species": "Sawsbuck", - "item": "Choice Scarf", - "ability": "Sap Sipper", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Double-Edge"], ["Horn Leech"], ["Jump Kick"], ["Megahorn"]] - }, - { - "species": "Sawsbuck", - "item": "Choice Scarf", - "ability": "Sap Sipper", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Double-Edge"], ["Horn Leech"], ["Jump Kick"], ["Toxic"]] - }, - { - "species": "Sawsbuck", - "item": "Salac Berry", - "ability": "Sap Sipper", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Return"], ["Horn Leech"], ["Substitute"], ["Swords Dance"]], - "happiness": 255 - } - ] - }, - "arbok": { - "flags": {}, - "sets": [ - { - "species": "Arbok", - "item": "Black Sludge", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Coil"], ["Gunk Shot"], ["Sucker Punch"], ["Earthquake"]] - }, - { - "species": "Arbok", - "item": "Shuca Berry", - "ability": "Intimidate", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Coil"], ["Gunk Shot"], ["Sucker Punch"], ["Earthquake"]] - }, - { - "species": "Arbok", - "item": "Black Sludge", - "ability": "Shed Skin", - "evs": {"hp": 252, "atk": 0, "def": 0, "spa": 0, "spd": 236, "spe": 20}, - "nature": "Careful", - "moves": [["Coil"], ["Gunk Shot"], ["Rest"], ["Earthquake"]] - } - ] - }, - "duosion": { - "flags": {}, - "sets": [ - { - "species": "Duosion", - "item": "Eviolite", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 0, "spd": 4, "spe": 0}, - "nature": "Impish", - "moves": [["Calm Mind"], ["Recover"], ["Psyshock", "Psychic"], ["Acid Armor", "Signal Beam"]] - } - ] - }, - "ninetales": { - "flags": {}, - "sets": [ - { - "species": "Ninetales", - "item": "Leftovers", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Nasty Plot"], ["Fire Blast"], ["Energy Ball"]] - }, - { - "species": "Ninetales", - "item": "Passho Berry", - "ability": "Flash Fire", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Fire Blast"], ["Energy Ball"], ["Hidden Power Ground"]] - } - ] - }, - "articuno": { - "flags": {}, - "sets": [ - { - "species": "Articuno", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 36, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 220}, - "nature": "Modest", - "moves": [["Agility"], ["Ice Beam", "Freeze-Dry"], ["Hurricane"], ["Roost"]] - }, - { - "species": "Articuno", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 36, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 220}, - "nature": "Modest", - "moves": [["Agility"], ["Ice Beam", "Freeze-Dry"], ["Hurricane"], ["Hidden Power Fighting"]] - }, - { - "species": "Articuno", - "item": "Life Orb", - "ability": "Pressure", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Substitute"], ["Ice Beam", "Freeze-Dry"], ["Hurricane"], ["Roost"]] - } - ] - }, - "clefairy": { - "flags": {}, - "sets": [ - { - "species": "Clefairy", - "item": "Eviolite", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Soft-Boiled"], ["Moonblast"], ["Thunder Wave", "Knock Off", "Healing Wish"], ["Stealth Rock"]] - }, - { - "species": "Clefairy", - "item": "Eviolite", - "ability": "Magic Guard", - "evs": {"hp": 252, "atk": 0, "def": 252, "spa": 4, "spd": 0, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Bold", - "moves": [["Calm Mind"], ["Soft-Boiled"], ["Moonblast"], ["Thunder Wave", "Knock Off", "Encore"]] - } - ] - }, - "golduck": { - "flags": {}, - "sets": [ - { - "species": "Golduck", - "item": "Life Orb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Modest", - "moves": [["Hydro Pump"], ["Rain Dance"], ["Ice Beam"], ["Psyshock", "Focus Blast"]] - } - ] - }, - "golem": { - "flags": {}, - "sets": [ - { - "species": "Golem", - "item": "Custap Berry", - "ability": "Sturdy", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Earthquake"], ["Explosion"], ["Stealth Rock"], ["Stone Edge"]] - }, - { - "species": "Golem", - "item": "Weakness Policy", - "ability": "Sturdy", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Adamant", - "moves": [["Earthquake"], ["Sucker Punch"], ["Stealth Rock"], ["Stone Edge"]] - }, - { - "species": "Golem", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 56, "def": 0, "spa": 0, "spd": 204, "spe": 0}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Stone Edge"], ["Earthquake"], ["Protect"]] - } - ] - }, - "gourgeistsuper": { - "flags": {}, - "sets": [ - { - "species": "Gourgeist-Super", - "item": "Leftovers", - "ability": "Frisk", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Foul Play"], ["Will-O-Wisp"], ["Synthesis"], ["Seed Bomb"]] - } - ] - }, - "lickilicky": { - "flags": {}, - "sets": [ - { - "species": "Lickilicky", - "item": "Leftovers", - "ability": "Oblivious", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Wish"], ["Protect"], ["Body Slam", "Knock Off"], ["Dragon Tail", "Heal Bell"]] - } - ] - }, - "monferno": { - "flags": {}, - "sets": [ - { - "species": "Monferno", - "item": "Eviolite", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Mach Punch"], ["Flare Blitz"], ["Close Combat"]] - }, - { - "species": "Monferno", - "item": "Life Orb", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Swords Dance"], ["Mach Punch"], ["Flare Blitz"], ["Close Combat"]] - }, - { - "species": "Monferno", - "item": "Eviolite", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["U-turn", "Thunder Punch"], ["Mach Punch"], ["Flare Blitz"], ["Close Combat"]] - }, - { - "species": "Monferno", - "item": "Eviolite", - "ability": "Iron Fist", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["U-turn", "Thunder Punch"], ["Mach Punch"], ["Flare Blitz"], ["Stealth Rock"]] - } - ] - }, - "politoed": { - "flags": {}, - "sets": [ - { - "species": "Politoed", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 252, "spd": 8, "spe": 0}, - "nature": "Modest", - "moves": [["Scald"], ["Ice Beam"], ["Hidden Power Electric"], ["Encore", "Toxic"]] - }, - { - "species": "Politoed", - "item": "Leftovers", - "ability": "Water Absorb", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Calm", - "moves": [["Perish Song"], ["Scald"], ["Toxic"], ["Protect"]] - } - ] - }, - "seaking": { - "flags": {}, - "sets": [ - { - "species": "Seaking", - "item": "Leftovers", - "ability": "Lightning Rod", - "evs": {"hp": 104, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 152}, - "nature": "Adamant", - "moves": [["Waterfall"], ["Knock Off"], ["Megahorn"], ["Haze", "Protect"]] - } - ] - }, - "simisear": { - "flags": {}, - "sets": [ - { - "species": "Simisear", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "ivs": {"hp": 29, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Naive", - "moves": [["Knock Off"], ["Rock Slide"], ["Superpower", "Low Kick"], ["Overheat", "Fire Blast"]] - }, - { - "species": "Simisear", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "ivs": {"hp": 29, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Naive", - "moves": [["Fire Blast"], ["Grass Knot"], ["Low Kick"], ["Knock Off"]] - }, - { - "species": "Simisear", - "item": "Life Orb", - "ability": "Blaze", - "evs": {"hp": 0, "atk": 0, "def": 4, "spa": 252, "spd": 0, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Nasty Plot"], ["Focus Blast"], ["Grass Knot"], ["Fire Blast"]] - }, - { - "species": "Simisear", - "item": "Salac Berry", - "ability": "Blaze", - "evs": {"hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "ivs": {"hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Substitute"], ["Nasty Plot"], ["Focus Blast"], ["Fire Blast"]] - } - ] - }, - "swanna": { - "flags": {}, - "sets": [ - { - "species": "Swanna", - "item": "Life Orb", - "ability": "Keen Eye", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "ivs": {"hp": 29, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31}, - "nature": "Timid", - "moves": [["Defog"], ["Roost"], ["Scald"], ["Hurricane"]] - } - ] - }, - "vullaby": { - "flags": {}, - "sets": [ - { - "species": "Vullaby", - "item": "Eviolite", - "ability": "Overcoat", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Defog"], ["Roost"], ["U-turn", "Whirlwind"], ["Foul Play"]] - }, - { - "species": "Vullaby", - "item": "Eviolite", - "ability": "Overcoat", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Defog"], ["Roost"], ["U-turn", "Whirlwind"], ["Foul Play"]] - } - ] - }, - "basculin": { - "flags": {}, - "sets": [ - { - "species": "Basculin", - "item": "Choice Band", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Waterfall", "Aqua Tail"], ["Aqua Jet"], ["Crunch", "Zen Headbutt"], ["Double-Edge"]] - }, - { - "species": "Basculin", - "item": "Life Orb", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "ivs": {"hp": 29, "atk": 31, "def": 31, "spa": 30, "spd": 31, "spe": 31}, - "nature": "Naive", - "moves": [["Waterfall"], ["Aqua Jet"], ["Ice Beam"], ["Superpower"]] - }, - { - "species": "Basculin", - "item": "Life Orb", - "ability": "Adaptability", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Waterfall"], ["Aqua Jet"], ["Ice Beam"], ["Hidden Power Electric"]] - } - ] - }, - "gabite": { - "flags": {}, - "sets": [ - { - "species": "Gabite", - "item": "Eviolite", - "ability": "Rough Skin", - "evs": {"hp": 248, "atk": 8, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Toxic", "Roar"], ["Dragon Claw"], ["Earthquake"]] - }, - { - "species": "Gabite", - "item": "Eviolite", - "ability": "Rough Skin", - "evs": {"hp": 248, "atk": 220, "def": 0, "spa": 0, "spd": 0, "spe": 40}, - "nature": "Adamant", - "moves": [["Stealth Rock"], ["Toxic", "Roar"], ["Dragon Claw"], ["Earthquake"]] - }, - { - "species": "Gabite", - "item": "Eviolite", - "ability": "Rough Skin", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Earthquake"], ["Outrage"], ["Stealth Rock"], ["Stone Edge", "Toxic", "Roar"]] - } - ] - }, - "gourgeistsmall": { - "flags": {}, - "sets": [ - { - "species": "Gourgeist-Small", - "item": "Leftovers", - "ability": "Frisk", - "evs": {"hp": 152, "atk": 0, "def": 104, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Leech Seed"], ["Substitute"], ["Foul Play", "Seed Bomb"], ["Will-O-Wisp", "Disable"]] - }, - { - "species": "Gourgeist-Small", - "item": "Choice Scarf", - "ability": "Frisk", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Seed Bomb"], ["Trick"], ["Rock Slide"], ["Explosion", "Destiny Bond"]] - } - ] - }, - "klang": { - "flags": {}, - "sets": [ - { - "species": "Klang", - "item": "Eviolite", - "ability": "Clear Body", - "evs": {"hp": 252, "atk": 0, "def": 156, "spa": 0, "spd": 100, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Sleep Talk"], ["Shift Gear"], ["Gear Grind"]] - } - ] - }, - "leafeon": { - "flags": {}, - "sets": [ - { - "species": "Leafeon", - "item": "Choice Band", - "ability": "Leaf Guard", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Leaf Blade"], ["Bullet Seed"], ["Knock Off"], ["Double-Edge", "Quick Attack"]] - }, - { - "species": "Leafeon", - "item": "Yache Berry", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Leaf Blade"], ["Knock Off"], ["Synthesis", "Return"]] - }, - { - "species": "Leafeon", - "item": "Occa Berry", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Swords Dance"], ["Leaf Blade"], ["Knock Off"], ["Synthesis", "Return"]] - }, - { - "species": "Leafeon", - "item": "Choice Scarf", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Double-Edge", "Return"], ["Leaf Blade"], ["Knock Off"], ["Bullet Seed", "X-Scissor"]] - } - ] - }, - "leavanny": { - "flags": {}, - "sets": [ - { - "species": "Leavanny", - "item": "Focus Sash", - "ability": "Chlorophyll", - "evs": {"hp": 0, "atk": 4, "def": 0, "spa": 252, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Leaf Storm"], ["Electroweb", "Magic Coat"], ["Sticky Web"], ["Knock Off"]] - } - ] - }, - "metang": { - "flags": {}, - "sets": [ - { - "species": "Metang", - "item": "Eviolite", - "ability": "Clear Body", - "evs": {"hp": 248, "atk": 252, "def": 0, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Adamant", - "moves": [["Meteor Mash"], ["Stealth Rock"], ["Pursuit", "Bullet Punch"], ["Earthquake", "Zen Headbutt"]] - }, - { - "species": "Metang", - "item": "Eviolite", - "ability": "Clear Body", - "evs": {"hp": 248, "atk": 0, "def": 0, "spa": 0, "spd": 252, "spe": 8}, - "nature": "Careful", - "moves": [["Meteor Mash"], ["Stealth Rock"], ["Toxic"], ["Pursuit", "Bullet Punch", "Earthquake", "Zen Headbutt"]] - }, - { - "species": "Metang", - "item": "Eviolite", - "ability": "Clear Body", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 0, "spe": 8}, - "nature": "Impish", - "moves": [["Meteor Mash"], ["Stealth Rock"], ["Toxic"], ["Earthquake", "Zen Headbutt", "Pursuit", "Bullet Punch"]] - } - ] - }, - "ninjask": { - "flags": {}, - "sets": [ - { - "species": "Ninjask", - "item": "Choice Band", - "ability": "Infiltrator", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["U-turn"], ["X-Scissor"], ["Aerial Ace"], ["Toxic"]] - } - ] - }, - "purugly": { - "flags": {}, - "sets": [ - { - "species": "Purugly", - "item": "Life Orb", - "ability": "Defiant", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Return"], ["Fake Out"], ["Knock Off"], ["U-turn", "Sucker Punch", "Wake-Up Slap"]], - "happiness": 255 - } - ] - }, - "solrock": { - "flags": {}, - "sets": [ - { - "species": "Solrock", - "item": "Leftovers", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Will-O-Wisp"], ["Zen Headbutt", "Stone Edge"], ["Morning Sun"]] - }, - { - "species": "Solrock", - "item": "Colbur Berry", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Stealth Rock"], ["Will-O-Wisp"], ["Stone Edge"], ["Morning Sun"]] - } - ] - }, - "venipede": { - "flags": {}, - "sets": [ - { - "species": "Venipede", - "item": "Focus Sash", - "ability": "Speed Boost", - "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Timid", - "moves": [["Protect"], ["Spikes"], ["Toxic Spikes"], ["Endeavor"]] - } - ] - }, - "armaldo": { - "flags": {}, - "sets": [ - { - "species": "Armaldo", - "item": "Leftovers", - "ability": "Battle Armor", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Rapid Spin"], ["Knock Off"], ["Stone Edge"], ["Toxic"]] - }, - { - "species": "Armaldo", - "item": "Leftovers", - "ability": "Battle Armor", - "evs": {"hp": 248, "atk": 0, "def": 252, "spa": 0, "spd": 8, "spe": 0}, - "nature": "Impish", - "moves": [["Rapid Spin"], ["Knock Off"], ["Stone Edge"], ["Stealth Rock"]] - }, - { - "species": "Armaldo", - "item": "Leftovers", - "ability": "Battle Armor", - "evs": {"hp": 248, "atk": 252, "def": 8, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Stone Edge"], ["Knock Off"], ["Rapid Spin"], ["Earthquake"]] - } - ] - }, - "dusknoir": { - "flags": {}, - "sets": [ - { - "species": "Dusknoir", - "item": "Choice Band", - "ability": "Frisk", - "evs": {"hp": 252, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Shadow Sneak"], ["Thunder Punch"], ["Earthquake"], ["Trick"]] - }, - { - "species": "Dusknoir", - "item": "Spell Tag", - "ability": "Frisk", - "evs": {"hp": 252, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Adamant", - "moves": [["Shadow Sneak"], ["Thunder Punch"], ["Earthquake"], ["Will-O-Wisp"]] - } - ] - }, - "huntail": { - "flags": {}, - "sets": [ - { - "species": "Huntail", - "item": "White Herb", - "ability": "Water Veil", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naughty", - "moves": [["Shell Smash"], ["Sucker Punch"], ["Waterfall"], ["Ice Beam"]] - }, - { - "species": "Huntail", - "item": "White Herb", - "ability": "Swift Swim", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Shell Smash"], ["Sucker Punch"], ["Waterfall"], ["Double-Edge"]] - } - ] - }, - "murkrow": { - "flags": {}, - "sets": [ - { - "species": "Murkrow", - "item": "Life Orb", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Jolly", - "moves": [["Brave Bird"], ["Sucker Punch"], ["Pursuit"], ["Thunder Wave"]] - }, - { - "species": "Murkrow", - "item": "Life Orb", - "ability": "Prankster", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Brave Bird"], ["Sucker Punch"], ["Hidden Power Fighting"], ["Thunder Wave", "Pursuit"]] - } - ] - }, - "vibrava": { - "flags": {}, - "sets": [ - { - "species": "Vibrava", - "item": "Eviolite", - "ability": "Levitate", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Earthquake"], ["U-turn", "Toxic"], ["Defog"], ["Roost"]] - } - ] - }, - "zweilous": { - "flags": {}, - "sets": [ - { - "species": "Zweilous", - "item": "Eviolite", - "ability": "Hustle", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Rest"], ["Sleep Talk"], ["Crunch"], ["Dragon Tail", "Roar"]] - }, - { - "species": "Zweilous", - "item": "Choice Band", - "ability": "Hustle", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Crunch"], ["Outrage"], ["Superpower"], ["Sleep Talk"]] - } - ] - }, - "avalugg": { - "flags": {}, - "sets": [ - { - "species": "Avalugg", - "item": "Leftovers", - "ability": "Sturdy", - "evs": {"hp": 248, "atk": 0, "def": 8, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Careful", - "moves": [["Recover"], ["Rapid Spin"], ["Avalanche"], ["Roar", "Toxic"]] - } - ] - }, - "electrode": { - "flags": {}, - "sets": [ - { - "species": "Electrode", - "item": "Life Orb", - "ability": "Soundproof", - "evs": {"hp": 0, "atk": 0, "def": 0, "spa": 252, "spd": 4, "spe": 252}, - "nature": "Modest", - "moves": [["Thunderbolt"], ["Volt Switch"], ["Signal Beam"], ["Hidden Power Ice"]] - } - ] - }, - "marowak": { - "flags": {}, - "sets": [ - { - "species": "Marowak", - "item": "Thick Club", - "ability": "Rock Head", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Bonemerang"], ["Knock Off"], ["Double-Edge"], ["Stealth Rock"]] - }, - { - "species": "Marowak", - "item": "Thick Club", - "ability": "Rock Head", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Bonemerang"], ["Knock Off"], ["Double-Edge"], ["Stone Edge"]] - }, - { - "species": "Marowak", - "item": "Thick Club", - "ability": "Rock Head", - "evs": {"hp": 0, "atk": 252, "def": 4, "spa": 0, "spd": 0, "spe": 252}, - "nature": "Adamant", - "moves": [["Bonemerang"], ["Knock Off"], ["Stone Edge"], ["Stealth Rock"]] - } - ] - }, - "quilladin": { - "flags": {}, - "sets": [ - { - "species": "Quilladin", - "item": "Eviolite", - "ability": "Bulletproof", - "evs": {"hp": 252, "atk": 4, "def": 252, "spa": 0, "spd": 0, "spe": 0}, - "nature": "Impish", - "moves": [["Wood Hammer"], ["Spikes"], ["Synthesis"], ["Roar"]] - }, - { - "species": "Quilladin", - "item": "Eviolite", - "ability": "Bulletproof", - "evs": {"hp": 0, "atk": 252, "def": 0, "spa": 0, "spd": 4, "spe": 252}, - "nature": "Jolly", - "moves": [["Wood Hammer"], ["Taunt"], ["Spikes"], ["Zen Headbutt", "Drain Punch"]] - } - ] - }, - "rampardos": { - "flags": {}, - "sets": [ - { - "species": "Rampardos", - "item": "Focus Sash", - "ability": "Mold Breaker", - "evs": {"hp": 0, "atk": 144, "def": 0, "spa": 112, "spd": 0, "spe": 252}, - "nature": "Naive", - "moves": [["Stealth Rock"], ["Superpower"], ["Head Smash"], ["Surf"]] - } - ] - }, - "drifblim": { - "flags": {}, - "sets": [ - { - "species": "Drifblim", - "item": "Liechi Berry", - "ability": "Unburden", - "evs": {"hp": 12, "atk": 244, "def": 0, "spa": 0, "spd": 40, "spe": 212}, - "nature": "Adamant", - "moves": [["Substitute"], ["Acrobatics"], ["Knock Off"], ["Will-O-Wisp"]] - } - ] - } - } -} diff --git a/data/random-battles/gen6megasrevisited/sets.json b/data/random-battles/gen6megasrevisited/sets.json deleted file mode 100644 index 10fb1f136a..0000000000 --- a/data/random-battles/gen6megasrevisited/sets.json +++ /dev/null @@ -1,6301 +0,0 @@ -{ - "venusaur": { - "level": 83, - "sets": [ - { - "role": "Staller", - "movepool": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], - "abilities": ["Chlorophyll", "Overgrow"] - }, - { - "role": "Bulky Setup", - "movepool": ["calmmind", "gigadrain", "sleeppowder", "sludgebomb", "synthesis"], - "abilities": ["Chlorophyll", "Overgrow"] - } - ] - }, - "venusaurmega": { - "level": 77, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["hiddenpowerground", "leafstorm", "sludgebomb", "synthesis"], - "abilities": ["Chlorophyll"] - }, - { - "role": "Bulky Support", - "movepool": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], - "abilities": ["Chlorophyll"] - }, - { - "role": "Bulky Setup", - "movepool": ["calmmind", "gigadrain", "leechseed", "sludgebomb"], - "abilities": ["Chlorophyll"] - } - ] - }, - "charizard": { - "level": 83, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["hurricane", "earthquake", "fireblast", "roost", "willowisp"], - "abilities": ["Blaze", "Solar Power"] - }, - { - "role": "Bulky Setup", - "movepool": ["calmmind", "hurricane", "fireblast", "roost"], - "abilities": ["Blaze", "Solar Power"] - }, - { - "role": "Setup Sweeper", - "movepool": ["acrobatics", "earthquake", "flareblitz", "swordsdance"], - "abilities": ["Blaze"] - } - ] - }, - "charizardmegax": { - "level": 74, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["dragonclaw", "dragondance", "earthquake", "flareblitz", "roost"], - "abilities": ["Blaze"] - } - ] - }, - "charizardmegay": { - "level": 74, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["hurricane", "fireblast", "roost", "focusblast"], - "abilities": ["Blaze"] - }, - { - "role": "Bulky Setup", - "movepool": ["calmmind", "hurricane", "lavaplume", "roost"], - "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": 81, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["moonblast", "rapidspin", "scald", "taunt"], - "abilities": ["Rain Dish"] - }, - { - "role": "Bulky Attacker", - "movepool": ["moonblast", "rapidspin", "hydropump", "hiddenpowerfire"], - "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", "stealthrock"], - "abilities": ["Swarm"] - }, - { - "role": "Setup Sweeper", - "movepool": ["poisonjab", "earthquake", "diamondstorm", "swordsdance"], - "abilities": ["Swarm"] - } - ] - }, - "beedrillmega": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["diamondstorm", "earthquake", "roost", "uturn"], - "abilities": ["Swarm"] - }, - { - "role": "Bulky Support", - "movepool": ["diamondstorm", "earthquake", "roost", "uturn", "defog", "stealthrock"], - "abilities": ["Swarm"] - }, - { - "role": "Bulky Setup", - "movepool": ["diamondstorm", "earthquake", "roost", "swordsdance"], - "abilities": ["Swarm"] - } - ] - }, - "pidgeot": { - "level": 88, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["bravebird", "defog", "heatwave", "return", "roost", "uturn"], - "abilities": ["Big Pecks"] - }, - { - "role": "Fast Attacker", - "movepool": ["bravebird", "focusblast", "return", "workup"], - "abilities": ["Keen Eye"] - } - ] - }, - "pidgeotmega": { - "level": 77, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["defog", "focusblast", "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": 89, - "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", "poisonjab", "sludgewave", "stealthrock", "toxicspikes"], - "abilities": ["Sheer Force"], - "preferredTypes": ["Ice"] - } - ] - }, - "nidoking": { - "level": 82, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["earthpower", "fireblast", "icebeam", "poisonjab", "sludgewave", "substitute"], - "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": 83, - "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": 87, - "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", "honeclaws", "stealthrock", "stoneedge", "suckerpunch"], - "abilities": ["Arena Trap"] - }, - { - "role": "Wallbreaker", - "movepool": ["doubleedge", "earthquake", "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": "Bulky Setup", - "movepool": ["calmmind", "encore", "focusblast", "icebeam", "scald", "substitute"], - "abilities": ["Cloud Nine", "Swift Swim"], - "preferredTypes": ["Ice"] - }, - { - "role": "Fast Attacker", - "movepool": ["calmmind", "encore", "focusblast", "hydropump", "icebeam"], - "abilities": ["Cloud Nine", "Swift Swim"], - "preferredTypes": ["Ice"] - } - ] - }, - "primeape": { - "level": 87, - "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", "focusblast", "psychic", "psyshock", "icebeam"], - "abilities": ["Magic Guard"] - }, - { - "role": "Fast Attacker", - "movepool": ["substitute", "focusblast", "psychic", "psyshock", "icebeam"], - "abilities": ["Magic Guard"] - } - ] - }, - "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": 81, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["futuresight", "fireblast", "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": 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"] - } - ] - }, - "cloyster": { - "level": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["hydropump", "iciclespear", "rockblast", "shellsmash"], - "abilities": ["Skill Link"] - } - ] - }, - "gengar": { - "level": 78, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["focusblast", "shadowball", "sludgewave", "substitute", "trick", "willowisp"], - "abilities": ["Levitate"] - }, - { - "role": "Setup Sweeper", - "movepool": ["focusblast", "shadowball", "sludgewave", "calmmind"], - "abilities": ["Levitate"] - } - ] - }, - "gengarmega": { - "level": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["focusblast", "shadowball", "sludgewave", "calmmind"], - "abilities": ["Levitate"] - }, - { - "role": "Fast Attacker", - "movepool": ["focusblast", "hex", "sludgebomb", "willowisp"], - "abilities": ["Levitate"] - } - ] - }, - "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": 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": 83, - "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": 77, - "sets": [ - { - "role": "Fast Support", - "movepool": ["bodyslam", "milkdrink", "earthquake", "suckerpunch"], - "abilities": ["Scrappy"] - }, - { - "role": "Setup Sweeper", - "movepool": ["return", "earthquake", "poweruppunch", "suckerpunch"], - "abilities": ["Scrappy"] - } - ] - }, - "seaking": { - "level": 93, - "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", "Natural Cure"] - }, - { - "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", "psychic", "psyshock", "shadowball", "thunderbolt"], - "abilities": ["Filter"], - "preferredTypes": ["Fighting"] - }, - { - "role": "Setup Sweeper", - "movepool": ["dazzlinggleam", "encore", "focusblast", "nastyplot", "psychic", "psyshock"], - "abilities": ["Filter"] - } - ] - }, - "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": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance", "xscissor"], - "abilities": ["Moxie"], - "preferredTypes": ["Ground"] - } - ] - }, - "pinsirmega": { - "level": 73, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["closecombat", "iceshard", "iciclecrash", "swordsdance"], - "abilities": ["Hyper Cutter"] - }, - { - "role": "Fast Attacker", - "movepool": ["closecombat", "iceshard", "iciclecrash", "uturn"], - "abilities": ["Hyper Cutter"] - } - ] - }, - "tauros": { - "level": 82, - "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": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], - "abilities": ["Intimidate", "Moxie"] - } - ] - }, - "gyaradosmega": { - "level": 74, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["doubleedge", "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": 80, - "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", "waterfall"], - "abilities": ["Battle Armor", "Swift Swim"] - }, - { - "role": "Setup Sweeper", - "movepool": ["aquajet", "knockoff", "stoneedge", "swordsdance", "waterfall"], - "abilities": ["Weak Armor"] - } - ] - }, - "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", "roost", "stealthrock", "stoneedge"], - "abilities": ["Unnerve"], - "preferredTypes": ["Ground"] - } - ] - }, - "aerodactylmega": { - "level": 77, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["hurricane", "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": 70, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "signalbeam"], - "abilities": ["Unnerve"] - } - ] - }, - "mewtwomegax": { - "level": 69, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["bulkup", "drainpunch", "stoneedge", "taunt", "zenheadbutt"], - "abilities": ["Unnerve"] - } - ] - }, - "mewtwomegay": { - "level": 69, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "signalbeam"], - "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": 80, - "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": 86, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["focusblast", "healbell", "slackoff", "thunderbolt", "toxic", "voltswitch", "defog"], - "abilities": ["Static"] - } - ] - }, - "ampharosmega": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["agility", "dragonpulse", "aurasphere", "thunderbolt", "voltswitch"], - "abilities": ["Static"] - }, - { - "role": "Bulky Support", - "movepool": ["dragonpulse", "aurasphere", "slackoff", "voltswitch", "thunderbolt", "defog"], - "abilities": ["Static"] - } - ] - }, - "bellossom": { - "level": 96, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["gigadrain", "hiddenpowerground", "leechseed", "moonblast", "sleeppowder", "sludgebomb", "synthesis", "toxic"], - "abilities": ["Chlorophyll"] - }, - { - "role": "Bulky Setup", - "movepool": ["drainpunch", "leafblade", "return", "swordsdance"], - "abilities": ["Chlorophyll"] - } - ] - }, - "azumarill": { - "level": 81, - "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": 90, - "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": 87, - "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": 86, - "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": ["hiddenpowerfighting", "hiddenpowerpsychic"], - "abilities": ["Levitate"] - } - ] - }, - "wobbuffet": { - "level": 93, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["counter", "destinybond", "encore", "mirrorcoat"], - "abilities": ["Shadow Tag"] - } - ] - }, - "girafarig": { - "level": 93, - "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"], - "abilities": ["Sturdy"] - }, - { - "role": "Bulky Support", - "movepool": ["gyroball", "rapidspin", "stealthrock", "toxicspikes", "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": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "toxic", "uturn"], - "abilities": ["Immunity"] - } - ] - }, - "steelix": { - "level": 83, - "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", "rapidspin"], - "abilities": ["Sturdy"] - } - ] - }, - "steelixmega": { - "level": 80, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["heatcrash", "earthquake", "heavyslam", "stealthrock", "toxic"], - "abilities": ["Sturdy"] - }, - { - "role": "Bulky Attacker", - "movepool": ["earthquake", "heavyslam", "rest", "sleeptalk"], - "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", "poisonjab", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], - "abilities": ["Intimidate"] - } - ] - }, - "scizor": { - "level": 78, - "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": 74, - "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", "icepunch"], - "abilities": ["Guts"] - }, - { - "role": "Fast Attacker", - "movepool": ["closecombat", "knockoff", "megahorn", "stoneedge", "icepunch"], - "abilities": ["Moxie"] - } - ] - }, - "heracrossmega": { - "level": 77, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["closecombat", "earthquake", "knockoff", "megahorn", "healorder", "icepunch", "swordsdance"], - "abilities": ["Moxie"], - "preferredTypes": ["Ice"] - }, - { - "role": "Bulky Support", - "movepool": ["circlethrow", "spikes", "knockoff", "healorder"], - "abilities": ["Moxie"] - } - ] - }, - "ursaring": { - "level": 85, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["closecombat", "crunch", "facade", "protect"], - "abilities": ["Guts"] - }, - { - "role": "Setup Sweeper", - "movepool": ["closecombat", "crunch", "facade", "swordsdance"], - "abilities": ["Quick Feet"] - } - ] - }, - "magcargo": { - "level": 98, - "sets": [ - { - "role": "Staller", - "movepool": ["ancientpower", "lavaplume", "recover", "stealthrock", "toxic"], - "abilities": ["Flame Body"] - } - ] - }, - "corsola": { - "level": 99, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["powergem", "recover", "scald", "stealthrock", "toxic"], - "abilities": ["Regenerator"] - } - ] - }, - "octillery": { - "level": 93, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "scald"], - "abilities": ["Sniper"], - "preferredTypes": ["Poison"] - }, - { - "role": "Bulky Attacker", - "movepool": ["energyball", "fireblast", "gunkshot", "icebeam", "scald", "thunderwave"], - "abilities": ["Sniper"], - "preferredTypes": ["Poison"] - } - ] - }, - "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": 74, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"], - "abilities": ["Sturdy"] - }, - { - "role": "Bulky Attacker", - "movepool": ["bravebird", "roost", "spikes", "stealthrock", "toxic"], - "abilities": ["Sturdy"] - } - ] - }, - "houndoom": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["darkpulse", "fireblast", "nastyplot", "sludgebomb", "suckerpunch", "toxicspikes"], - "abilities": ["Flash Fire"] - } - ] - }, - "houndoommega": { - "level": 80, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["darkpulse", "fireblast", "nastyplot", "sludgebomb", "taunt"], - "abilities": ["Flash Fire"] - }, - { - "role": "Fast Attacker", - "movepool": ["darkpulse", "fireblast", "toxicspikes", "sludgebomb"], - "abilities": ["Flash Fire"] - } - ] - }, - "kingdra": { - "level": 84, - "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": 81, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["discharge", "icebeam", "recover", "toxic", "triattack"], - "abilities": ["Download", "Trace"] - } - ] - }, - "stantler": { - "level": 90, - "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": 89, - "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": 77, - "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": 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": 75, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["dragondance", "superpower", "icepunch", "wildcharge"], - "abilities": ["Sand Stream"] - }, - { - "role": "Bulky Attacker", - "movepool": ["stealthrock", "earthquake", "icepunch", "wildcharge"], - "abilities": ["Sand Stream"] - } - ] - }, - "lugia": { - "level": 71, - "sets": [ - { - "role": "Staller", - "movepool": ["aeroblast", "defog", "earthquake", "roost", "substitute", "toxic", "whirlwind"], - "abilities": ["Multiscale"] - } - ] - }, - "hooh": { - "level": 69, - "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": "Setup Sweeper", - "movepool": ["focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "calmmind"], - "abilities": ["Unburden"] - }, - { - "role": "Staller", - "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "substitute"], - "abilities": ["Overgrow"] - } - ] - }, - "sceptilemega": { - "level": 81, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["focusblast", "leafstorm", "dragonpulse", "sludgewave"], - "abilities": ["Overgrow"] - }, - { - "role": "Setup Sweeper", - "movepool": ["focusblast", "gigadrain", "dragonpulse", "calmmind"], - "abilities": ["Overgrow"] - } - ] - }, - "combusken": { - "level": 93, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["flareblitz", "focusblast", "hiddenpowerelectric", "protect", "hiddenpowerice"], - "abilities": ["Speed Boost"] - } - ] - }, - "blaziken": { - "level": 85, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["flareblitz", "closecombat", "knockoff", "stoneedge", "swordsdance"], - "abilities": ["Blaze"] - } - ] - }, - "blazikenmega": { - "level": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["flareblitz", "closecombat", "knockoff", "stoneedge", "swordsdance"], - "abilities": ["Blaze"] - }, - { - "role": "Fast Attacker", - "movepool": ["flareblitz", "closecombat", "knockoff", "spikes", "uturn"], - "abilities": ["Blaze"] - } - ] - }, - "swampert": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["earthquake", "icebeam", "roar", "scald", "stealthrock", "toxic", "toxicspikes"], - "abilities": ["Torrent"] - }, - { - "role": "Staller", - "movepool": ["earthquake", "protect", "scald", "toxic"], - "abilities": ["Torrent"] - } - ] - }, - "swampertmega": { - "level": 81, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["earthquake", "poisonjab", "substitute", "superpower", "waterfall", "toxicspikes"], - "abilities": ["Damp"] - }, - { - "role": "Bulky Setup", - "movepool": ["bulkup", "gunkshot", "earthquake", "waterfall"], - "abilities": ["Damp"] - } - ] - }, - "mightyena": { - "level": 93, - "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": 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": 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": 81, - "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"], - "preferredTypes": ["Fighting"] - }, - { - "role": "Fast Support", - "movepool": ["willowisp", "healingwish", "rapidspin", "psychic", "moonblast"], - "abilities": ["Trace"], - "preferredTypes": ["Fighting"] - }, - { - "role": "Setup Sweeper", - "movepool": ["calmmind", "focusblast", "moonblast", "psyshock", "substitute", "willowisp"], - "abilities": ["Trace"] - } - ] - }, - "gardevoirmega": { - "level": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["calmmind", "encore", "focusblast", "hypervoice", "psyshock", "taunt", "willowisp", "mysticalfire"], - "abilities": ["Trace"] - }, - { - "role": "Fast Attacker", - "movepool": ["focusblast", "hypervoice", "psyshock", "substitute", "taunt", "willowisp", "rapidspin"], - "abilities": ["Trace"], - "preferredTypes": ["Fighting"] - } - ] - }, - "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": 88, - "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"] - }, - { - "role": "Wallbreaker", - "movepool": ["doubleedge", "earthquake", "gigaimpact", "pursuit"], - "abilities": ["Truant"] - } - ] - }, - "ninjask": { - "level": 93, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["aerialace", "nightslash", "swordsdance", "uturn", "xscissor"], - "abilities": ["Infiltrator"] - } - ] - }, - "shedinja": { - "level": 95, - "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": 86, - "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", "slackoff", "rockslide"], - "abilities": ["Intimidate", "Sheer Force"] - }, - { - "role": "Bulky Support", - "movepool": ["knockoff", "playrough", "stealthrock", "slackoff"], - "abilities": ["Intimidate"] - } - ] - }, - "mawilemega": { - "level": 77, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["ironhead", "knockoff", "playrough", "stealthrock", "suckerpunch", "swordsdance", "slackoff", "rockslide"], - "abilities": ["Intimidate"] - }, - { - "role": "Wallbreaker", - "movepool": ["ironhead", "knockoff", "playrough", "firepunch", "suckerpunch", "swordsdance", "rockslide"], - "abilities": ["Intimidate"] - } - ] - }, - "aggron": { - "level": 86, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["earthquake", "headsmash", "heavyslam", "rockpolish"], - "abilities": ["Rock Head"] - }, - { - "role": "Wallbreaker", - "movepool": ["aquatail", "earthquake", "headsmash", "heavyslam", "voltswitch"], - "abilities": ["Rock Head"], - "preferredTypes": ["Ground"] - }, - { - "role": "Bulky Attacker", - "movepool": ["aquatail", "earthquake", "headsmash", "heavyslam", "stealthrock"], - "abilities": ["Rock Head"], - "preferredTypes": ["Ground"] - } - ] - }, - "aggronmega": { - "level": 78, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["earthquake", "heavyslam", "roar", "stealthrock", "stoneedge", "thunderwave", "toxic"], - "abilities": ["Sturdy"], - "preferredTypes": ["Ground"] - }, - { - "role": "Bulky Attacker", - "movepool": ["voltswitch", "earthquake", "stoneedge", "heavyslam", "stealthrock", "toxic", "protect"], - "abilities": ["Rock Head"], - "preferredTypes": ["Ground"] - } - ] - }, - "medicham": { - "level": 83, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["bulletpunch", "closecombat", "icepunch", "gunkshot", "zenheadbutt", "healingwish"], - "abilities": ["Pure Power"] - } - ] - }, - "medichammega": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["focusblast", "psychic", "psyshock", "thunderbolt", "shadowball", "vacuumwave"], - "abilities": ["Telepathy"], - "preferredTypes": ["Ghost"] - }, - { - "role": "Bulky Setup", - "movepool": ["calmmind", "psychic", "recover", "vacuumwave"], - "abilities": ["Telepathy"] - } - ] - }, - "manectric": { - "level": 84, - "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": 91, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["encore", "roost", "thunderwave", "uturn"], - "abilities": ["Prankster"] - } - ] - }, - "illumise": { - "level": 91, - "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": 82, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["crunch", "destinybond", "earthquake", "icebeam", "protect", "waterfall"], - "abilities": ["Speed Boost"] - } - ] - }, - "sharpedomega": { - "level": 78, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["thunder", "blizzard", "protect", "hydropump"], - "abilities": ["Speed Boost"] - } - ] - }, - "wailord": { - "level": 93, - "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", "morningsun", "roar", "stealthrock", "toxic"], - "abilities": ["Solid Rock"] - } - ] - }, - "cameruptmega": { - "level": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["morningsun", "earthpower", "fireblast", "stealthrock", "toxic", "willowisp"], - "abilities": ["Solid Rock"] - } - ] - }, - "torkoal": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["earthquake", "lavaplume", "rapidspin", "stealthrock", "yawn"], - "abilities": ["Shell Armor"] - } - ] - }, - "grumpig": { - "level": 92, - "sets": [ - { - "role": "Bulky Attacker", - "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", "gigadrain", "spikes", "suckerpunch", "superpower"], - "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 Support", - "movepool": ["dracometeor", "earthquake", "fireblast", "healbell", "roost", "toxic"], - "abilities": ["Natural Cure"] - } - ] - }, - "altariamega": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["moonblast", "hydropump", "fireblast", "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": 83, - "sets": [ - { - "role": "Staller", - "movepool": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"], - "abilities": ["Competitive", "Marvel Scale"] - } - ] - }, - "castform": { - "level": 97, - "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": 90, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["gunkshot", "knockoff", "shadowclaw", "shadowsneak", "thunderwave", "willowisp"], - "abilities": ["Cursed Body", "Frisk", "Insomnia"] - } - ] - }, - "banettemega": { - "level": 87, - "sets": [ - { - "role": "Fast Support", - "movepool": ["powder", "knockoff", "ironhead", "taunt", "willowisp", "stealthrock", "defog"], - "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": 84, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["knockoff", "playrough", "pursuit", "suckerpunch", "closecombat", "swordsdance"], - "abilities": ["Justified"], - "preferredTypes": ["Fairy"] - } - ] - }, - "absolmega": { - "level": 80, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["irontail", "knockoff", "playrough", "pursuit", "suckerpunch", "closecombat", "swordsdance"], - "abilities": ["Justified"], - "preferredTypes": ["Fairy"] - }, - { - "role": "Fast Attacker", - "movepool": ["knockoff", "moonblast", "suckerpunch", "closecombat", "fireblast"], - "abilities": ["Justified"] - } - ] - }, - "glalie": { - "level": 91, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["earthquake", "freezedry", "spikes", "superfang", "taunt"], - "abilities": ["Inner Focus"] - } - ] - }, - "glaliemega": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["earthquake", "explosion", "freezedry", "iceshard", "doubleedge", "spikes"], - "abilities": ["Inner Focus"], - "preferredTypes": ["Ground"] - }, - { - "role": "Wallbreaker", - "movepool": ["earthquake", "iceshard", "boomburst", "doubleedge"], - "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", "waterfall"], - "abilities": ["Rock Head"] - }, - { - "role": "Bulky Setup", - "movepool": ["earthquake", "headsmash", "rockpolish", "waterfall"], - "abilities": ["Rock Head"] - } - ] - }, - "luvdisc": { - "level": 100, - "sets": [ - { - "role": "Staller", - "movepool": ["icebeam", "protect", "scald", "substitute", "toxic"], - "abilities": ["Hydration"] - } - ] - }, - "salamence": { - "level": 75, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["dragondance", "earthquake", "outrage", "roost", "ironhead"], - "abilities": ["Intimidate", "Moxie"] - } - ] - }, - "salamencemega": { - "level": 74, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["outrage", "dragondance", "earthquake", "hurricane", "roost"], - "abilities": ["Intimidate"] - }, - { - "role": "Fast Attacker", - "movepool": ["hurricane", "fireblast", "dracometeor", "roost"], - "abilities": ["Intimidate"] - } - ] - }, - "metagross": { - "level": 80, - "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": 74, - "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": 86, - "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": 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": 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": 72, - "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"] - }, - { - "role": "Setup Sweeper", - "movepool": ["dragondance", "zenheadbutt", "dracometeor", "earthquake"], - "abilities": ["Levitate"] - }, - { - "role": "Fast Attacker", - "movepool": ["defog", "dracometeor", "psyshock", "roost", "icebeam"], - "abilities": ["Levitate"] - } - ] - }, - "kyogre": { - "level": 67, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["icebeam", "originpulse", "scald", "thunder", "waterspout"], - "abilities": ["Drizzle"] - } - ] - }, - "kyogreprimal": { - "level": 71, - "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", "coil"], - "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", "coil"], - "abilities": ["Air Lock"] - } - ] - }, - "jirachi": { - "level": 78, - "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": 79, - "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": 78, - "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": 98, - "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": 95, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["metalburst", "protect", "roar", "rockslide", "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": 90, - "sets": [ - { - "role": "Staller", - "movepool": ["earthquake", "infestation", "protect", "stealthrock", "toxic"], - "abilities": ["Overcoat"] - } - ] - }, - "wormadamtrash": { - "level": 88, - "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"] - } - ] - }, - "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": 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": 76, - "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": 85, - "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": 86, - "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": 76, - "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": 79, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["bulletpunch", "closecombat", "meteormash", "swordsdance"], - "abilities": ["Justified"] - }, - { - "role": "Setup Sweeper", - "movepool": ["focusblast", "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": 100, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["knockoff", "powerwhip", "sleeppowder", "swordsdance", "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": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["icebeam", "earthquake", "gigadrain", "iceshard", "woodhammer"], - "abilities": ["Snow Warning"], - "preferredTypes": ["Ground"] - }, - { - "role": "Bulky Support", - "movepool": ["icebeam", "gigadrain", "leechseed", "earthquake"], - "abilities": ["Snow Warning"] - } - ] - }, - "weavile": { - "level": 77, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["iceshard", "iciclecrash", "knockoff", "lowkick", "pursuit", "swordsdance"], - "abilities": ["Pickpocket"] - } - ] - }, - "magnezone": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["flashcannon", "hiddenpowerground", "thunderbolt", "voltswitch"], - "abilities": ["Analytic", "Magnet Pull"] - }, - { - "role": "Staller", - "movepool": ["flashcannon", "protect", "thunderbolt", "toxic"], - "abilities": ["Analytic"] - } - ] - }, - "lickilicky": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["bodyslam", "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", "substitute", "swordsdance", "synthesis"], - "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": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["closecombat", "icepunch", "knockoff", "shadowsneak", "swordsdance", "zenheadbutt", "machpunch"], - "abilities": ["Justified"], - "preferredTypes": ["Dark"] - } - ] - }, - "gallademega": { - "level": 77, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["sacredsword", "knockoff", "swordsdance", "psychocut"], - "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", "painsplit", "shadowsneak", "toxic", "willowisp"], - "abilities": ["Frisk", "Pressure"], - "preferredTypes": ["Ground"] - }, - { - "role": "Bulky Support", - "movepool": ["earthquake", "icepunch", "painsplit", "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": 82, - "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": 86, - "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": 80, - "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": 78, - "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": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["drainpunch", "knockoff", "return", "thunderwave"], - "abilities": ["Slow Start"] - }, - { - "role": "Bulky Support", - "movepool": ["knockoff", "return", "substitute", "thunderwave"], - "abilities": ["Slow Start"] - } - ] - }, - "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": 72, - "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": 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"] - } - ] - }, - "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": 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"] - } - ] - }, - "serperior": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["dragonpulse", "glare", "hiddenpowerfire", "leafstorm", "leechseed", "substitute"], - "abilities": ["Contrary"] - } - ] - }, - "emboar": { - "level": 83, - "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": 85, - "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"] - } - ] - }, - "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", "hiddenpowerfighting", "moonlight", "psyshock", "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", "voltswitch"], - "abilities": ["Regenerator"] - } - ] - }, - "audinomega": { - "level": 82, - "sets": [ - { - "role": "Staller", - "movepool": ["icebeam", "protect", "voltswitch", "wish", "toxic"], - "abilities": ["Regenerator"] - }, - { - "role": "Bulky Support", - "movepool": ["thunderwave", "icebeam", "knockoff", "voltswitch", "toxic"], - "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": 88, - "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": 86, - "sets": [ - { - "role": "Fast Support", - "movepool": ["knockoff", "leafblade", "stickyweb", "toxic", "xscissor"], - "abilities": ["Chlorophyll", "Swarm"] - } - ] - }, - "scolipede": { - "level": 79, - "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": ["encore", "leechseed", "moonblast", "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": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"], - "abilities": ["Adaptability"] - } - ] - }, - "krookodile": { - "level": 78, - "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": "Bulky Attacker", - "movepool": ["dragondance", "drainpunch", "ironhead", "knockoff"], - "abilities": ["Intimidate"] - }, - { - "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": 81, - "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"], - "preferredTypes": ["Grass"] - } - ] - }, - "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"], - "abilities": ["Magic Guard"] - } - ] - }, - "swanna": { - "level": 85, - "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": 88, - "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", "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": 79, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["bugbuzz", "energyball", "stickyweb", "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": ["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", "energyball", "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", "scald", "stealthrock", "toxic"], - "abilities": ["Static"] - }, - { - "role": "Bulky Support", - "movepool": ["discharge", "earthpower", "protect", "rest", "sleeptalk", "toxic"], - "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": 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": 83, - "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": 92, - "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": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["darkpulse", "dracometeor", "earthpower", "fireblast", "flashcannon", "roost", "uturn"], - "abilities": ["Levitate"] - }, - { - "role": "Bulky Attacker", - "movepool": ["darkpulse", "dracometeor", "fireblast", "roost", "toxic", "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": 77, - "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": 80, - "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": 78, - "sets": [ - { - "role": "Fast Support", - "movepool": ["heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], - "abilities": ["Regenerator"] - } - ] - }, - "thundurus": { - "level": 78, - "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": 76, - "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 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": 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"] - } - ] - }, - "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": 83, - "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"] - } - ] - }, - "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": ["fireblast", "hiddenpowergrass", "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": 84, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["drainpunch", "gunkshot", "icepunch", "knockoff", "superpower"], - "abilities": ["Iron Fist"] - }, - { - "role": "Setup Sweeper", - "movepool": ["drainpunch", "gunkshot", "knockoff", "swordsdance"], - "abilities": ["Iron Fist"] - } - ] - }, - "furfrou": { - "level": 85, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["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": 90, - "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": 89, - "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", "dragontail", "focusblast", "sludgewave", "toxicspikes"], - "abilities": ["Adaptability"] - }, - { - "role": "Wallbreaker", - "movepool": ["dracometeor", "dragonpulse", "focusblast", "sludgewave"], - "abilities": ["Adaptability"] - } - ] - }, - "clawitzer": { - "level": 85, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn", "waterpulse"], - "abilities": ["Mega Launcher"] - }, - { - "role": "AV Pivot", - "movepool": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn"], - "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": 80, - "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": 84, - "sets": [ - { - "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": 79, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["dazzlinggleam", "foulplay", "spikes", "thunderwave"], - "abilities": ["Prankster"] - }, - { - "role": "Bulky Attacker", - "movepool": ["magnetrise", "playrough", "spikes", "thunderwave"], - "abilities": ["Prankster"] - } - ] - }, - "trevenant": { - "level": 91, - "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": 87, - "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": 87, - "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": 80, - "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": 69, - "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", "stoneedge", "substitute"], - "abilities": ["Aura Break"] - } - ] - }, - "diancie": { - "level": 81, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["diamondstorm", "earthpower", "healbell", "moonblast", "stealthrock", "toxic"], - "abilities": ["Clear Body"] - } - ] - }, - "dianciemega": { - "level": 77, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["calmmind", "diamondstorm", "earthpower", "moonblast", "spikyshield"], - "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/gen6megasrevisited/teams.ts b/data/random-battles/gen6megasrevisited/teams.ts deleted file mode 100644 index e494fb7299..0000000000 --- a/data/random-battles/gen6megasrevisited/teams.ts +++ /dev/null @@ -1,7 +0,0 @@ -import RandomGen6Teams from '../gen6/teams'; - -export class RandomMRTeams extends RandomGen6Teams { - override randomSets: { [species: string]: RandomTeamsTypes.RandomSpeciesData } = require('./sets.json'); -} - -export default RandomMRTeams; diff --git a/data/random-battles/gen7/sets.json b/data/random-battles/gen7/sets.json index 6f0d4b3593..87969a681d 100644 --- a/data/random-battles/gen7/sets.json +++ b/data/random-battles/gen7/sets.json @@ -455,7 +455,7 @@ ] }, "golduck": { - "level": 93, + "level": 92, "sets": [ { "role": "Bulky Setup", @@ -467,7 +467,7 @@ "role": "Fast Attacker", "movepool": ["calmmind", "encore", "focusblast", "hydropump", "icebeam"], "abilities": ["Cloud Nine", "Swift Swim"], - "preferredTypes": ["Ice"] + "preferredTypes": ["Ice"] } ] }, @@ -535,7 +535,7 @@ ] }, "alakazammega": { - "level": 78, + "level": 77, "sets": [ { "role": "Setup Sweeper", @@ -778,7 +778,7 @@ ] }, "kingler": { - "level": 87, + "level": 88, "sets": [ { "role": "Setup Sweeper", @@ -831,7 +831,7 @@ ] }, "marowak": { - "level": 88, + "level": 89, "sets": [ { "role": "Wallbreaker", @@ -1018,7 +1018,7 @@ ] }, "pinsir": { - "level": 84, + "level": 85, "sets": [ { "role": "Fast Attacker", @@ -1029,7 +1029,7 @@ ] }, "pinsirmega": { - "level": 74, + "level": 73, "sets": [ { "role": "Bulky Setup", @@ -1177,7 +1177,7 @@ ] }, "aerodactyl": { - "level": 82, + "level": 81, "sets": [ { "role": "Bulky Attacker", @@ -1608,7 +1608,7 @@ ] }, "wobbuffet": { - "level": 94, + "level": 95, "sets": [ { "role": "Bulky Support", @@ -2216,7 +2216,7 @@ ] }, "beautifly": { - "level": 99, + "level": 98, "sets": [ { "role": "Setup Sweeper", @@ -2410,7 +2410,7 @@ ] }, "shedinja": { - "level": 96, + "level": 97, "sets": [ { "role": "Setup Sweeper", @@ -2477,7 +2477,7 @@ ] }, "mawile": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Attacker", @@ -2513,7 +2513,7 @@ ] }, "aggronmega": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Attacker", @@ -2621,7 +2621,7 @@ ] }, "swalot": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Attacker", @@ -2667,7 +2667,7 @@ ] }, "camerupt": { - "level": 90, + "level": 91, "sets": [ { "role": "Setup Sweeper", @@ -3001,7 +3001,7 @@ ] }, "absolmega": { - "level": 82, + "level": 81, "sets": [ { "role": "Setup Sweeper", @@ -3554,7 +3554,7 @@ ] }, "bastiodon": { - "level": 94, + "level": 93, "sets": [ { "role": "Bulky Support", @@ -4295,7 +4295,7 @@ ] }, "rotomfrost": { - "level": 86, + "level": 85, "sets": [ { "role": "Bulky Attacker", @@ -5635,7 +5635,7 @@ ] }, "bisharp": { - "level": 82, + "level": 81, "sets": [ { "role": "Fast Attacker", @@ -5858,7 +5858,7 @@ ] }, "zekrom": { - "level": 74, + "level": 75, "sets": [ { "role": "Setup Sweeper", @@ -5918,7 +5918,7 @@ ] }, "kyurem": { - "level": 80, + "level": 79, "sets": [ { "role": "Staller", @@ -6186,7 +6186,7 @@ ] }, "furfrou": { - "level": 86, + "level": 87, "sets": [ { "role": "Bulky Support", @@ -6339,7 +6339,7 @@ ] }, "tyrantrum": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -6741,7 +6741,7 @@ ] }, "oricoriopompom": { - "level": 87, + "level": 86, "sets": [ { "role": "Bulky Attacker", @@ -6965,7 +6965,7 @@ ] }, "comfey": { - "level": 87, + "level": 88, "sets": [ { "role": "Bulky Support", diff --git a/data/random-battles/gen7/teams.ts b/data/random-battles/gen7/teams.ts index e54572d390..e971a977d8 100644 --- a/data/random-battles/gen7/teams.ts +++ b/data/random-battles/gen7/teams.ts @@ -199,7 +199,7 @@ export class RandomGen7Teams extends RandomGen8Teams { if (move.priority > 0) counter.add('priority'); } // Moves with secondary effects: - if (move.secondary || move.hasSheerForce) { + if (move.secondary || move.hasSheerForceBoost) { counter.add('sheerforce'); if (sereneGraceBenefits(move)) { counter.add('serenegrace'); diff --git a/data/random-battles/gen8/data.json b/data/random-battles/gen8/data.json index 61aefbcef3..a62160318b 100644 --- a/data/random-battles/gen8/data.json +++ b/data/random-battles/gen8/data.json @@ -269,7 +269,7 @@ "doublesMoves": ["closecombat", "fakeout", "knockoff", "poisonjab", "protect", "rockslide"] }, "hitmonchan": { - "level": 88, + "level": 87, "moves": ["bulkup", "drainpunch", "icepunch", "machpunch", "rapidspin", "throatchop"], "doublesLevel": 88, "doublesMoves": ["coaching", "drainpunch", "feint", "firepunch", "icepunch", "machpunch"] @@ -319,7 +319,7 @@ "doublesMoves": ["dazzlinggleam", "fakeout", "icywind", "lightscreen", "psychic", "reflect"] }, "mrmimegalar": { - "level": 84, + "level": 83, "moves": ["focusblast", "freezedry", "nastyplot", "psychic", "rapidspin"] }, "scyther": { @@ -353,7 +353,7 @@ "doublesMoves": ["bounce", "dragondance", "icefang", "powerwhip", "protect", "waterfall"] }, "laprasgmax": { - "level": 85, + "level": 84, "moves": ["freezedry", "icebeam", "protect", "sparklingaria", "thunderbolt", "toxic"], "doublesLevel": 84, "doublesMoves": ["freezedry", "helpinghand", "hydropump", "icywind", "protect", "thunderbolt"] @@ -430,13 +430,13 @@ "doublesMoves": ["heatwave", "hurricane", "roost", "tailwind", "thunderbolt", "voltswitch"] }, "zapdosgalar": { - "level": 74, + "level": 73, "moves": ["bravebird", "bulkup", "closecombat", "throatchop", "uturn"], "doublesLevel": 76, "doublesMoves": ["bravebird", "bulkup", "closecombat", "throatchop", "thunderouskick", "uturn"] }, "moltres": { - "level": 79, + "level": 78, "moves": ["airslash", "defog", "fireblast", "roost", "uturn"], "doublesLevel": 81, "doublesMoves": ["bravebird", "fireblast", "heatwave", "protect", "roost", "tailwind"], @@ -457,7 +457,7 @@ "noDynamaxMoves": ["dragondance", "dualwingbeat", "earthquake", "outrage", "roost"] }, "mewtwo": { - "level": 71, + "level": 72, "moves": ["aurasphere", "fireblast", "nastyplot", "psystrike", "recover"], "doublesLevel": 74, "doublesMoves": ["aurasphere", "icebeam", "nastyplot", "psystrike", "recover"] @@ -531,7 +531,7 @@ "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"] @@ -556,7 +556,7 @@ "noDynamaxMoves": ["counter", "destinybond", "encore", "mirrorcoat"] }, "dunsparce": { - "level": 90, + "level": 91, "moves": ["bodyslam", "coil", "earthquake", "roost"], "doublesLevel": 90, "doublesMoves": ["glare", "headbutt", "protect", "rockslide"] @@ -647,7 +647,7 @@ "doublesMoves": ["closecombat", "coaching", "fakeout", "helpinghand", "rapidspin", "suckerpunch", "tripleaxel"] }, "miltank": { - "level": 83, + "level": 82, "moves": ["bodyslam", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], "doublesLevel": 86, "doublesMoves": ["bodypress", "bodyslam", "helpinghand", "icywind", "milkdrink", "protect", "rockslide"] @@ -659,7 +659,7 @@ "doublesMoves": ["allyswitch", "healpulse", "helpinghand", "protect", "seismictoss", "softboiled", "thunderwave", "toxic"] }, "raikou": { - "level": 79, + "level": 80, "moves": ["aurasphere", "calmmind", "scald", "substitute", "thunderbolt", "voltswitch"], "doublesLevel": 82, "doublesMoves": ["aurasphere", "calmmind", "protect", "scald", "snarl", "thunderbolt", "voltswitch"] @@ -739,7 +739,7 @@ "noDynamaxMoves": ["defog", "knockoff", "leafblade", "lowkick", "rockslide", "suckerpunch", "swordsdance"] }, "pelipper": { - "level": 87, + "level": 86, "moves": ["defog", "hurricane", "hydropump", "roost", "scald", "uturn"], "doublesLevel": 83, "doublesMoves": ["hurricane", "hydropump", "protect", "roost", "tailwind", "wideguard"] @@ -879,7 +879,7 @@ "doublesMoves": ["closecombat", "knockoff", "protect", "suckerpunch", "swordsdance"] }, "glalie": { - "level": 96, + "level": 95, "moves": ["earthquake", "freezedry", "spikes", "superfang", "taunt"], "doublesLevel": 94, "doublesMoves": ["disable", "foulplay", "freezedry", "helpinghand", "icywind", "protect"] @@ -971,7 +971,7 @@ "doublesMoves": ["playrough", "protect", "superpower", "voltswitch", "wildcharge"] }, "roserade": { - "level": 84, + "level": 83, "moves": ["leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], "doublesLevel": 86, "doublesMoves": ["energyball", "leafstorm", "protect", "sleeppowder", "sludgebomb"] @@ -1005,7 +1005,7 @@ "doublesMoves": ["calmmind", "icywind", "shadowball", "strengthsap"] }, "lopunny": { - "level": 95, + "level": 96, "moves": ["closecombat", "facade", "healingwish", "switcheroo"], "doublesLevel": 92, "doublesMoves": ["closecombat", "fakeout", "switcheroo", "uturn"] @@ -1077,13 +1077,13 @@ "doublesMoves": ["bodypress", "electroweb", "flashcannon", "protect", "thunderbolt", "voltswitch"] }, "lickilicky": { - "level": 86, + "level": 87, "moves": ["bodyslam", "earthquake", "explosion", "healbell", "knockoff", "protect", "swordsdance", "wish"], "doublesLevel": 88, "doublesMoves": ["bodyslam", "explosion", "helpinghand", "icywind", "knockoff"] }, "rhyperior": { - "level": 79, + "level": 80, "moves": ["earthquake", "firepunch", "megahorn", "rockpolish", "stoneedge"], "doublesLevel": 84, "doublesMoves": ["highhorsepower", "icepunch", "megahorn", "protect", "rockslide", "stoneedge"] @@ -1095,7 +1095,7 @@ "doublesMoves": ["focusblast", "knockoff", "powerwhip", "ragepowder", "sleeppowder"] }, "electivire": { - "level": 83, + "level": 82, "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], "doublesLevel": 88, "doublesMoves": ["crosschop", "flamethrower", "icepunch", "stompingtantrum", "wildcharge"] @@ -1228,7 +1228,7 @@ "doublesMoves": ["earthpower", "eruption", "flashcannon", "heatwave", "protect"] }, "regigigas": { - "level": 82, + "level": 83, "moves": ["bodyslam", "protect", "substitute", "toxic"], "doublesLevel": 86, "doublesMoves": ["bodyslam", "knockoff", "protect", "thunderwave"] @@ -1265,7 +1265,7 @@ "doublesMoves": ["facade", "helpinghand", "superpower", "thunderwave"] }, "liepard": { - "level": 91, + "level": 92, "moves": ["copycat", "encore", "knockoff", "playrough", "thunderwave", "uturn"], "doublesLevel": 88, "doublesMoves": ["copycat", "encore", "fakeout", "foulplay", "snarl", "taunt", "thunderwave"] @@ -1388,7 +1388,7 @@ "doublesMoves": ["acupressure", "helpinghand", "leafstorm", "leechseed", "spikyshield"] }, "crustle": { - "level": 81, + "level": 82, "moves": ["earthquake", "shellsmash", "stoneedge", "xscissor"], "doublesLevel": 84, "doublesMoves": ["knockoff", "protect", "rockslide", "shellsmash", "xscissor"] @@ -1454,7 +1454,7 @@ "doublesMoves": ["focusblast", "protect", "psychic", "shadowball", "trickroom"] }, "vanilluxe": { - "level": 82, + "level": 81, "moves": ["auroraveil", "blizzard", "explosion", "flashcannon", "freezedry"], "doublesLevel": 82, "doublesMoves": ["auroraveil", "blizzard", "explosion", "freezedry", "protect"] @@ -1466,7 +1466,7 @@ "doublesMoves": ["acrobatics", "helpinghand", "nuzzle", "tailwind", "taunt", "voltswitch"] }, "escavalier": { - "level": 83, + "level": 82, "moves": ["closecombat", "drillrun", "ironhead", "knockoff", "megahorn", "swordsdance"], "doublesLevel": 86, "doublesMoves": ["closecombat", "drillrun", "ironhead", "knockoff", "megahorn", "protect", "swordsdance"] @@ -1478,7 +1478,7 @@ "doublesMoves": ["clearsmog", "pollenpuff", "protect", "ragepowder", "spore"] }, "jellicent": { - "level": 86, + "level": 87, "moves": ["icebeam", "recover", "scald", "shadowball", "toxic", "willowisp"], "doublesLevel": 84, "doublesMoves": ["scald", "shadowball", "strengthsap", "trickroom", "willowisp"] @@ -1539,7 +1539,7 @@ "noDynamaxMoves": ["bugbuzz", "encore", "energyball", "focusblast", "spikes", "toxic"] }, "stunfisk": { - "level": 83, + "level": 84, "moves": ["discharge", "earthpower", "foulplay", "sludgebomb", "stealthrock"], "doublesLevel": 88, "doublesMoves": ["earthpower", "electroweb", "foulplay", "stealthrock", "thunderbolt"] @@ -1563,7 +1563,7 @@ "doublesMoves": ["dragonclaw", "firepunch", "glare", "gunkshot", "protect", "suckerpunch"] }, "golurk": { - "level": 82, + "level": 83, "moves": ["dynamicpunch", "earthquake", "poltergeist", "rockpolish", "stoneedge"], "doublesLevel": 86, "doublesMoves": ["dynamicpunch", "highhorsepower", "icepunch", "poltergeist", "protect"] @@ -1813,7 +1813,7 @@ "doublesMoves": ["closecombat", "dragonclaw", "dragondance", "headsmash", "highhorsepower"] }, "aurorus": { - "level": 84, + "level": 85, "moves": ["ancientpower", "blizzard", "earthpower", "freezedry", "stealthrock", "thunderwave"], "doublesLevel": 88, "doublesMoves": ["auroraveil", "blizzard", "earthpower", "freezedry", "protect", "thunderwave"] @@ -1825,7 +1825,7 @@ "doublesMoves": ["calmmind", "hypervoice", "mysticalfire", "protect", "psyshock"] }, "hawlucha": { - "level": 78, + "level": 79, "moves": ["bravebird", "closecombat", "roost", "stoneedge", "swordsdance", "throatchop"], "doublesLevel": 80, "doublesMoves": ["bravebird", "closecombat", "protect", "swordsdance"] @@ -1867,7 +1867,7 @@ "doublesMoves": ["leechseed", "poltergeist", "powerwhip", "substitute", "willowisp"] }, "gourgeistsmall": { - "level": 82, + "level": 83, "moves": ["leechseed", "poltergeist", "powerwhip", "substitute", "willowisp"], "doublesLevel": 88, "doublesMoves": ["leechseed", "poltergeist", "powerwhip", "substitute", "willowisp"] @@ -1897,7 +1897,7 @@ "doublesMoves": ["boomburst", "dracometeor", "flamethrower", "hurricane", "protect", "tailwind"] }, "xerneas": { - "level": 65, + "level": 64, "moves": ["focusblast", "geomancy", "moonblast", "psyshock"], "doublesLevel": 70, "doublesMoves": ["dazzlinggleam", "focusblast", "geomancy", "moonblast", "thunderbolt"] @@ -1946,7 +1946,7 @@ "doublesMoves": ["fakeout", "flareblitz", "knockoff", "partingshot", "uturn"] }, "primarina": { - "level": 80, + "level": 81, "moves": ["energyball", "hydropump", "moonblast", "psychic", "scald"], "doublesLevel": 82, "doublesMoves": ["dazzlinggleam", "flipturn", "hypervoice", "moonblast", "protect", "psychic"] @@ -2066,7 +2066,7 @@ "doublesMoves": ["hypnosis", "protect", "scorchingsands", "shadowball", "shoreup", "stealthrock"] }, "pyukumuku": { - "level": 86, + "level": 85, "moves": ["counter", "mirrorcoat", "recover", "toxic"], "doublesLevel": 100, "doublesMoves": ["helpinghand", "lightscreen", "memento", "reflect"] @@ -2214,7 +2214,7 @@ "doublesMoves": ["anchorshot", "knockoff", "powerwhip", "protect"] }, "kommoo": { - "level": 80, + "level": 81, "moves": ["clangingscales", "clangoroussoul", "closecombat", "poisonjab", "stealthrock"], "doublesLevel": 80, "doublesMoves": ["bodypress", "dracometeor", "irondefense", "protect"] @@ -2318,7 +2318,7 @@ "doublesMoves": ["heatwave", "moongeistbeam", "photongeyser", "protect", "thunderwave"] }, "magearna": { - "level": 73, + "level": 72, "moves": ["agility", "calmmind", "flashcannon", "fleurcannon"], "doublesLevel": 72, "doublesMoves": ["agility", "aurasphere", "dazzlinggleam", "flashcannon", "fleurcannon", "protect", "trick"] @@ -2355,7 +2355,7 @@ "doublesMoves": ["closecombat", "fakeout", "grassknot", "knockoff", "plasmafists", "snarl"] }, "melmetal": { - "level": 73, + "level": 72, "moves": ["doubleironbash", "earthquake", "superpower", "thunderpunch", "thunderwave"], "doublesLevel": 76, "doublesMoves": ["acidarmor", "bodypress", "doubleironbash", "protect", "thunderpunch", "thunderwave"] @@ -2480,7 +2480,7 @@ "doublesMoves": ["bravebird", "icebeam", "protect", "roost", "surf", "tailwind"] }, "barraskewda": { - "level": 80, + "level": 79, "moves": ["closecombat", "crunch", "flipturn", "liquidation"], "doublesLevel": 84, "doublesMoves": ["closecombat", "drillrun", "flipturn", "liquidation", "poisonjab"] @@ -2654,13 +2654,13 @@ "doublesMoves": ["blizzard", "boltbeak", "iciclecrash", "lowkick", "protect"] }, "dracovish": { - "level": 77, + "level": 78, "moves": ["crunch", "fishiousrend", "icefang", "lowkick", "psychicfangs"], "doublesLevel": 78, "doublesMoves": ["crunch", "dragonrush", "fishiousrend", "icefang", "psychicfangs"] }, "arctovish": { - "level": 87, + "level": 88, "moves": ["bodyslam", "fishiousrend", "freezedry", "iciclecrash", "psychicfangs"], "doublesLevel": 88, "doublesMoves": ["blizzard", "fishiousrend", "iciclecrash", "protect", "superfang"] @@ -2678,25 +2678,25 @@ "doublesMoves": ["dragondarts", "fireblast", "protect", "shadowball", "thunderbolt", "thunderwave"] }, "zacian": { - "level": 66, + "level": 67, "moves": ["closecombat", "crunch", "playrough", "psychicfangs", "swordsdance"], "doublesLevel": 72, "doublesMoves": ["closecombat", "crunch", "playrough", "protect", "psychicfangs", "swordsdance"] }, "zaciancrowned": { - "level": 61, + "level": 62, "moves": ["behemothblade", "closecombat", "playrough", "psychicfangs", "swordsdance"], "doublesLevel": 65, "doublesMoves": ["behemothblade", "closecombat", "playrough", "protect", "psychicfangs", "swordsdance"] }, "zamazenta": { - "level": 69, + "level": 70, "moves": ["closecombat", "crunch", "psychicfangs", "wildcharge"], "doublesLevel": 74, "doublesMoves": ["closecombat", "crunch", "playrough", "protect", "psychicfangs"] }, "zamazentacrowned": { - "level": 68, + "level": 67, "moves": ["behemothbash", "closecombat", "crunch", "howl", "psychicfangs"], "doublesLevel": 72, "doublesMoves": ["behemothbash", "closecombat", "crunch", "howl", "protect"] @@ -2734,7 +2734,7 @@ "doublesMoves": ["closecombat", "darkestlariat", "junglehealing", "powerwhip", "protect"] }, "regieleki": { - "level": 78, + "level": 77, "moves": ["explosion", "substitute", "thunderbolt", "voltswitch"], "doublesLevel": 82, "doublesMoves": ["electroweb", "extremespeed", "protect", "thundercage", "voltswitch"], @@ -2759,7 +2759,7 @@ "doublesMoves": ["darkpulse", "nastyplot", "protect", "shadowball"] }, "calyrex": { - "level": 88, + "level": 89, "moves": ["calmmind", "gigadrain", "leechseed", "psyshock", "substitute"], "doublesLevel": 94, "doublesMoves": ["helpinghand", "leafstorm", "pollenpuff", "protect"] diff --git a/data/random-battles/gen9/doubles-sets.json b/data/random-battles/gen9/doubles-sets.json index 8de6b658cf..946b35da98 100644 --- a/data/random-battles/gen9/doubles-sets.json +++ b/data/random-battles/gen9/doubles-sets.json @@ -1,6 +1,6 @@ { "venusaur": { - "level": 86, + "level": 87, "sets": [ { "role": "Offensive Protect", @@ -609,7 +609,7 @@ ] }, "weezinggalar": { - "level": 88, + "level": 89, "sets": [ { "role": "Doubles Bulky Attacker", @@ -907,7 +907,7 @@ "role": "Doubles Bulky Attacker", "movepool": ["Brave Bird", "Fire Blast", "Heat Wave", "Scorching Sands", "Tailwind"], "abilities": ["Flame Body"], - "teraTypes": ["Ground"] + "teraTypes": ["Ground"] } ] }, @@ -1674,7 +1674,7 @@ ] }, "shiftry": { - "level": 84, + "level": 83, "sets": [ { "role": "Doubles Wallbreaker", @@ -1702,7 +1702,7 @@ ] }, "gardevoir": { - "level": 83, + "level": 82, "sets": [ { "role": "Choice Item user", @@ -1736,7 +1736,7 @@ ] }, "breloom": { - "level": 84, + "level": 83, "sets": [ { "role": "Doubles Fast Attacker", @@ -1960,7 +1960,7 @@ ] }, "altaria": { - "level": 91, + "level": 90, "sets": [ { "role": "Doubles Bulky Attacker", @@ -2055,7 +2055,7 @@ ] }, "tropius": { - "level": 94, + "level": 93, "sets": [ { "role": "Doubles Support", @@ -2664,7 +2664,7 @@ ] }, "sneasler": { - "level": 77, + "level": 76, "sets": [ { "role": "Doubles Wallbreaker", @@ -3229,7 +3229,7 @@ ] }, "arceusdragon": { - "level": 73, + "level": 72, "sets": [ { "role": "Doubles Setup Sweeper", @@ -3313,7 +3313,7 @@ ] }, "arceusghost": { - "level": 72, + "level": 71, "sets": [ { "role": "Doubles Bulky Setup", @@ -4048,7 +4048,7 @@ ] }, "tornadustherian": { - "level": 77, + "level": 78, "sets": [ { "role": "Doubles Setup Sweeper", @@ -4292,7 +4292,7 @@ "abilities": ["Compound Eyes"], "teraTypes": ["Flying", "Steel"] }, - { + { "role": "Doubles Fast Attacker", "movepool": ["Hurricane", "Protect", "Sleep Powder", "Tailwind"], "abilities": ["Compound Eyes"], @@ -4401,7 +4401,7 @@ ] }, "sylveon": { - "level": 79, + "level": 78, "sets": [ { "role": "Bulky Protect", @@ -4663,7 +4663,7 @@ ] }, "gumshoos": { - "level": 93, + "level": 94, "sets": [ { "role": "Choice Item user", @@ -4781,7 +4781,7 @@ ] }, "lycanroc": { - "level": 85, + "level": 84, "sets": [ { "role": "Offensive Protect", @@ -4959,7 +4959,7 @@ ] }, "komala": { - "level": 92, + "level": 93, "sets": [ { "role": "Doubles Bulky Attacker", @@ -5775,7 +5775,7 @@ ] }, "calyrexshadow": { - "level": 63, + "level": 62, "sets": [ { "role": "Offensive Protect", @@ -5978,7 +5978,7 @@ "role": "Offensive Protect", "movepool": ["First Impression", "Knock Off", "Leech Life", "Protect"], "abilities": ["Tinted Lens"], - "teraTypes": ["Bug"] + "teraTypes": ["Bug"] } ] }, @@ -6141,7 +6141,7 @@ "abilities": ["Competitive"], "teraTypes": ["Flying", "Steel"] }, - { + { "role": "Doubles Wallbreaker", "movepool": ["Hurricane", "Protect", "Tailwind", "Thunderbolt"], "abilities": ["Competitive"], @@ -6358,7 +6358,7 @@ ] }, "orthworm": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Protect", diff --git a/data/random-battles/gen9/sets.json b/data/random-battles/gen9/sets.json index b869ed198e..c4f31db372 100644 --- a/data/random-battles/gen9/sets.json +++ b/data/random-battles/gen9/sets.json @@ -3294,7 +3294,7 @@ ] }, "rotomwash": { - "level": 83, + "level": 82, "sets": [ { "role": "Bulky Attacker", @@ -3812,7 +3812,7 @@ ] }, "arceusice": { - "level": 73, + "level": 72, "sets": [ { "role": "Bulky Setup", @@ -4115,7 +4115,7 @@ ] }, "krookodile": { - "level": 80, + "level": 79, "sets": [ { "role": "Fast Attacker", @@ -4132,7 +4132,7 @@ ] }, "scrafty": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Setup", @@ -5524,7 +5524,7 @@ ] }, "komala": { - "level": 89, + "level": 88, "sets": [ { "role": "Bulky Support", @@ -6488,7 +6488,7 @@ "role": "Bulky Attacker", "movepool": ["Aqua Step", "Close Combat", "Rapid Spin", "Roost", "Swords Dance"], "abilities": ["Moxie"], - "teraTypes": ["Steel"] + "teraTypes": ["Steel"] } ] }, @@ -7072,7 +7072,7 @@ ] }, "farigiraf": { - "level": 91, + "level": 90, "sets": [ { "role": "Bulky Support", @@ -7140,7 +7140,7 @@ ] }, "brutebonnet": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Attacker", diff --git a/data/random-battles/gen9/teams.ts b/data/random-battles/gen9/teams.ts index 266f9b65ec..40f8986395 100644 --- a/data/random-battles/gen9/teams.ts +++ b/data/random-battles/gen9/teams.ts @@ -433,7 +433,7 @@ export class RandomTeams { } } // Moves with secondary effects: - if (move.secondary || move.hasSheerForce) { + if (move.secondary || move.hasSheerForceBoost) { counter.add('sheerforce'); if (sereneGraceBenefits(move)) { counter.add('serenegrace'); diff --git a/data/random-battles/gen9regeneration/random-sets.json b/data/random-battles/gen9regeneration/random-sets.json new file mode 100644 index 0000000000..65e38f561d --- /dev/null +++ b/data/random-battles/gen9regeneration/random-sets.json @@ -0,0 +1,1093 @@ +{ + "venusaur": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["gigadrain", "leechseed", "sleeppowder", "dazzlinggleam", "substitute"], + "abilities": ["Misty Surge"] + }, + { + "role": "Bulky Attacker", + "movepool": ["psychic", "energyball", "knockoff", "sleeppowder", "dazzlinggleam", "synthesis"], + "abilities": ["Misty Surge"] + } + ] + }, + "charizard": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["suckerpunch", "smokytorment", "earthquake", "flareblitz", "swordsdance"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["ceaselessedge", "flareblitz", "earthquake", "roost", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "blastoise": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["hiddenpower", "rapidspin", "roar", "powerwash", "toxic", "thunderbolt", "thunderwave"], + "abilities": ["Motor Drive"], + "teraTypes": ["Ice"] + }, + { + "role": "Staller", + "movepool": ["haze", "hiddenpower", "protect", "powerwash", "scald", "toxic"], + "abilities": ["Motor Drive"], + "teraTypes": ["Ice"] + } + ] + }, + "butterfree": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "powdergale", "quiverdance", "sleeppowder", "hiddenpower", "strengthsap"], + "abilities": ["Tinted Lens", "Multiscale"], + "teraTypes": ["Ice"] + } + ] + }, + "beedrill": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["stickyweb", "knockoff", "poisonjab", "toxicspikes", "uturn"], + "abilities": ["Speed Boost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["swords dance", "knockoff", "poisonjab", "xscissor", "closecombat", "protect"], + "abilities": ["Speed Boost"] + } + ] + }, + "pidgeot": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "closecombat", "roost", "uturn"], + "abilities": ["wingsofvictory"] + } + ] + }, + "raticate": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "gunkshot", "pestspread", "protect", "closecombat", "uturn"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["crunch", "doubleedge", "gunkshot", "pestspread", "closecombat", "uturn"], + "abilities": ["Hustle", "Poison Touch"] + } + ] + }, + "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": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquatail", "coil", "earthquake", "gunkshot", "suckerpunch", "trailblaze"], + "abilities": ["Intimidate"] + + }, + { + "role": "Bulky Setup", + "movepool": ["coil", "earthquake", "gunkshot", "rest"], + "abilities": ["Shed Skin"] + } + ] + }, + "pikachu": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "grassknot", "hiddenpower", "knockoff", "surf", "voltswitch", "volttackle"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Ice"] + } + ] + }, + "raichu": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["encore", "hiddenpower", "knockoff", "nastyplot", "nuzzle", "thunderbolt", "voltswitch", "alluringvoice"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Ice"], + "teraTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "grassknot", "nastyplot", "surf", "thunderbolt", "voltswitch", "alluringvoice"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Ice"] + } + ] + }, + "sandslash": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Sand Rush"] + } + ] + }, + "nidoqueen": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "poisonjab", "sludgewave", "stealthrock", "toxicspikes"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthpower", "poisonjab", "stealthrock", "toxicspikes", "moonlight"], + "abilities": ["Sheer Force", "Natural Cure", "Poison Point"], + "preferredTypes": ["Ice"] + } + ] + }, + "nidoking": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "poisonjab", "sludgewave", "substitute", "throatchop"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["poisonjab", "earthquake", "headsmash", "superpower", "barbbarrage"], + "abilities": ["patriarch"] + } + ] + }, + "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", "hiddenpower", "nastyplot", "solarbeam"], + "abilities": ["Drought"], + "teraTypes": ["Ice"] + }, + { + "role": "Bulky Setup", + "movepool": ["fireblast", "nastyplot", "solarbeam", "substitute", "willowisp"], + "abilities": ["Drought"], + "preferredTypes": ["Grass"] + } + ] + }, + "wigglytuff": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["dazzlinggleam", "rapid spin", "healbell", "knockoff", "protect", "stealthrock", "thunderwave", "wish", "encore"], + "abilities": ["Ballooning"] + } + ] + }, + "vileplume": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "gigadrain", "hiddenpower", "sleeppowder", "sludgebomb", "strengthsap"], + "abilities": ["Effect Spore"], + "teraTypes": ["Ground"] + } + ] + }, + "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"] + } + ] + }, + "dugtrio": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "honeclaws", "stealthrock", "stoneedge", "suckerpunch"], + "abilities": ["Arena Trap"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "stoneedge", "suckerpunch"], + "abilities": ["Arena Trap"] + } + ] + }, + "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": ["hiddenpower", "hypervoice", "nastyplot", "shadowball"], + "abilities": ["Technician"], + "teraTypes": ["Fighting"] + } + ] + }, + "golduck": { + "level": 93, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "encore", "focusblast", "icebeam", "scald", "substitute"], + "abilities": ["Cloud Nine", "Swift Swim"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["calmmind", "encore", "focusblast", "hydropump", "icebeam"], + "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": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Liquidation", "Rain Dance"], + "abilities": ["Swift Swim"] + }, + { + "role": "AV Pivot", + "movepool": ["Circle Throw", "Close Combat", "Knock Off", "Liquidation"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Ice Punch", "Knock Off", "Liquidation", "Poison Jab"], + "abilities": ["Water Absorb"] + } + ] + }, + "alakazam": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzling gleam", "psychic", "psyshock", "shadowball"], + "abilities": ["Galaxy Brain", "Trace"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "dazzling gleam", "psychic", "psyshock", "brainwave", "shadowball", "substitute"], + "abilities": ["Galaxy Brain", "Trace"] + } + ] + }, + "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": ["hiddenpower", "knockoff", "powerwhip", "sleeppowder", "sludgebomb", "strengthsap", "suckerpunch"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["powerwhip", "sludgebomb", "sunnyday", "weatherball"], + "abilities": ["Chlorophyll"] + } + ] + }, + "tentacruel": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "knockoff", "rapidspin", "sludgebomb", "toxicspikes", "flip turn", "protect"], + "abilities": ["Tropical Current"] + } + ] + }, + "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": ["flareblitz", "highhorsepower", "morningsun", "wildcharge", "willowisp"], + "abilities": ["Flame Body", "Flash Fire"] + }, + { + "role": "Wallbreaker", + "movepool": ["flareblitz", "highhorsepower", "megahorn", "morningsun", "wildcharge"], + "abilities": ["Flash Fire"] + } + ] + }, + "slowbro": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Psychic Noise", "Psyshock", "Scald", "Slack Off", "Thunder Wave"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Press", "Fire Blast", "Future Sight", "Ice Beam", "Psychic Noise", "Scald", "Teleport"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Scald", "Slack Off"], + "abilities": ["Regenerator"] + } + ] + }, + "farfetchd": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["knockoff", "closecombat", "return", "swordsdance", "uturn"], + "abilities": ["Hustle", "Scrappy"] + } + ] + }, + "dodrio": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "highjumpkick", "knockoff", "earthquake", "swordsdance", "uturn"], + "abilities": ["ofafeather"], + "preferredTypes": ["Flying"] + } + ] + }, + "dewgong": { + "level": 96, + "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"] + }, + { + "role": "AV Pivot", + "movepool": ["Drain Punch", "Gunk Shot", "Ice Punch", "Knock Off", "Poison Jab", "Shadow Sneak"], + "abilities": ["Poison Touch"] + } + + ] + }, + "cloyster": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "splashback", "bulletpunch", "iciclecrash", "drillrun"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["splashback", "bulletpunch", "rapidspin", "toxic", "spikes", "toxicspikes", "teleport"], + "abilities": ["Regenerator"] + } + ] + }, + "gengar": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["shadowball", "icebeam", "illwind", "dazzlinggleam", "hiddenpower"], + "abilities": ["blackout"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Support", + "movepool": ["willowisp", "thunderwave", "hex", "illwind", "encore", "taunt", "destinybond"], + "abilities": ["blackout"] + } + ] + }, + "hypno": { + "level": 97, + "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": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "knockoff", "liquidation", "rockslide", "superpower", "swordsdance", "xscissor"], + "abilities": ["Sheer Force"] + } + ] + }, + "electrode": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["foulplay", "hiddenpower", "signalbeam", "taunt", "thunderbolt", "voltswitch"], + "abilities": ["Aftermath", "Static"], + "preferredTypes": ["Ice"], + "teraTypes": ["Ice"] + }, + { + "role": "Fast Support", + "movepool": ["hiddenpower", "lightscreen", "reflect", "thunderbolt", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Aftermath", "Static"], + "teraTypes": ["Ice"] + } + ] + }, + "exeggutor": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Leech Seed", "Psychic", "Psychic Noise", "Sleep Powder", "Sludge Bomb", "Substitute"], + "abilities": ["Harvest"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Leech Seed", "Protect", "Psychic Noise", "Substitute"], + "abilities": ["Harvest"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Giga Drain", "Psychic", "Psyshock", "Sleep Powder", "hiddenpower", "Substitute"], + "abilities": ["Harvest"], + "teraTypes": ["Fighting"] + } + ] + }, + "marowak": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "knockoff", "closecombat", "swordsdance", "vengefulbone", "stealthrock", "stoneedge"], + "abilities": ["Justified"] + } + ] + }, + "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": "Setup Sweeper", + "movepool": ["Drain Punch", "Ice Punch", "Knock Off", "Mach Punch", "Rapid Spin", "Swords Dance"], + "abilities": ["Iron Fist"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Knock Off", "Poison Jab", "Rapid Spin"], + "abilities": ["Iron Fist"] + }, + { + "role": "Bulky Support", + "movepool": ["Drain Punch", "Encore", "Knock Off", "Poison Jab", "Rapid Spin", "Taunt"], + "abilities": ["Iron Fist"] + } + ] + }, + "weezing": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rhydon": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "megahorn", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Lightning Rod"] + } + ] + }, + "chansey": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "kangaskhan": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["familyonslaught", "drainpunch", "earthquake", "u-turn", "suckerpunch", "dragonclaw"], + "abilities": ["Skill Link"] + }, + { + "role": "AV Pivot", + "movepool": ["familyonslaught", "drainpunch", "earthquake", "u-turn", "suckerpunch", "dragonclaw"], + "abilities": ["Skill Link"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "familyonslaught", "drainpunch", "earthquake", "dragonclaw"], + "abilities": ["Skill Link"] + } + ] + }, + "seaking": { + "level": 95, + "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", "flipturn", "thunderbolt"], + "abilities": ["Analytic", "Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["psyshock", "rapidspin", "recover", "scald", "flipturn", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "mrmime": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzlinggleam", "encore", "focusblast", "healingwish", "psychic", "psyshock", "shadowball", "thunderbolt"], + "abilities": ["Filter"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dazzlinggleam", "encore", "focusblast", "nastyplot", "psychic", "psyshock"], + "abilities": ["Filter"] + } + ] + }, + "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": 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": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Moxie"], + "preferredTypes": ["Ground"] + } + ] + }, + "tauros": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bodyslam", "headlongrush", "throatchop", "rockslide", "zenheadbutt", "escort"], + "abilities": ["Sheer Force"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "headlongrush", "stoneedge", "zenheadbutt", "escort"], + "abilities": ["Intimidate"] + } + ] + }, + "gyarados": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "crunch", "substitute", "liquidation"], + "abilities": ["Violent Abandon"] + } + ] + }, + "lapras": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Freeze-Dry", "Hydro Pump", "Ice Beam", "Sparkling Aria", "escort"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Freeze-Dry", "Wish", "Protect", "Sparkling Aria", "escort"], + "abilities": ["Water Absorb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Icicle Spear", "Waterfall"], + "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", "slipwaway"], + "abilities": ["trace"] + }, + { + "role": "Wallbreaker", + "movepool": ["hydropump", "slipaway", "icebeam", "hiddenpower", "alluringvoice"], + "abilities": ["Protean"], + "teraTypes": ["Grass"] + } + ] + }, + "jolteon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpower", "shadowball", "thunderbolt", "voltswitch", "alluring voice"], + "abilities": ["Protean"], + "teraTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpower", "signalbeam", "thunderbolt", "voltswitch", "calmmind", "substitute"], + "abilities": ["Trace"], + "teraTypes": ["Ice"] + } + ] + }, + "flareon": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["superpower", "doubleedge", "suckerpunch", "flareblitz", "flareout"], + "abilities": ["Protean"] + } + ] + }, + "omastar": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpower", "hydropump", "icebeam", "shellsmash"], + "abilities": ["Shell Armor", "Swift Swim"], + "teraTypes": ["Grass"] + } + ] + }, + "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"] + } + ] + }, + "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", "roost", "stealthrock", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Ground"] + } + ] + }, + "snorlax": { + "level": 83, + "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": 85, + "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", "hiddenpower", "roost", "toxic", "uturn"], + "abilities": ["Static"], + "teraTypes": ["Ice"] + } + ] + }, + "moltres": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "fireblast", "hurricane", "roost", "toxic", "uturn", "willowisp"], + "abilities": ["Flame Body"] + } + ] + }, + "dragonite": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "icespinner", "extremespeed", "uturn"], + "abilities": ["Lifeguard"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "hurricane", "fireblast", "roost" , "uturn", "thunderbolt"], + "abilities": ["Lifeguard"] + } + + ] + }, + "mewtwo": { + "level": 72, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "signalbeam"], + "abilities": ["Unnerve"] + } + ] + }, + "mew": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Knock Off", "Psychic", "Psychic Noise", "Stealth Rock", "Toxic Spikes", "U-turn", "Will-O-Wisp", "roost"], + "abilities": ["Synchronize"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Leech Life", "Psychic Fangs", "Swords Dance"], + "abilities": ["Synchronize"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Aura Sphere", "Bug Buzz", "Dark Pulse", "Earth Power", "Fire Blast", "Hydro Pump", "Nasty Plot", "Psychic", "Psyshock"], + "abilities": ["Synchronize"] + } + ] + }, + "porygon": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["triattack", "shadowball", "hiddenpower", "hyperbeam", "trick"], + "abilities": ["Download"], + "teraTypes": ["Fighting"] + } + ] + }, + "magneton": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Flash Cannon", "Thunderbolt", "Volt Switch", "hiddenpower"], + "abilities": ["Analytic", "Magnet Pull"], + "teraTypes": ["Ground"] + } + ] + } +} diff --git a/data/random-battles/gen9regeneration/teams.ts b/data/random-battles/gen9regeneration/teams.ts new file mode 100644 index 0000000000..fa44c2544f --- /dev/null +++ b/data/random-battles/gen9regeneration/teams.ts @@ -0,0 +1,1149 @@ +import { RandomTeams, type MoveCounter } from "../gen9/teams"; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'shoreup', 'slackoff', 'softboiled', 'strengthsap', 'synthesis', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'swordsdance', 'tidyup', 'victorydance', + 'filletaway', +]; +// Moves which boost Special Attack: +const SPECIAL_SETUP = [ + 'calmmind', 'chargebeam', 'geomancy', 'nastyplot', 'quiverdance', 'tailglow', 'takeheart', 'torchsong', 'filletaway', +]; +// Some moves that only boost Speed: +const SPEED_SETUP = [ + 'agility', 'autotomize', 'flamecharge', 'rockpolish', 'trailblaze', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'clangoroussoul', 'coil', 'cosmicpower', 'curse', 'dragondance', + 'filletaway', 'flamecharge', 'growth', 'honeclaws', 'howl', 'irondefense', 'meditate', 'nastyplot', 'noretreat', 'poweruppunch', 'quiverdance', + 'rockpolish', 'shellsmash', 'shiftgear', 'swordsdance', 'tailglow', 'takeheart', 'tidyup', 'trailblaze', 'trickroom', 'workup', 'victorydance', +]; +const SPEED_CONTROL = [ + 'electroweb', 'glare', 'icywind', 'lowsweep', 'quash', 'stringshot', 'tailwind', 'thunderwave', 'trickroom', +]; +// 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'], + ['leechseed', 'burningbulwark'], +]; + +/** 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', +]; +export class RandomRGTeams extends RandomTeams { + override 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 && 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('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], + [PROTECT_MOVES, PROTECT_MOVES], + ['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'], + + // These attacks are redundant with each other + ['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', 'thunder'], ['thunderbolt', 'discharge', 'thunder']], + ['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'], + ]; + + 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', 'strengthsap'], '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 + } + + override 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. + + // PMCM hardcodes (reserve these to when absolutely necessary, let the script do most of the work) + // forces Splash on Chi-Yu's moveset, since it uses Z-Splash + if (species.id === 'chiyu') { + if (movePool.includes('splash')) { + counter = this.addMove('splash', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + // enforces both primary stabs on Infernape + if (species.id === 'infernape' && movePool.includes('mindblown')) { + counter = this.addMove('mindblown', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + counter = this.addMove('alloutassault', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // 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 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 Flip Turn on pure Water-type Wallbreakers + if (types.length === 1 && types.includes('Water') && + role === 'Wallbreaker' && movePool.includes('flipturn')) { + counter = this.addMove('flipturn', 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 = ['auroraveil', '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 a single STAB for Moltres + if (species.id === 'moltres') { + const typeToEnforce = this.randomChance(1, 2) ? 'Fire' : 'Flying'; + + 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) && typeToEnforce === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(typeToEnforce)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Moltres already has STAB, so ignore this block + if (species.id === 'moltres') break; + // prevents Meowscarada from being enforced stab moves + if (species.id === 'meowscarada') break; + // 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 + // prevents Meowscarada from being enforced stab moves (since it has Protean and doesn't care) + if (!counter.get('stabtera') && !['Bulky Support', 'Doubles Support'].includes(role) && + !abilities.includes('Protean')) { + 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 + // prevents Meowscarada from being enforced stab moves (since it has Protean and doesn't care) + if (!counter.get('stab') && !abilities.includes('Protean')) { + 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 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; + } + + override 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 === 'drifblim') return moves.has('defog') ? 'Aftermath' : 'Unburden'; + // if (abilities.includes('Flash Fire') && this.dex.getEffectiveness('Fire', teraType) >= 1) return 'Flash Fire'; + 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); + } + + override 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 (species.id === 'pikachu') return 'Light Ball'; + if (role === 'AV Pivot') return 'Assault Vest'; + if (species.id === 'marowak') return 'Thick Club'; + if (ability === 'Tropical Current') return 'Flame Orb'; + if (ability === 'Blackout') return 'Heavy-Duty Boots'; + if (species.id === 'gyarados') return 'Sitrus Berry'; + 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') 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 === 'calyrexice' || species.id === 'necrozmaduskmane') && 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('Status')) return 'Lustrous Orb'; + if ( + moves.has('courtchange') || + !isDoubles && (species.id === 'luvdisc' || (species.id === 'terapagos' && !moves.has('rest'))) + ) return 'Heavy-Duty Boots'; + 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(['Expert Belt', 'Lum 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 (species.id === 'giratina' && !isDoubles && moves.has('rest') && !moves.has('sleeptalk')) return 'Leftovers'; + 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'; + } + + override 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: 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'].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'; + }); + // prevents Illumise (who can turn into Volbeat with Physical moves) from having 0 Atk EVs + if (noAttackStatMoves && !moves.has('transform') && this.format.mod !== 'partnersincrime' && + species.id !== 'illumise') { + evs.atk = 0; + ivs.atk = 0; + } + + if (moves.has('gyroball') || moves.has('trickroom')) { + evs.spe = 0; + ivs.spe = 0; + } + + // hidden power time + // Hidden Power Ice IVs + if ( + moves.has('hiddenpower') && + ( + species.id === 'ninetales' || species.id === 'electrode' || species.id === 'jolteon' || species.id === 'zapdos' || + species.id === 'blastoise' || species.id === 'butterfree' || species.id === 'pikachu' || species.id === 'raichu' + ) + ) { + ivs.atk = 0; + ivs.def = 30; + } + + // Hidden Power Ground IVs + if ( + moves.has('hiddenpower') && (species.id === 'vileplume' || species.id === 'magneton' || species.id === 'victreebel') + ) { + ivs.atk = 1; + ivs.spa = 30; + ivs.spd = 30; + } + + // Hidden Power Fighting IVs + if ( + moves.has('hiddenpower') && + (species.id === 'persian' || species.id === 'gengar' || species.id === 'exeggutor' || species.id === 'porygon') + ) { + ivs.atk = 1; + ivs.def = 30; + ivs.spa = 30; + ivs.spd = 30; + ivs.spe = 30; + } + + // Hidden Power Grass IVs + if ((species.id === 'vaporeon' || species.id === 'omastar') && moves.has('hiddenpower')) { + ivs.atk = 0; + ivs.spa = 30; + } + + // 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 || (this.random(2) ? 'F' : 'M')), + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + teraType, + role, + }; + } + + override randomSets: { [species: string]: RandomTeamsTypes.RandomSpeciesData } = require('./random-sets.json'); + + randomRGTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.getSeed(); + 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 } = {}; + 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; + + const pokemonList = 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); + if (hasMega && (baseSpecies === "Typhlosion" || baseSpecies === "Altaria" || baseSpecies === "Raticate")) continue; + 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 + // Added Abomasnow exception + // if (canMega && !species.isMega && species.id !== 'abomasnow') continue; + currentSpeciesPool.push(species); + } + // change const to let when enforcing certain mons for testing + const species = this.sample(currentSpeciesPool); + + // 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; + + // Limit one Mega per team + if (hasMega && species.isMega) 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; + + // TEMPORARILY ADJUSTING BALANCE OF THIS BLOCK -- TOO FEW POKEMON TO GENERATE TEAMS + // update: reverting these changes, but leaving just in case + if (!isMonotype && !this.forceMonotype) { + let skip = false; + + // Limit two of any type + // ADJUSTING TO 6 -- ADJUST BACK AFTER MORE POKEMON HAVE BEEN ADDED + for (const typeName of types) { + if (typeCount[typeName] >= 2 /* 6 */ * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + // ADJUSTING TO 6 -- ADJUST BACK AFTER MORE POKEMON HAVE BEEN ADDED + 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 /* 6 */ * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 /* 6 */ * Number(limitFactor)) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Count Dry Skin/Fluffy as Fire weaknesses + // ADJUSTING TO 6 -- ADJUST BACK AFTER MORE POKEMON HAVE BEEN ADDED + 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 /* 6 */ * limitFactor) continue; + } + + // Limit four weak to Freeze-Dry + // ADJUSTING TO 6 -- ADJUST BACK AFTER MORE POKEMON HAVE BEEN ADDED + if (weakToFreezeDry) { + if (!typeWeaknesses['Freeze-Dry']) typeWeaknesses['Freeze-Dry'] = 0; + if (typeWeaknesses['Freeze-Dry'] >= 4 /* 6 */ * 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; + + // testing code + // if (pokemon.length === 0 || this.maxTeamSize === 1) species = this.dex.species.get('Raticate-Mega'); + + 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); + } + + const item = this.dex.items.get(set.item); + + // 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) hasMega = true; + 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 RandomRGTeams; diff --git a/data/rulesets.ts b/data/rulesets.ts index 0bb49b3aac..36d53cc0ae 100644 --- a/data/rulesets.ts +++ b/data/rulesets.ts @@ -38,7 +38,7 @@ export const Rulesets: import('../sim/dex-formats').FormatDataTable = { effectType: 'ValidatorRule', name: 'Flat Rules', 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', 'Beat Up Nicknames Mod', 'Item Clause = 1', 'Adjust Level Down = 50', 'Picked Team Size = Auto', 'Cancel Mod'], + 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: { @@ -2518,12 +2518,13 @@ export const Rulesets: import('../sim/dex-formats').FormatDataTable = { const item = pokemon.getItem(); if (/^tr\d\d/i.test(item.name)) { const move = this.dex.moves.get(item.desc.split('move ')[1].split('.')[0]); + const pp = this.calculatePP(move); pokemon.moveSlots = (pokemon as any).baseMoveSlots = [ ...pokemon.baseMoveSlots, { id: move.id, move: move.name, - pp: move.pp * 8 / 5, - maxpp: move.pp * 8 / 5, + pp, + maxpp: pp, target: move.target, disabled: false, disabledSource: '', diff --git a/data/text/abilities.ts b/data/text/abilities.ts index 49a91d02da..a5990e6191 100644 --- a/data/text/abilities.ts +++ b/data/text/abilities.ts @@ -379,6 +379,11 @@ export const AbilitiesText: { [id: IDEntry]: AbilityText } = { 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.", shortDesc: "On switch-in, Attack or Sp. Atk is raised 1 stage based on the foes' weaker Defense.", }, + dragonize: { + name: "Dragonize", + 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.", + }, dragonsmaw: { name: "Dragon's Maw", shortDesc: "This Pokemon's offensive stat is multiplied by 1.5 while using a Dragon-type attack.", @@ -980,6 +985,10 @@ export const AbilitiesText: { [id: IDEntry]: AbilityText } = { desc: "This Pokemon's pulse moves have their power multiplied by 1.5. Heal Pulse restores 3/4 of a target's maximum HP, rounded half down.", shortDesc: "This Pokemon's pulse moves have 1.5x power. Heal Pulse heals 3/4 target's max HP.", }, + megasol: { + name: "Mega Sol", + shortDesc: "This Pokemon's moves are used as if the effects of Sunny Day were active.", + }, merciless: { name: "Merciless", shortDesc: "This Pokemon's attacks are critical hits if the target is poisoned.", @@ -1239,6 +1248,10 @@ export const AbilitiesText: { [id: IDEntry]: AbilityText } = { addItem: "#recycle", }, + piercingdrill: { + name: "Piercing Drill", + shortDesc: "This Pokemon's contact moves ignore a target's protection and deal 1/4 the usual damage.", + }, pixilate: { name: "Pixilate", desc: "This Pokemon's Normal-type moves become Fairy-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.", @@ -1755,6 +1768,10 @@ export const AbilitiesText: { [id: IDEntry]: AbilityText } = { desc: "This Pokemon's Speed is raised by 1 stage at the end of each full turn it has been on the field.", shortDesc: "This Pokemon's Speed is raised 1 stage at the end of each full turn on the field.", }, + spicyspray: { + name: "Spicy Spray", + shortDesc: "If this Pokemon is hit by an attack, the attacker becomes burned.", + }, stakeout: { name: "Stakeout", shortDesc: "This Pokemon's offensive stat is doubled against a target that switched in this turn.", diff --git a/server/chat-commands/admin.ts b/server/chat-commands/admin.ts index 2dea153104..9e5fdee50a 100644 --- a/server/chat-commands/admin.ts +++ b/server/chat-commands/admin.ts @@ -1627,126 +1627,7 @@ export const commands: Chat.ChatCommands = { throw new Chat.ErrorMessage("/editbattle - This is not a battle room."); } const battle = room.battle; - let cmd; - [cmd, target] = Utils.splitFirst(target, ' '); - if (cmd.endsWith(',')) cmd = cmd.slice(0, -1); - const targets = target.split(','); - if (targets.length === 1 && targets[0] === '') targets.pop(); - let player, pokemon, move, stat, value; - switch (cmd) { - case 'hp': - case 'h': - if (targets.length !== 3) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [player, pokemon, value] = targets.map(f => f.trim()); - [player, pokemon] = [player, pokemon].map(toID); - void battle.stream.write( - `>eval let p=pokemon('${player}', '${pokemon}');p.sethp(${parseInt(value)});` + - `if (p.isActive)battle.add('-damage',p,p.getHealth);` - ); - break; - case 'status': - case 's': - if (targets.length !== 3) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [player, pokemon, value] = targets.map(toID); - void battle.stream.write( - `>eval let pl=player('${player}');let p=pokemon(pl,'${pokemon}');p.setStatus('${value}');if (!p.isActive){battle.add('','please ignore the above');battle.add('-status',pl.active[0],pl.active[0].status,'[silent]');}` - ); - break; - case 'pp': - if (targets.length !== 4) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [player, pokemon, move, value] = targets.map(f => f.trim()); - [player, pokemon, move] = [player, pokemon, move].map(toID); - void battle.stream.write( - `>eval pokemon('${player}','${pokemon}').getMoveData('${move}').pp = ${parseInt(value)};` - ); - break; - case 'boost': - case 'b': - if (targets.length !== 4) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [player, pokemon, stat, value] = targets.map(f => f.trim()); - [player, pokemon, stat] = [player, pokemon, stat].map(toID); - void battle.stream.write( - `>eval let p=pokemon('${player}','${pokemon}');battle.boost({${stat}:${parseInt(value)}},p)` - ); - break; - case 'volatile': - case 'v': - if (targets.length !== 3) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [player, pokemon, value] = targets.map(toID); - void battle.stream.write( - `>eval pokemon('${player}','${pokemon}').addVolatile('${value}')` - ); - break; - case 'sidecondition': - case 'sc': - if (targets.length !== 2) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [player, value] = targets.map(toID); - void battle.stream.write(`>eval player('${player}').addSideCondition('${value}', 'debug')`); - break; - case 'fieldcondition': case 'pseudoweather': - case 'fc': - if (targets.length !== 1) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [value] = targets.map(toID); - void battle.stream.write(`>eval battle.field.addPseudoWeather('${value}', 'debug')`); - break; - case 'weather': - case 'w': - if (targets.length !== 1) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [value] = targets.map(toID); - void battle.stream.write(`>eval battle.field.setWeather('${value}', 'debug')`); - break; - case 'terrain': - case 't': - if (targets.length !== 1) { - this.errorReply("Incorrect command use"); - return this.parse('/help editbattle'); - } - [value] = targets.map(toID); - void battle.stream.write(`>eval battle.field.setTerrain('${value}', 'debug')`); - break; - case 'reseed': - if (targets.length !== 0) { - if (targets.length !== 4) { - this.errorReply("Seed must have 4 parts"); - return this.parse('/help editbattle'); - } - // this just tests for a 5-digit number, close enough to uint16 - if (!targets.every(val => /^[0-9]{1,5}$/.test(val))) { - this.errorReply("Seed parts much be unsigned 16-bit integers"); - return this.parse('/help editbattle'); - } - } - void battle.stream.write(`>reseed ${targets.join(',')}`); - if (targets.length) this.sendReply(`Reseeded to ${targets.join(',')}`); - break; - default: - this.errorReply(`Unknown editbattle command: ${cmd}`); - return this.parse('/help editbattle'); - } + void battle.stream.write(`>editbattle user:${user.name}, ${target}`); }, editbattlehelp: [ `/editbattle hp [player], [pokemon], [hp]`, diff --git a/server/chat-commands/avatars.tsx b/server/chat-commands/avatars.tsx index abc604f42a..83ac22c41f 100644 --- a/server/chat-commands/avatars.tsx +++ b/server/chat-commands/avatars.tsx @@ -740,7 +740,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`|raw|(${this.tr`Artist: `}Grapo)`); } if (OFFICIAL_AVATARS_FIFTY.has(avatar)) { - this.sendReply(`|raw|(${this.tr`Artist: `}Fifty Shades of Rez)`); + this.sendReply(`|raw|(${this.tr`Artist: `}Fifty Shades of Rez)`); } if (OFFICIAL_AVATARS_HORO.has(avatar)) { this.sendReply(`|raw|(${this.tr`Artist: `}Horo)`); diff --git a/server/chat-commands/core.ts b/server/chat-commands/core.ts index 2247792bd1..7c24e7367d 100644 --- a/server/chat-commands/core.ts +++ b/server/chat-commands/core.ts @@ -924,7 +924,9 @@ export const commands: Chat.ChatCommands = { } } - let resultString = Utils.escapeHTML(Teams.export(team, { hideStats })); + let resultString = Utils.escapeHTML(Teams.export(team, { + hideStats, useStatPoints: toID(battle.format).includes('champions'), + })); if (showAll) { resultString = `
${this.tr`View team`}${resultString}
`; } diff --git a/server/chat-commands/info.ts b/server/chat-commands/info.ts index 926174b18c..ffd8857c29 100644 --- a/server/chat-commands/info.ts +++ b/server/chat-commands/info.ts @@ -754,7 +754,9 @@ export const commands: Chat.ChatCommands = { 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.secondary || move.secondaries || move.hasSheerForceBoost) { + details["✓ Boosted by Sheer Force"] = ""; + } if (move.flags['contact'] && dex.gen >= 3) details["✓ Contact"] = ""; if (move.flags['sound'] && dex.gen >= 3) details["✓ Sound"] = ""; if (move.flags['bullet'] && dex.gen >= 6) details["✓ Bullet"] = ""; diff --git a/server/chat-plugins/datasearch.ts b/server/chat-plugins/datasearch.ts index 2526285def..140ef725c5 100644 --- a/server/chat-plugins/datasearch.ts +++ b/server/chat-plugins/datasearch.ts @@ -2118,7 +2118,7 @@ function runMovesearch(target: string, cmd: string, message: string, isTest: boo for (const flag in alts.flags) { if (flag === 'secondary') { - if (!(move.secondary || move.secondaries || move.hasSheerForce) === !alts.flags[flag]) { + if (!(move.secondary || move.secondaries || move.hasSheerForceBoost) === !alts.flags[flag]) { matched = true; break; } diff --git a/server/chat-plugins/github.ts b/server/chat-plugins/github.ts index e0dab37398..6953451e92 100644 --- a/server/chat-plugins/github.ts +++ b/server/chat-plugins/github.ts @@ -9,7 +9,7 @@ import { FS, Utils } from '../../lib'; const STAFF_REPOS = Config.staffrepos || [ 'pokemon-showdown', 'pokemon-showdown-client', 'Pokemon-Showdown-Dex', 'pokemon-showdown-loginserver', ]; -const COOLDOWN = 10 * 60 * 1000; +const COOLDOWN = 60 * 60 * 1000; export const gitData: GitData = JSON.parse(FS("config/chat-plugins/github.json").readIfExistsSync() || "{}"); diff --git a/server/chat-plugins/randombattles/ssb.tsx b/server/chat-plugins/randombattles/ssb.tsx index 10d2f329d3..ec309d5177 100644 --- a/server/chat-plugins/randombattles/ssb.tsx +++ b/server/chat-plugins/randombattles/ssb.tsx @@ -52,7 +52,9 @@ class SSBMoveHTML extends Chat.JSX.Component<{ sigMove: Move, dex: ModdedDex }> }; if (sigMove.isNonstandard === "Past" && dex.gen >= 8) details["Past Gens Only"] = "x"; - if (sigMove.secondary || sigMove.secondaries || sigMove.hasSheerForce) details["Boosted by Sheer Force"] = ""; + if (sigMove.secondary || sigMove.secondaries || sigMove.hasSheerForceBoost) { + 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"] = ""; diff --git a/server/rooms.ts b/server/rooms.ts index f95481c634..3c38659b90 100644 --- a/server/rooms.ts +++ b/server/rooms.ts @@ -1497,6 +1497,7 @@ export class GlobalRoomState { // 32 was previously used for Multi Battles if (format.bestOfDefault) displayCode |= 64; if (format.teraPreviewDefault) displayCode |= 128; + if (format.itemClauseDefault) displayCode |= 256; this.formatList += ',' + displayCode.toString(16); } return this.formatList; diff --git a/sim/TEAMS.md b/sim/TEAMS.md index 857ae73f21..86a38e9b2c 100644 --- a/sim/TEAMS.md +++ b/sim/TEAMS.md @@ -186,7 +186,7 @@ NICKNAME|SPECIES|ITEM|ABILITY|MOVES|NATURE|EVS|GENDER|IVS|SHINY|LEVEL|HAPPINESS, HP, Atk, Def, SpA, SpD, Spe. EVs left blank are 0, IVs left blank are 31. If all EVs or IVs are blank, the commas can all be left off. -- `EVS` represent AVs in Pokémon Let's Go. +- `EVS` represent AVs in Pokémon Let's Go and Stat Points in Pokémon Champions. - `IVS` represent DVs in Gen 1-2. The IV will be divided by 2 and rounded down, to become DVs (so the default of 31 IVs is converted to 15 DVs). diff --git a/sim/battle-actions.ts b/sim/battle-actions.ts index 8c8456a66e..eac1caae97 100644 --- a/sim/battle-actions.ts +++ b/sim/battle-actions.ts @@ -887,6 +887,7 @@ export class BattleActions { if (hit > 1 && pokemon.status === 'slp' && (!isSleepUsable || this.battle.gen === 4)) break; if (targets.every(target => !target?.hp)) break; move.hit = hit; + move.lastHit = move.hit === targetHits; if (move.smartTarget && targets.length > 1) { targetsCopy = [targets[hit - 1]]; damage = [damage[hit - 1]]; @@ -1137,12 +1138,17 @@ export class BattleActions { } const pokemonOriginalHP = pokemon.hp; if (damagedDamage.length && !isSecondary && !isSelf) { - this.battle.runEvent('DamagingHit', damagedTargets, pokemon, move, damagedDamage); - if (moveData.onAfterHit) { + if (this.battle.gen >= 5) { + this.battle.runEvent('DamagingHit', damagedTargets, pokemon, move, damagedDamage); + } + if (moveData.onAfterHit && pokemon.hp) { for (const t of damagedTargets) { this.battle.singleEvent('AfterHit', moveData, {}, t, pokemon, move); } } + if (this.battle.gen < 5) { + this.battle.runEvent('DamagingHit', damagedTargets, pokemon, move, damagedDamage); + } if (pokemon.hp && pokemon.hp <= pokemon.maxhp / 2 && pokemonOriginalHP > pokemon.maxhp / 2) { this.battle.runEvent('EmergencyExit', pokemon); } @@ -1823,9 +1829,9 @@ export class BattleActions { // 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) { + if (target.getMoveHitData(move).brokeProtect) { baseDamage = this.battle.modify(baseDamage, 0.25); - this.battle.add('-zbroken', target); + if (move.isZOrMaxPowered) this.battle.add('-zbroken', target); } // Generation 6-7 moves the check for minimum 1 damage after the final modifier... @@ -1872,13 +1878,12 @@ export class BattleActions { return altForme.name; } if (!item.megaStone) return null; - // Temporary hardcode until generation shift - if ((species.baseSpecies === "Floette" || species.baseSpecies === "Zygarde") && item.megaStone[species.name]) { - return item.megaStone[species.name]; - } + // TODO confirm with generation shift + let megaEvolution = item.megaStone[species.name]; + if (megaEvolution && this.dex.species.get(megaEvolution).gen >= 9) return megaEvolution; // a hacked-in Megazard X can mega evolve into Megazard Y, but not into Megazard X // FIXME: Change to species.name when champions comes - const megaEvolution = item.megaStone[species.baseSpecies]; + megaEvolution = item.megaStone[species.baseSpecies]; return megaEvolution && megaEvolution !== species.name ? megaEvolution : null; } @@ -1926,7 +1931,7 @@ export class BattleActions { terastallize(pokemon: Pokemon) { if (pokemon.species.baseSpecies === 'Ogerpon' && !['Fire', 'Grass', 'Rock', 'Water'].includes(pokemon.teraType) && (!pokemon.illusion || pokemon.illusion.species.baseSpecies === 'Ogerpon')) { - this.battle.hint("If Ogerpon Terastallizes into a type other than Fire, Grass, Rock, or Water, the game softlocks.", false, pokemon.side); + this.battle.hint("If Ogerpon Terastallizes into a type other than Fire, Grass, Rock, or Water, the game crashes.", false, pokemon.side); return; } diff --git a/sim/battle-stream.ts b/sim/battle-stream.ts index 67a5483c88..fda9a5b4dc 100644 --- a/sim/battle-stream.ts +++ b/sim/battle-stream.ts @@ -14,32 +14,6 @@ import { Teams } from './teams'; import { Battle, extractChannelMessages } from './battle'; import type { ChoiceRequest } from './side'; -/** - * Like string.split(delimiter), but only recognizes the first `limit` - * delimiters (default 1). - * - * `"1 2 3 4".split(" ", 2) => ["1", "2"]` - * - * `Utils.splitFirst("1 2 3 4", " ", 1) => ["1", "2 3 4"]` - * - * Returns an array of length exactly limit + 1. - */ -function splitFirst(str: string, delimiter: string, limit = 1) { - const splitStr: string[] = []; - while (splitStr.length < limit) { - const delimiterIndex = str.indexOf(delimiter); - if (delimiterIndex >= 0) { - splitStr.push(str.slice(0, delimiterIndex)); - str = str.slice(delimiterIndex + delimiter.length); - } else { - splitStr.push(str); - str = ''; - } - } - splitStr.push(str); - return splitStr; -} - export class BattleStream extends Streams.ObjectReadWriteStream { debug: boolean; noCatch: boolean; @@ -75,7 +49,7 @@ export class BattleStream extends Streams.ObjectReadWriteStream { _writeLines(chunk: string) { for (const line of chunk.split('\n')) { if (line.startsWith('>')) { - const [type, message] = splitFirst(line.slice(1), ' '); + const [type, message] = Utils.splitFirst(line.slice(1), ' '); this._writeLine(type, message); } } @@ -110,7 +84,7 @@ export class BattleStream extends Streams.ObjectReadWriteStream { this.battle = new Battle(options); break; case 'player': - const [slot, optionsText] = splitFirst(message, ' '); + const [slot, optionsText] = Utils.splitFirst(message, ' '); this.battle!.setPlayer(slot as SideID, JSON.parse(optionsText)); break; case 'p1': @@ -208,6 +182,14 @@ export class BattleStream extends Streams.ObjectReadWriteStream { battle.add('', '<<< error: ' + e.message); } break; + case 'editbattle': + try { + this.editbattle(message); + this.battle!.inputLog.push(`>editbattle ${message}`); + } catch (e: any) { + this.battle!.add('', '<<< error: ' + e.message); + } + break; case 'requestlog': this.push(`requesteddata\n${this.battle!.inputLog.join('\n')}`); break; @@ -234,6 +216,167 @@ export class BattleStream extends Streams.ObjectReadWriteStream { throw new Error(`Unrecognized command ">${type} ${message}"`); } } + editbattle(target: string) { + const battle = this.battle!; + const toID = battle.toID; + const getPlayer = (originalInput: string) => { + const input = toID(originalInput); + if (/^p[1-9]$/.test(input)) return battle.sides[parseInt(input.slice(1)) - 1]; + if (/^[1-9]$/.test(input)) return battle.sides[parseInt(input) - 1]; + for (const side of battle.sides) { + if (toID(side.name) === input) return side; + } + throw new Error(`Player "${originalInput}" not found`); + }; + const getPokemon = (side: string | Side, input: string) => { + if (typeof side === 'string') side = getPlayer(side)!; + + input = toID(input); + let out = null; + if (/^[1-9]$/.test(input)) out = side.pokemon[parseInt(input) - 1]; + else out = side.pokemon.find(p => p.baseSpecies.id === input || p.species.id === input); + if (!out) throw new Error(`Pokemon "${side.name} ${input}" not found`); + return out; + }; + const requireInt = (input: string) => { + const num = Number(input); + if (!Number.isInteger(num)) throw new Error(`"${input}" is not an integer`); + return num; + }; + + let user = null; + if (target.startsWith('user:')) { + [user, target] = Utils.splitFirst(target.slice(5), ','); + target = target.trim(); + } + battle.add('html', Utils.html`
${user ? `[${user}] ` : ''}/editbattle ${target}
`); + + let cmd; + [cmd, target] = Utils.splitFirst(target, ' '); + if (cmd.endsWith(',')) cmd = cmd.slice(0, -1); + const targets = target.split(','); + if (targets.length === 1 && targets[0] === '') targets.pop(); + switch (cmd) { + case 'hp': + case 'h': { + if (targets.length !== 3) { + battle.add("||<<< Error: Format should be: hp PLAYER, POKEMON, HP"); + return; + } + const [player, pokemon, hp] = targets; + const p = getPokemon(toID(player), toID(pokemon)); + p.sethp(requireInt(hp)); + if (p.isActive) battle.add('-damage', p, p.getHealth); + break; + } + case 'status': + case 's': { + if (targets.length !== 3) { + battle.add("||<<< Error: Format should be: status PLAYER, POKEMON, STATUS"); + return; + } + const [player, pokemon, status] = targets.map(toID); + const pl = getPlayer(player); + const p = getPokemon(player, pokemon); + p.setStatus(toID(status)); + if (!p.isActive) { + battle.add('', 'please ignore the above'); + battle.add('-status', pl.active[0], pl.active[0].status, '[silent]'); + } + break; + } + case 'pp': { + if (targets.length !== 4) { + battle.add("||<<< Error: Format should be: pp PLAYER, POKEMON, MOVE, PP"); + return; + } + const [player, pokemon, move, pp] = targets; + const p = getPokemon(player, pokemon); + const moveData = p.getMoveData(toID(move)) || p.moveSlots[parseInt(move) - 1]; + if (!moveData) { + battle.add(`||<<< Error: Move "${move}" not found for Pokemon "${player} ${pokemon}"`); + return; + } + moveData.pp = requireInt(pp); + break; + } + case 'boost': + case 'b': { + if (targets.length !== 4) { + battle.add("||<<< Error: Format should be: boost PLAYER, POKEMON, STAT, VALUE"); + return; + } + const [player, pokemon, stat, boostLevel] = targets; + const p = getPokemon(player, pokemon); + const statID = toID(stat) as BoostID; + if (!['atk', 'def', 'spa', 'spd', 'spe', 'accuracy', 'evasion'].includes(statID)) { + battle.add(`||<<< Error: Invalid boost "${stat}:${boostLevel}"`); + return; + } + battle.boost({ [statID]: requireInt(boostLevel) }, p); + break; + } + case 'volatile': + case 'v': { + if (targets.length !== 3) { + battle.add("||<<< Error: Format should be: volatile PLAYER, POKEMON, VOLATILE"); + return; + } + const [player, pokemon, volatile] = targets; + const p = getPokemon(player, pokemon); + p.addVolatile(toID(volatile)); + break; + } + case 'sidecondition': + case 'sc': { + if (targets.length !== 2) { + battle.add("||<<< Error: Format should be: sidecondition PLAYER, SIDECONDITION"); + return; + } + const [player, sideCondition] = targets; + const side = getPlayer(player); + side.addSideCondition(toID(sideCondition), 'debug'); + break; + } + case 'fieldcondition': case 'pseudoweather': + case 'fc': { + if (targets.length !== 1) { + battle.add("||<<< Error: Format should be: fieldcondition FIELD, PSEUDOWEATHER"); + return; + } + const [pseudoWeather] = targets; + battle.field.addPseudoWeather(toID(pseudoWeather), 'debug'); + break; + } + case 'weather': + case 'w': { + if (targets.length !== 1) { + battle.add("||<<< Error: Format should be: weather FIELD, WEATHER"); + return; + } + const [weather] = targets; + battle.field.setWeather(toID(weather), 'debug'); + break; + } + case 'terrain': + case 't': { + if (targets.length !== 1) { + battle.add("||<<< Error: Format should be: terrain FIELD, TERRAIN"); + return; + } + const [terrain] = targets; + battle.field.setTerrain(toID(terrain), 'debug'); + break; + } + case 'reseed': { + battle.resetRNG(target as PRNGSeed); + if (targets.length) battle.add(`||Reseeded to ${targets.join(',')}`); + break; + } + default: + throw new Error(`Unknown editbattle command: ${cmd}`); + } + } override _writeEnd() { // if battle already ended, we don't need to pushEnd. @@ -286,7 +429,7 @@ export function getPlayerStreams(stream: BattleStream) { }; (async () => { for await (const chunk of stream) { - const [type, data] = splitFirst(chunk, `\n`); + const [type, data] = Utils.splitFirst(chunk, `\n`); switch (type) { case 'update': const channelMessages = extractChannelMessages(data, [-1, 0, 1, 2, 3, 4]); @@ -298,7 +441,7 @@ export function getPlayerStreams(stream: BattleStream) { streams.p4.push(channelMessages[4].join('\n')); break; case 'sideupdate': - const [side, sideData] = splitFirst(data, `\n`); + const [side, sideData] = Utils.splitFirst(data, `\n`); streams[side as SideID].push(sideData); break; case 'end': @@ -343,7 +486,7 @@ export abstract class BattlePlayer { receiveLine(line: string) { if (this.debug) console.log(line); if (!line.startsWith('|')) return; - const [cmd, rest] = splitFirst(line.slice(1), '|'); + const [cmd, rest] = Utils.splitFirst(line.slice(1), '|'); if (cmd === 'request') return this.receiveRequest(JSON.parse(rest)); if (cmd === 'error') return this.receiveError(new Error(rest)); this.log.push(line); diff --git a/sim/battle.ts b/sim/battle.ts index a2b5909d36..171f5ad7c4 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -604,7 +604,7 @@ export class Battle { this.debug(eventid + ' handler suppressed by Mold Breaker'); return relayVar; } - if (eventid !== 'Start' && eventid !== 'TakeItem' && effect.effectType === 'Item' && + if (eventid !== 'Start' && eventid !== 'TakeItem' && eventid !== 'SetAbility' && effect.effectType === 'Item' && (target instanceof Pokemon) && target.ignoringItem()) { this.debug(eventid + ' handler suppressed by Embargo, Klutz or Magic Room'); return relayVar; @@ -1297,6 +1297,17 @@ export class Battle { return !!move.flags['contact']; } + checkMoveBreaksProtect(move: ActiveMove, attacker: Pokemon, defender: Pokemon, blockStatus = true) { + if (move.flags['protect'] && (move.category !== 'Status' || blockStatus)) { + return false; + } + if ((move.isZOrMaxPowered || attacker.hasAbility('piercingdrill')) && + !['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) { + defender.getMoveHitData(move).brokeProtect = true; + } + return true; + } + skillSwap(source: Pokemon, target: Pokemon) { if (source.fainted || target.fainted) return false; if (source.volatiles['dynamax'] || target.volatiles['dynamax']) return false; @@ -2373,6 +2384,13 @@ export class Battle { return stat; } + calculatePP(move: Move, ppUps = 3) { + if (move.noPPBoosts) return move.pp; + let pp = move.pp * (5 + ppUps) / 5; + if (this.gen <= 2 && move.pp === 40) pp -= ppUps; + return pp; + } + finalModify(relayVar: number) { relayVar = this.modify(relayVar, this.event.modifier); this.event.modifier = 1; @@ -2644,8 +2662,9 @@ export class Battle { // (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, null, null, priority); - priority = this.runEvent('ModifyPriority', action.pokemon, null, move, priority); + const target = this.getTarget(action.pokemon, action.move, action.targetLoc); + 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; @@ -2654,7 +2673,13 @@ export class Battle { if (!action.pokemon) { action.speed = 1; } else { - action.speed = action.pokemon.getActionSpeed(); + if (this.gen <= 4 && action.choice === 'move' && action.fractionalPriority < 0) { + // in Gen 4, Pokemon with decrease fractional priority act in reverse speed order + // ignores Trick Room, does not ignore boosts and Simple + action.speed = -action.pokemon.getStat('spe', false, false); + } else { + action.speed = action.pokemon.getActionSpeed(); + } } } @@ -3194,8 +3219,8 @@ export class Battle { ivs: null!, level: set.level, }; - if (this.gen === 8) newSet.gigantamax = set.gigantamax; - if (this.gen === 9) newSet.teraType = set.teraType; + if (this.gen === 8 && !this.ruleTable.has('dynamaxclause')) newSet.gigantamax = set.gigantamax; + if (this.gen === 9 && !this.ruleTable.has('terastalclause')) 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; diff --git a/sim/dex-conditions.ts b/sim/dex-conditions.ts index f900795ad6..ffd3e9ecde 100644 --- a/sim/dex-conditions.ts +++ b/sim/dex-conditions.ts @@ -53,10 +53,11 @@ export interface EventMethods { onEntryHazard?: (this: Battle, pokemon: Pokemon) => void; onFaint?: CommonHandlers['VoidEffect']; onFlinch?: ((this: Battle, pokemon: Pokemon) => boolean | void) | boolean; - onFractionalPriority?: CommonHandlers['ModifierSourceMove'] | -0.1; + onFractionalPriority?: CommonHandlers['ModifierSourceMove'] | -0.1 | -0.2; onHit?: MoveEventMethods['onHit']; onImmunity?: (this: Battle, type: string, pokemon: Pokemon) => void; onLockMove?: string | ((this: Battle, pokemon: Pokemon) => void | string); + onSemiLockMove?: string | ((this: Battle, pokemon: Pokemon) => void | string); onMaybeTrapPokemon?: (this: Battle, pokemon: Pokemon) => void; onModifyAccuracy?: CommonHandlers['ModifierMove']; onModifyAtk?: CommonHandlers['ModifierSourceMove']; @@ -86,8 +87,8 @@ export interface EventMethods { ) => Pokemon | void; onResidual?: (this: Battle, target: Pokemon, source: Pokemon, effect: Effect) => void; onSetAbility?: ( - this: Battle, ability: string, target: Pokemon, source: Pokemon, effect: Effect - ) => null | void; + (this: Battle, ability: string, target: Pokemon, source: Pokemon, effect: Effect) => null | void + ) | boolean; onSetStatus?: ( this: Battle, status: Condition, target: Pokemon, source: Pokemon, effect: Effect ) => boolean | null | void; @@ -449,6 +450,7 @@ export interface EventMethods { onChangeBoostPriority?: number; onDamagePriority?: number; onDragOutPriority?: number; + onDisableMovePriority?: number; onEffectivenessPriority?: number; onFoeBasePowerPriority?: number; onFoeBeforeMovePriority?: number; diff --git a/sim/dex-formats.ts b/sim/dex-formats.ts index b0b4a5fcd8..5303b95b86 100644 --- a/sim/dex-formats.ts +++ b/sim/dex-formats.ts @@ -281,6 +281,9 @@ export class RuleTable extends Map { if (format.mod === 'gen7letsgo') { this.evLimit = this.has('lgpenormalrules') ? 0 : null; } + if (format.mod === 'champions') { + this.evLimit = 66; + } // Gen 6 hackmons also has a limit, which is currently implemented // at the appropriate format. } @@ -455,6 +458,7 @@ export class Format extends BasicEffect implements Readonly { declare readonly searchShow?: boolean; declare readonly bestOfDefault?: boolean; declare readonly teraPreviewDefault?: boolean; + declare readonly itemClauseDefault?: boolean; declare readonly threads?: string[]; declare readonly tournamentShow?: boolean; declare readonly checkCanLearn?: ( @@ -622,6 +626,7 @@ export class DexFormats { if (format.tournamentShow === undefined) format.tournamentShow = true; if (format.bestOfDefault === undefined) format.bestOfDefault = false; if (format.teraPreviewDefault === undefined) format.teraPreviewDefault = false; + if (format.itemClauseDefault === undefined) format.itemClauseDefault = 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}'`); diff --git a/sim/dex-items.ts b/sim/dex-items.ts index 137b27cd42..4546cffe9c 100644 --- a/sim/dex-items.ts +++ b/sim/dex-items.ts @@ -16,6 +16,7 @@ export interface ItemData extends Partial, PokemonEventMethods { export type ModdedItemData = ItemData | Partial> & { inherit: true, onCustap?: (this: Battle, pokemon: Pokemon) => void, + onWhiteHerb?: (this: Battle, pokemon: Pokemon) => void, condition?: ModdedConditionData, }; diff --git a/sim/dex-moves.ts b/sim/dex-moves.ts index 438d7c4901..e964450063 100644 --- a/sim/dex-moves.ts +++ b/sim/dex-moves.ts @@ -210,7 +210,10 @@ export interface MoveData extends EffectData, MoveEventMethods, HitEffect { secondary?: SecondaryEffect; secondaries?: SecondaryEffect[]; self?: SecondaryEffect; - hasSheerForce?: boolean; + /** + * Boosted by Sheer Force without suppressing secondary effects. + */ + hasSheerForceBoost?: boolean; // Hit effect modifiers // -------------------- @@ -299,7 +302,7 @@ interface MoveHitData { * Is this move a Z-Move that broke the target's protection? * (does 0.25x regular damage) */ - zBrokeProtect: boolean, + brokeProtect: boolean, }; } @@ -384,10 +387,10 @@ export class DataMove extends BasicEffect implements Readonly