From b43fb07a541ea5fb4e759200b1505c3fd994c06a Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 00:07:24 -0700 Subject: [PATCH 01/11] Add December 2023 OMotM/RoA Spotlight --- config/formats.ts | 529 +++++++++++++++++++------------------ data/aliases.ts | 4 +- data/mods/gen8/rulesets.ts | 2 + data/rulesets.ts | 4 + 4 files changed, 285 insertions(+), 254 deletions(-) diff --git a/config/formats.ts b/config/formats.ts index a0cf40b1c761..30e007d1cc9a 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -673,86 +673,187 @@ export const Formats: FormatList = [ column: 2, }, { - name: "[Gen 9] Shared Power", - desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, + name: "[Gen 9] Tier Shift", + desc: `Pokémon below OU get their stats, excluding HP, boosted. UU/RUBL get +15, RU/NUBL get +20, NU/PUBL get +25, and PU or lower get +30.`, threads: [ - `• Shared Power`, + `• Use/ts [pokemon] to see their adjusted stats.`, + `• Tier Shift`, ], - mod: 'sharedpower', - // searchShow: false, - ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'], + mod: 'gen9', + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Terastal Clause', 'Tier Shift Mod', 'Min Source Gen = 9'], banlist: [ - 'Arceus', 'Calyrex-Shadow', 'Chien-Pao', 'Clefable', 'Flutter Mane', 'Greninja', 'Kingambit', 'Koraidon', 'Magearna', - 'Miraidon', 'Ogerpon-Hearthflame', 'Rayquaza', 'Shaymin-Sky', 'Zacian', 'Zacian-Crowned', 'Arena Trap', 'Chlorophyll', - 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Regenerator', 'Shadow Tag', 'Speed Boost', 'Stench', 'Swift Swim', 'Unburden', - 'King\'s Rock', 'Leppa Berry', 'Razor Fang', 'Starf Berry', 'Baton Pass', 'Extreme Speed', 'Last Respects', + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Eternatus', 'Groudon', 'Hoopa-Unbound', 'Koraidon', 'Kyogre', 'Medicham', 'Mewtwo', 'Miraidon', + 'Rayquaza', 'Zacian', 'Zacian-Crowned', 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'Heat Rock', 'Light Clay', 'Baton Pass', 'Last Respects', + 'Shed Tail', + ], + unbanlist: ['Arceus-Bug'], + }, + { + name: "[Gen 9] Sketchmons", + desc: `Pokémon can learn one of any move they don't normally learn.`, + threads: [ + `• Sketchmons`, + ], + + mod: 'gen9', + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Items Clause', 'Sketchmons Move Legality', 'Min Source Gen = 9'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Dialga-Base', 'Dragapult', + 'Enamorus-Base', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina-Base', 'Groudon', 'Gliscor', 'Greninja', 'Iron Bundle', 'Komala', 'Koraidon', + 'Kyogre', 'Landorus-Base', 'Magearna', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia-Base', 'Rayquaza', 'Regieleki', + 'Roaring Moon', 'Scovillain', 'Shaymin-Sky', 'Sneasler', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu', 'Urshifu-Rapid-Strike', 'Volcarona', + 'Zacian-Base', 'Zamazenta-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', 'Stench', 'Booster Energy', 'King\'s Rock', 'Baton Pass', + 'Last Respects', 'Shed Tail', ], - unbanlist: ['Arceus-Bug', 'Arceus-Dragon', 'Arceus-Fire', 'Arceus-Ice', 'Arceus-Psychic'], restricted: [ - 'Armor Tail', 'Comatose', 'Contrary', 'Dazzling', 'Fur Coat', 'Gale Wings', 'Good as Gold', 'Huge Power', 'Illusion', 'Imposter', - 'Magic Bounce', 'Magic Guard', 'Mold Breaker', 'Multiscale', 'Poison Heal', 'Prankster', 'Protosynthesis', 'Pure Power', 'Purifying Salt', - 'Queenly Majesty', 'Quick Draw', 'Quick Feet', 'Sand Rush', 'Simple', 'Slush Rush', 'Stakeout', 'Stamina', 'Sturdy', 'Surge Surfer', - 'Tinted Lens', 'Unaware', + 'Astral Barrage', 'Belly Drum', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Extreme Speed', 'Gigaton Hammer', 'Glacial Lance', 'Fillet Away', + 'Lumina Crash', 'No Retreat', 'Quiver Dance', 'Rage Fist', 'Revival Blessing', 'Shell Smash', 'Shift Gear', 'Tail Glow', 'Transform', 'V-create', + 'Victory Dance', 'Wicked Blow', ], - onValidateRule() { - if (this.format.gameType !== 'singles') { - throw new Error(`Shared Power currently does not support ${this.format.gameType} battles.`); + }, + { + name: "[Gen 9] Partners in Crime", + desc: `Doubles-based metagame where both active ally Pokémon share abilities and moves.`, + threads: [ + `• Partners in Crime`, + ], + + mod: 'partnersincrime', + gameType: 'doubles', + ruleset: ['Standard Doubles'], + banlist: [ + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Cresselia', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Enamorus-Base', + 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Koraidon', 'Kyogre', 'Magearna', 'Mewtwo', 'Miraidon', 'Palkia', + 'Palkia-Origin', 'Rayquaza', 'Urshifu', 'Urshifu-Rapid-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Dancer', + 'Huge Power', 'Moody', 'Pure Power', 'Serene Grace', 'Shadow Tag', 'Bright Powder', 'King\'s Rock', 'Razor Fang', 'Ally Switch', + 'Last Respects', 'Revival Blessing', 'Swagger', + ], + onBegin() { + for (const pokemon of this.getAllPokemon()) { + pokemon.m.trackPP = new Map(); } }, - getSharedPower(pokemon) { - const sharedPower = new Set(); - for (const ally of pokemon.side.pokemon) { - if (pokemon.battle.ruleTable.isRestricted(`ability:${ally.baseAbility}`)) continue; - if (ally.previouslySwitchedIn > 0) { - if (pokemon.battle.dex.currentMod !== 'sharedpower' && ['trace', 'mirrorarmor'].includes(ally.baseAbility)) { - sharedPower.add('noability'); - continue; + onBeforeSwitchIn(pokemon) { + pokemon.m.curMoves = this.dex.deepClone(pokemon.moves); + let ngas = false; + for (const poke of this.getAllActive()) { + if (this.toID(poke.ability) === ('neutralizinggas' as ID)) { + ngas = true; + break; + } + } + const BAD_ABILITIES = ['trace', 'imposter', 'neutralizinggas', 'illusion', 'wanderingspirit']; + const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); + if (ally && ally.ability !== pokemon.ability) { + if (!pokemon.m.innate && !BAD_ABILITIES.includes(this.toID(ally.ability))) { + pokemon.m.innate = 'ability:' + ally.ability; + if (!ngas || ally.getAbility().isPermanent || pokemon.hasItem('Ability Shield')) { + pokemon.volatiles[pokemon.m.innate] = {id: pokemon.m.innate, target: pokemon}; + pokemon.m.startVolatile = true; + } + } + if (!ally.m.innate && !BAD_ABILITIES.includes(this.toID(pokemon.ability))) { + ally.m.innate = 'ability:' + pokemon.ability; + if (!ngas || pokemon.getAbility().isPermanent || ally.hasItem('Ability Shield')) { + ally.volatiles[ally.m.innate] = {id: ally.m.innate, target: ally}; + ally.m.startVolatile = true; } - sharedPower.add(ally.baseAbility); } } - sharedPower.delete(pokemon.baseAbility); - return sharedPower; }, - onBeforeSwitchIn(pokemon) { - let format = this.format; - if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); - for (const ability of format.getSharedPower!(pokemon)) { - const effect = 'ability:' + ability; - pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; - if (!pokemon.m.abils) pokemon.m.abils = []; - if (!pokemon.m.abils.includes(effect)) pokemon.m.abils.push(effect); + // Starting innate abilities in scripts#actions + onSwitchOut(pokemon) { + if (pokemon.m.innate) { + pokemon.removeVolatile(pokemon.m.innate); + delete pokemon.m.innate; + } + const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); + if (ally && ally.m.innate) { + ally.removeVolatile(ally.m.innate); + delete ally.m.innate; } }, - onSwitchInPriority: 2, - onSwitchIn(pokemon) { - let format = this.format; - if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); - for (const ability of format.getSharedPower!(pokemon)) { - if (ability === 'noability') { - this.hint(`Mirror Armor and Trace break in Shared Power formats that don't use Shared Power as a base, so they get removed from non-base users.`); - } - const effect = 'ability:' + ability; - delete pokemon.volatiles[effect]; - pokemon.addVolatile(effect); + onFaint(pokemon) { + if (pokemon.m.innate) { + pokemon.removeVolatile(pokemon.m.innate); + delete pokemon.m.innate; + } + const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); + if (ally && ally.m.innate) { + ally.removeVolatile(ally.m.innate); + delete ally.m.innate; } }, }, + + // Other Metagames + /////////////////////////////////////////////////////////////////// + + { + section: "Other Metagames", + column: 2, + }, + { + name: "[Gen 9] Almost Any Ability", + desc: `Pokémon have access to almost any ability.`, + threads: [ + `• Almost Any Ability`, + `• AAA Resources`, + ], + + mod: 'gen9', + ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Enamorus-Base', + 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Hariyama', 'Hoopa-Unbound', 'Iron Bundle', 'Iron Hands', + 'Iron Valiant', 'Koraidon', 'Kyogre', 'Magearna', 'Mewtwo', 'Miraidon', 'Noivern', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Shaymin-Sky', + 'Slaking', 'Sneasler', 'Spectrier', 'Ursaluna-Base', 'Urshifu', 'Urshifu-Rapid-Strike', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', + 'Zoroark-Hisui', 'Arena Trap', 'Comatose', 'Contrary', 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', + 'Imposter', 'Innards Out', 'Magic Bounce', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', + 'Pure Power', 'Shadow Tag', 'Simple', 'Speed Boost', 'Stakeout', 'Unburden', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Razor Fang', + 'Baton Pass', 'Last Respects', 'Revival Blessing', 'Shed Tail', + ], + }, + { + name: "[Gen 9] Balanced Hackmons", + desc: `Anything directly hackable onto a set (EVs, IVs, forme, ability, item, and move) and is usable in local battles is allowed.`, + threads: [ + `• Balanced Hackmons`, + `• BH Resources`, + ], + + mod: 'gen9', + ruleset: [ + 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', + 'Endless Battle Clause', 'Hackmons Forme Legality', 'Species Reveal Clause', 'Terastal Clause', + ], + banlist: [ + 'Calyrex-Shadow', 'Gengar-Mega', 'Groudon-Primal', 'Mewtwo-Mega-Y', 'Rayquaza-Mega', 'Regigigas', 'Shedinja', 'Slaking', 'Arena Trap', + 'Comatose', 'Contrary', 'Gorilla Tactics', 'Hadron Engine', 'Huge Power', 'Illusion', 'Innards Out', 'Libero', 'Magnet Pull', 'Moody', + 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', 'Protean', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', + 'Wonder Guard', 'Baton Pass', 'Belly Drum', 'Ceaseless Edge', 'Dire Claw', 'Fillet Away', 'Imprison', 'Last Respects', 'Lumina Crash', + 'Quiver Dance', 'Rage Fist', 'Revival Blessing', 'Shed Tail', 'Substitute', 'Shell Smash', 'Tail Glow', + ], + }, { - name: "[Gen 9] Protean Palace", - desc: `Every Pokémon innately has Protean on top of their current ability.`, + name: "[Gen 9] Godly Gift", + desc: `Each Pokémon receives one base stat from a God (Restricted Pokémon) depending on its position in the team. If there is no restricted Pokémon, it uses the Pokémon in the first slot.`, threads: [ - `• Protean Palace`, + `• Godly Gift`, + `• Godly Gift Resources`, ], - mod: "gen9", - ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Protean Palace Mod', 'Min Source Gen = 9'], + mod: 'gen9', + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Godly Gift Mod', 'Min Source Gen = 9'], banlist: [ - 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Espathra', 'Eternatus', - 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Iron Bundle', 'Iron Valiant', 'Koraidon', 'Kyogre', 'Landorus-Base', 'Mewtwo', - 'Miraidon', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Shaymin-Sky', 'Spectrier', 'Urshifu-Base', 'Zacian', 'Zacian-Crowned', - 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', 'Last Respects', 'Shed Tail', + 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Koraidon', 'Miraidon', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', + 'Swift Swim', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + restricted: [ + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Chi-Yu', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Iron Bundle', 'Kingambit', + 'Kyogre', 'Magearna', 'Mewtwo', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Shaymin-Sky', 'Toxapex', 'Ursaluna', + 'Ursaluna-Bloodmoon', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', ], }, { @@ -949,76 +1050,6 @@ export const Formats: FormatList = [ this.add('-start', pokemon, donorTemplate.name, '[silent]'); }, }, - - // Other Metagames - /////////////////////////////////////////////////////////////////// - - { - section: "Other Metagames", - column: 2, - }, - { - name: "[Gen 9] Almost Any Ability", - desc: `Pokémon have access to almost any ability.`, - threads: [ - `• Almost Any Ability`, - `• AAA Resources`, - ], - - mod: 'gen9', - ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], - banlist: [ - 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Enamorus-Base', - 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Hariyama', 'Hoopa-Unbound', 'Iron Bundle', 'Iron Hands', - 'Iron Valiant', 'Koraidon', 'Kyogre', 'Magearna', 'Mewtwo', 'Miraidon', 'Noivern', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Shaymin-Sky', - 'Slaking', 'Sneasler', 'Spectrier', 'Ursaluna-Base', 'Urshifu', 'Urshifu-Rapid-Strike', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', - 'Zoroark-Hisui', 'Arena Trap', 'Comatose', 'Contrary', 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', - 'Imposter', 'Innards Out', 'Magic Bounce', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', - 'Pure Power', 'Shadow Tag', 'Simple', 'Speed Boost', 'Stakeout', 'Unburden', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Razor Fang', - 'Baton Pass', 'Last Respects', 'Revival Blessing', 'Shed Tail', - ], - }, - { - name: "[Gen 9] Balanced Hackmons", - desc: `Anything directly hackable onto a set (EVs, IVs, forme, ability, item, and move) and is usable in local battles is allowed.`, - threads: [ - `• Balanced Hackmons`, - `• BH Resources`, - ], - - mod: 'gen9', - ruleset: [ - 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', - 'Endless Battle Clause', 'Hackmons Forme Legality', 'Species Reveal Clause', 'Terastal Clause', - ], - banlist: [ - 'Calyrex-Shadow', 'Gengar-Mega', 'Groudon-Primal', 'Mewtwo-Mega-Y', 'Rayquaza-Mega', 'Regigigas', 'Shedinja', 'Slaking', 'Arena Trap', - 'Comatose', 'Contrary', 'Gorilla Tactics', 'Hadron Engine', 'Huge Power', 'Illusion', 'Innards Out', 'Libero', 'Magnet Pull', 'Moody', - 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', 'Protean', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', - 'Wonder Guard', 'Baton Pass', 'Belly Drum', 'Ceaseless Edge', 'Dire Claw', 'Fillet Away', 'Imprison', 'Last Respects', 'Lumina Crash', - 'Quiver Dance', 'Rage Fist', 'Revival Blessing', 'Shed Tail', 'Substitute', 'Shell Smash', 'Tail Glow', - ], - }, - { - name: "[Gen 9] Godly Gift", - desc: `Each Pokémon receives one base stat from a God (Restricted Pokémon) depending on its position in the team. If there is no restricted Pokémon, it uses the Pokémon in the first slot.`, - threads: [ - `• Godly Gift`, - `• Godly Gift Resources`, - ], - - mod: 'gen9', - ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Godly Gift Mod', 'Min Source Gen = 9'], - banlist: [ - 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Koraidon', 'Miraidon', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', - 'Swift Swim', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', - ], - restricted: [ - 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Chi-Yu', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Iron Bundle', 'Kingambit', - 'Kyogre', 'Magearna', 'Mewtwo', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Shaymin-Sky', 'Toxapex', 'Ursaluna', - 'Ursaluna-Bloodmoon', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', - ], - }, { name: "[Gen 9] Mix and Mega", desc: `Mega evolve any Pokémon with any mega stone, or transform them with Primal orbs, Origin orbs, and Rusted items with no limit. Mega and Primal boosts based on form changes from gen 7.`, @@ -1114,80 +1145,6 @@ export const Formats: FormatList = [ 'No Retreat', 'Revival Blessing', 'Shell Smash', 'Shift Gear', 'Triple Arrows', 'V-create', 'Victory Dance', 'Wicked Blow', ], }, - { - name: "[Gen 9] Partners in Crime", - desc: `Doubles-based metagame where both active ally Pokémon share abilities and moves.`, - threads: [ - `• Partners in Crime`, - ], - - mod: 'partnersincrime', - gameType: 'doubles', - ruleset: ['Standard Doubles'], - banlist: [ - 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Cresselia', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Enamorus-Base', - 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Koraidon', 'Kyogre', 'Magearna', 'Mewtwo', 'Miraidon', 'Palkia', - 'Palkia-Origin', 'Rayquaza', 'Urshifu', 'Urshifu-Rapid-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Dancer', - 'Huge Power', 'Moody', 'Pure Power', 'Serene Grace', 'Shadow Tag', 'Bright Powder', 'King\'s Rock', 'Razor Fang', 'Ally Switch', - 'Last Respects', 'Revival Blessing', 'Swagger', - ], - onBegin() { - for (const pokemon of this.getAllPokemon()) { - pokemon.m.trackPP = new Map(); - } - }, - onBeforeSwitchIn(pokemon) { - pokemon.m.curMoves = this.dex.deepClone(pokemon.moves); - let ngas = false; - for (const poke of this.getAllActive()) { - if (this.toID(poke.ability) === ('neutralizinggas' as ID)) { - ngas = true; - break; - } - } - const BAD_ABILITIES = ['trace', 'imposter', 'neutralizinggas', 'illusion', 'wanderingspirit']; - const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); - if (ally && ally.ability !== pokemon.ability) { - if (!pokemon.m.innate && !BAD_ABILITIES.includes(this.toID(ally.ability))) { - pokemon.m.innate = 'ability:' + ally.ability; - if (!ngas || ally.getAbility().isPermanent || pokemon.hasItem('Ability Shield')) { - pokemon.volatiles[pokemon.m.innate] = {id: pokemon.m.innate, target: pokemon}; - pokemon.m.startVolatile = true; - } - } - if (!ally.m.innate && !BAD_ABILITIES.includes(this.toID(pokemon.ability))) { - ally.m.innate = 'ability:' + pokemon.ability; - if (!ngas || pokemon.getAbility().isPermanent || ally.hasItem('Ability Shield')) { - ally.volatiles[ally.m.innate] = {id: ally.m.innate, target: ally}; - ally.m.startVolatile = true; - } - } - } - }, - // Starting innate abilities in scripts#actions - onSwitchOut(pokemon) { - if (pokemon.m.innate) { - pokemon.removeVolatile(pokemon.m.innate); - delete pokemon.m.innate; - } - const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); - if (ally && ally.m.innate) { - ally.removeVolatile(ally.m.innate); - delete ally.m.innate; - } - }, - onFaint(pokemon) { - if (pokemon.m.innate) { - pokemon.removeVolatile(pokemon.m.innate); - delete pokemon.m.innate; - } - const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); - if (ally && ally.m.innate) { - ally.removeVolatile(ally.m.innate); - delete ally.m.innate; - } - }, - }, { name: "[Gen 6] Pure Hackmons", desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`, @@ -1575,7 +1532,7 @@ export const Formats: FormatList = [ searchShow: false, ruleset: ['Standard OMs', '!Nickname Clause', '!Obtainable Abilities', 'Sleep Moves Clause', 'Frantic Fusions Mod', 'Terastal Clause', 'Min Source Gen = 9'], banlist: [ - 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chien-Pao', 'Chi-Yu', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Ditto', + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Ditto', 'Dragapult', 'Enamorus-Base', 'Eternatus', 'Flutter Mane', 'Gholdengo', 'Giratina', 'Giratina-Origin', 'Groudon', 'Hoopa-Unbound', 'Iron Bundle', 'Iron Hands', 'Iron Moth', 'Iron Valiant', 'Koraidon', 'Komala', 'Kyogre', 'Landorus-Base', 'Magearna', 'Manaphy', 'Mewtwo', 'Miraidon', 'Numel', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Persian-Alola', 'Rayquaza', 'Regieleki', 'Shaymin-Sky', 'Slaking', 'Sneasler', @@ -1716,6 +1673,73 @@ export const Formats: FormatList = [ ], restricted: ['U-turn', 'Volt Switch'], }, + { + name: "[Gen 9] Shared Power", + desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, + threads: [ + `• Shared Power`, + ], + + mod: 'sharedpower', + // searchShow: false, + ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'], + banlist: [ + 'Arceus', 'Calyrex-Shadow', 'Chien-Pao', 'Clefable', 'Flutter Mane', 'Greninja', 'Kingambit', 'Koraidon', 'Magearna', + 'Miraidon', 'Ogerpon-Hearthflame', 'Rayquaza', 'Shaymin-Sky', 'Zacian', 'Zacian-Crowned', 'Arena Trap', 'Chlorophyll', + 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Regenerator', 'Shadow Tag', 'Speed Boost', 'Stench', 'Swift Swim', 'Unburden', + 'King\'s Rock', 'Leppa Berry', 'Razor Fang', 'Starf Berry', 'Baton Pass', 'Extreme Speed', 'Last Respects', + ], + unbanlist: ['Arceus-Bug', 'Arceus-Dragon', 'Arceus-Fire', 'Arceus-Ice', 'Arceus-Psychic'], + restricted: [ + 'Armor Tail', 'Comatose', 'Contrary', 'Dazzling', 'Fur Coat', 'Gale Wings', 'Good as Gold', 'Huge Power', 'Illusion', 'Imposter', + 'Magic Bounce', 'Magic Guard', 'Mold Breaker', 'Multiscale', 'Poison Heal', 'Prankster', 'Protosynthesis', 'Pure Power', 'Purifying Salt', + 'Queenly Majesty', 'Quick Draw', 'Quick Feet', 'Sand Rush', 'Simple', 'Slush Rush', 'Stakeout', 'Stamina', 'Sturdy', 'Surge Surfer', + 'Tinted Lens', 'Unaware', + ], + onValidateRule() { + if (this.format.gameType !== 'singles') { + throw new Error(`Shared Power currently does not support ${this.format.gameType} battles.`); + } + }, + getSharedPower(pokemon) { + const sharedPower = new Set(); + for (const ally of pokemon.side.pokemon) { + if (pokemon.battle.ruleTable.isRestricted(`ability:${ally.baseAbility}`)) continue; + if (ally.previouslySwitchedIn > 0) { + if (pokemon.battle.dex.currentMod !== 'sharedpower' && ['trace', 'mirrorarmor'].includes(ally.baseAbility)) { + sharedPower.add('noability'); + continue; + } + sharedPower.add(ally.baseAbility); + } + } + sharedPower.delete(pokemon.baseAbility); + return sharedPower; + }, + onBeforeSwitchIn(pokemon) { + let format = this.format; + if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); + for (const ability of format.getSharedPower!(pokemon)) { + const effect = 'ability:' + ability; + pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; + if (!pokemon.m.abils) pokemon.m.abils = []; + if (!pokemon.m.abils.includes(effect)) pokemon.m.abils.push(effect); + } + }, + onSwitchInPriority: 2, + onSwitchIn(pokemon) { + let format = this.format; + if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); + for (const ability of format.getSharedPower!(pokemon)) { + if (ability === 'noability') { + this.hint(`Mirror Armor and Trace break in Shared Power formats that don't use Shared Power as a base, so they get removed from non-base users.`); + } + const effect = 'ability:' + ability; + delete pokemon.volatiles[effect]; + pokemon.addVolatile(effect); + } + }, + }, { name: "[Gen 9] Sharing is Caring", desc: `All Pokémon on a team share their items.`, @@ -2934,35 +2958,38 @@ export const Formats: FormatList = [ column: 4, }, { - name: "[Gen 6] Ubers", + name: "[Gen 7] Ubers", threads: [ - `• ORAS Ubers`, + `• USM Ubers`, ], - mod: 'gen6', + mod: 'gen7', // searchShow: false, - ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'], + ruleset: ['Standard', 'Mega Rayquaza Clause'], + banlist: ['Baton Pass'], }, { - name: "[Gen 3] ZU", + name: "[Gen 1] UU", threads: [ - `• ADV ZU`, + `• RBY UU Metagame Discussion`, + `• RBY UU Viability Rankings`, ], - mod: 'gen3', - ruleset: ['Standard', 'Baton Pass Stat Clause'], - banlist: ['Uber', 'OU', 'UUBL', 'UU', 'NUBL', 'NU', 'PUBL', 'PU', 'ZUBL'], + mod: 'gen1', + // searchShow: false, + ruleset: ['[Gen 1] OU', 'APT Clause'], + banlist: ['OU', 'UUBL'], }, { - name: "[Gen 3] LC", - threads: [ - `• ADV LC`, - ], + name: "[Gen 4] Doubles OU", + threads: [`• DPP Doubles`], - mod: 'gen3', + mod: 'gen4', + gameType: 'doubles', // searchShow: false, - ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'], - banlist: ['Chansey', 'Meditite', 'Omanyte', 'Scyther', 'Wynaut', 'Zigzagoon', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger'], + ruleset: ['Standard'], + banlist: ['AG', 'Uber', 'Soul Dew', 'Dark Void', 'Sand Veil'], + unbanlist: ['Manaphy', 'Mew', 'Salamence', 'Wobbuffet', 'Wynaut'], }, // Past Gens OU @@ -3125,17 +3152,6 @@ export const Formats: FormatList = [ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'], banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'], }, - { - name: "[Gen 4] Doubles OU", - threads: [`• DPP Doubles`], - - mod: 'gen4', - gameType: 'doubles', - searchShow: false, - ruleset: ['Standard'], - banlist: ['AG', 'Uber', 'Soul Dew', 'Dark Void', 'Sand Veil'], - unbanlist: ['Manaphy', 'Mew', 'Salamence', 'Wobbuffet', 'Wynaut'], - }, { name: "[Gen 3] Doubles OU", threads: [ @@ -3455,17 +3471,6 @@ export const Formats: FormatList = [ section: "US/UM Singles", column: 4, }, - { - name: "[Gen 7] Ubers", - threads: [ - `• USM Ubers`, - ], - - mod: 'gen7', - searchShow: false, - ruleset: ['Standard', 'Mega Rayquaza Clause'], - banlist: ['Baton Pass'], - }, { name: "[Gen 7] UU", threads: [ @@ -3785,6 +3790,16 @@ export const Formats: FormatList = [ ruleset: ['[Gen 6] OU'], banlist: ['OU', 'UUBL', 'Drizzle', 'Drought'], }, + { + name: "[Gen 6] Ubers", + threads: [ + `• ORAS Ubers`, + ], + + mod: 'gen6', + searchShow: false, + ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'], + }, { name: "[Gen 6] RU", threads: [ @@ -4474,6 +4489,28 @@ export const Formats: FormatList = [ ruleset: ['Standard', 'Baton Pass Clause'], banlist: ['Uber', 'OU', 'UUBL', 'UU', 'NUBL', 'NU', 'PUBL'], }, + { + name: "[Gen 3] ZU", + threads: [ + `• ADV ZU`, + ], + + mod: 'gen3', + searchShow: false, + ruleset: ['Standard', 'Baton Pass Stat Clause'], + banlist: ['Uber', 'OU', 'UUBL', 'UU', 'NUBL', 'NU', 'PUBL', 'PU', 'ZUBL'], + }, + { + name: "[Gen 3] LC", + threads: [ + `• ADV LC`, + ], + + mod: 'gen3', + searchShow: false, + ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'], + banlist: ['Chansey', 'Meditite', 'Omanyte', 'Scyther', 'Wynaut', 'Zigzagoon', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger'], + }, { name: "[Gen 3] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, @@ -4601,18 +4638,6 @@ export const Formats: FormatList = [ searchShow: false, ruleset: ['Standard'], }, - { - name: "[Gen 1] UU", - threads: [ - `• RBY UU Metagame Discussion`, - `• RBY UU Viability Rankings`, - ], - - mod: 'gen1', - searchShow: false, - ruleset: ['[Gen 1] OU', 'APT Clause'], - banlist: ['OU', 'UUBL'], - }, { name: "[Gen 1] NU", threads: [ diff --git a/data/aliases.ts b/data/aliases.ts index a72a61ba89b7..c6432395acc4 100644 --- a/data/aliases.ts +++ b/data/aliases.ts @@ -85,8 +85,8 @@ export const Aliases: {[alias: string]: string} = { gen6ag: "[Gen 6] Anything Goes", crossevo: "[Gen 9] Cross Evolution", mayhem: "[Gen 9] Random Battle Mayhem", - omotm: "[Gen 9] Shared Power", - lcotm: "[Gen 9] Protean Palace", + omotm: "[Gen 9] Tier Shift", + lcotm: "[Gen 9] Sketchmons", // mega evos fabio: "Ampharos-Mega", diff --git a/data/mods/gen8/rulesets.ts b/data/mods/gen8/rulesets.ts index 9c5b0ea62b03..1dc66795cac3 100644 --- a/data/mods/gen8/rulesets.ts +++ b/data/mods/gen8/rulesets.ts @@ -43,6 +43,8 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { nu: 30, publ: 30, pu: 40, + zubl: 40, + zu: 40, nfe: 40, lc: 40, }; diff --git a/data/rulesets.ts b/data/rulesets.ts index 00aa9f0f72a8..89ea35b78f48 100644 --- a/data/rulesets.ts +++ b/data/rulesets.ts @@ -2113,6 +2113,8 @@ export const Rulesets: {[k: string]: FormatData} = { nu: 25, publ: 25, pu: 30, + zubl: 30, + zu: 30, nfe: 30, lc: 30, }; @@ -2122,6 +2124,8 @@ export const Rulesets: {[k: string]: FormatData} = { // Non-Pokemon bans in lower tiers if (target) { if (this.toID(target.set.item) === 'lightclay') tier = 'rubl'; + if (this.toID(target.set.item) === 'damprock') tier = 'publ'; + if (this.toID(target.set.item) === 'heatrock') tier = 'publ'; } const pokemon = this.dex.deepClone(species); pokemon.bst = pokemon.baseStats['hp']; From dea9fbc875b88b61db098a86b5208804e9a4b1c7 Mon Sep 17 00:00:00 2001 From: ACakeWearingAHat <45981036+ACakeWearingAHat@users.noreply.github.com> Date: Fri, 1 Dec 2023 01:08:13 -0600 Subject: [PATCH 02/11] Randomized format set updates (#9926) * Randomized format set updates * lint * lint 2 * doubles stuff * more changes * combine level updates to this pr * missed wug change * Add chillysight slowking set 3 --------- Co-authored-by: Kelvin Liu <115855253+livid-washed@users.noreply.github.com> --- data/mods/gen1/random-data.json | 40 +++---- data/mods/gen3/random-data.json | 62 +++++----- data/mods/gen4/random-sets.json | 70 +++++------ data/mods/gen5/random-sets.json | 96 +++++++-------- data/mods/gen5/random-teams.ts | 9 +- data/mods/gen6/random-sets.json | 143 ++++++++++++----------- data/mods/gen6/random-teams.ts | 1 + data/mods/gen7/random-sets.json | 95 +++++++-------- data/mods/gen7/random-teams.ts | 2 + data/mods/gen8/random-data.json | 56 ++++----- data/random-doubles-sets.json | 201 ++++++++++++++++---------------- data/random-sets.json | 171 +++++++++++++++++---------- data/random-teams.ts | 4 +- 13 files changed, 506 insertions(+), 444 deletions(-) diff --git a/data/mods/gen1/random-data.json b/data/mods/gen1/random-data.json index 69d82e4f5d62..cea42771582b 100644 --- a/data/mods/gen1/random-data.json +++ b/data/mods/gen1/random-data.json @@ -13,7 +13,7 @@ "essentialMoves": ["bodyslam", "razorleaf"] }, "charmander": { - "level": 93, + "level": 94, "moves": ["counter", "seismictoss", "seismictoss", "slash", "slash"], "essentialMoves": ["bodyslam", "fireblast"], "comboMoves": ["bodyslam", "fireblast", "submission", "swordsdance"] @@ -58,14 +58,14 @@ "exclusiveMoves": ["agility", "agility", "megadrain"] }, "pidgey": { - "level": 96, + "level": 97, "moves": ["mimic", "mirrormove", "sandattack", "substitute"], "essentialMoves": ["agility", "doubleedge"], "exclusiveMoves": ["quickattack", "skyattack"], "comboMoves": ["agility", "doubleedge", "quickattack", "skyattack"] }, "pidgeotto": { - "level": 87, + "level": 88, "moves": ["mimic", "mirrormove", "sandattack", "substitute"], "essentialMoves": ["agility", "doubleedge"], "exclusiveMoves": ["quickattack", "skyattack"], @@ -77,7 +77,7 @@ "exclusiveMoves": ["mimic", "mirrormove", "reflect", "sandattack", "skyattack", "skyattack", "substitute", "quickattack", "quickattack", "quickattack"] }, "rattata": { - "level": 90, + "level": 91, "moves": ["blizzard", "bodyslam", "superfang"], "exclusiveMoves": ["doubleedge", "thunderbolt", "thunderbolt", "thunderbolt", "quickattack", "quickattack"] }, @@ -128,7 +128,7 @@ "exclusiveMoves": ["doubleedge", "doublekick"] }, "nidorina": { - "level": 86, + "level": 87, "moves": ["blizzard", "bodyslam", "thunderbolt"], "exclusiveMoves": ["bubblebeam", "doubleedge", "doublekick"] }, @@ -176,7 +176,7 @@ "exclusiveMoves": ["flamethrower", "hyperbeam", "reflect", "substitute", "substitute"] }, "jigglypuff": { - "level": 90, + "level": 91, "moves": ["blizzard", "bodyslam", "seismictoss"], "essentialMoves": ["thunderwave"], "exclusiveMoves": ["counter", "sing", "thunderwave"] @@ -201,12 +201,12 @@ "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] }, "gloom": { - "level": 81, + "level": 82, "moves": ["doubleedge", "megadrain", "sleeppowder"], "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] }, "vileplume": { - "level": 77, + "level": 76, "moves": ["bodyslam", "megadrain", "sleeppowder"], "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] }, @@ -329,7 +329,7 @@ "exclusiveMoves": ["counter", "hyperbeam", "hyperbeam", "rockslide", "rockslide"] }, "bellsprout": { - "level": 89, + "level": 90, "moves": ["doubleedge", "razorleaf", "sleeppowder"], "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] }, @@ -375,7 +375,7 @@ "moves": ["agility", "bodyslam", "fireblast", "hyperbeam"] }, "slowpoke": { - "level": 87, + "level": 86, "moves": ["blizzard", "psychic", "rest"], "essentialMoves": ["surf", "thunderwave"], "exclusiveMoves": ["amnesia", "earthquake", "earthquake"], @@ -419,7 +419,7 @@ "exclusiveMoves": ["hyperbeam", "rest", "rest", "rest"] }, "grimer": { - "level": 92, + "level": 93, "moves": ["fireblast", "fireblast", "megadrain", "sludge", "sludge", "sludge", "thunderbolt"], "essentialMoves": ["bodyslam", "explosion"] }, @@ -438,17 +438,17 @@ "exclusiveMoves": ["doubleedge", "hyperbeam", "hyperbeam"] }, "gastly": { - "level": 77, + "level": 76, "moves": ["explosion", "explosion", "megadrain", "nightshade", "psychic", "psychic"], "essentialMoves": ["thunderbolt", "hypnosis"] }, "haunter": { - "level": 70, + "level": 69, "moves": ["explosion", "explosion", "megadrain", "nightshade", "psychic", "psychic"], "essentialMoves": ["thunderbolt", "hypnosis"] }, "gengar": { - "level": 64, + "level": 63, "moves": ["explosion", "explosion", "megadrain", "nightshade", "psychic", "psychic"], "essentialMoves": ["thunderbolt", "hypnosis"] }, @@ -503,7 +503,7 @@ "moves": ["blizzard", "bodyslam", "earthquake", "seismictoss"] }, "hitmonlee": { - "level": 81, + "level": 82, "moves": ["bodyslam", "highjumpkick", "seismictoss"], "exclusiveMoves": ["counter", "counter", "meditate", "megakick", "rollingkick"] }, @@ -522,7 +522,7 @@ "moves": ["explosion", "fireblast", "sludge", "thunderbolt"] }, "weezing": { - "level": 77, + "level": 78, "moves": ["explosion", "fireblast", "sludge", "thunderbolt"] }, "rhyhorn": { @@ -559,7 +559,7 @@ "exclusiveMoves": ["doubleedge", "hydropump", "hyperbeam", "smokescreen"] }, "goldeen": { - "level": 90, + "level": 91, "moves": ["agility", "blizzard", "doubleedge", "surf"] }, "seaking": { @@ -568,7 +568,7 @@ "essentialMoves": ["blizzard", "surf"] }, "staryu": { - "level": 82, + "level": 81, "moves": ["blizzard", "thunderbolt", "thunderwave"], "essentialMoves": ["recover"], "exclusiveMoves": ["hydropump", "surf", "surf"] @@ -639,7 +639,7 @@ "exclusiveMoves": ["acidarmor", "bodyslam", "bodyslam", "bodyslam", "hydropump", "mimic"] }, "jolteon": { - "level": 69, + "level": 70, "moves": ["bodyslam", "thunderbolt", "thunderwave"], "exclusiveMoves": ["agility", "agility", "doublekick", "pinmissile", "pinmissile"] }, @@ -711,7 +711,7 @@ "essentialMoves": ["blizzard", "thunderwave"] }, "dragonite": { - "level": 73, + "level": 72, "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderwave", "thunderwave"], "essentialMoves": ["blizzard"] }, diff --git a/data/mods/gen3/random-data.json b/data/mods/gen3/random-data.json index 9f40c0b2d606..c70931eac534 100644 --- a/data/mods/gen3/random-data.json +++ b/data/mods/gen3/random-data.json @@ -12,7 +12,7 @@ "moves": ["earthquake", "icebeam", "mirrorcoat", "rest", "roar", "sleeptalk", "surf", "toxic"] }, "butterfree": { - "level": 94, + "level": 95, "moves": ["gigadrain", "hiddenpowerfire", "morningsun", "psychic", "sleeppowder", "stunspore", "toxic"] }, "beedrill": { @@ -88,7 +88,7 @@ "moves": ["fakeout", "hiddenpowerground", "hypnosis", "irontail", "return", "shadowball", "substitute"] }, "golduck": { - "level": 82, + "level": 81, "moves": ["calmmind", "hiddenpowergrass", "hydropump", "hypnosis", "icebeam", "substitute", "surf"] }, "primeape": { @@ -124,7 +124,7 @@ "moves": ["doubleedge", "earthquake", "explosion", "hiddenpowerbug", "rockslide", "toxic"] }, "rapidash": { - "level": 83, + "level": 82, "moves": ["fireblast", "hiddenpowergrass", "hiddenpowerrock", "substitute", "toxic"] }, "slowbro": { @@ -156,7 +156,7 @@ "moves": ["explosion", "icebeam", "rapidspin", "spikes", "surf", "toxic"] }, "gengar": { - "level": 78, + "level": 77, "moves": ["destinybond", "explosion", "firepunch", "hypnosis", "icepunch", "substitute", "thunderbolt", "willowisp"] }, "hypno": { @@ -200,7 +200,7 @@ "moves": ["doubleedge", "earthquake", "megahorn", "rockslide", "substitute", "swordsdance"] }, "tangela": { - "level": 91, + "level": 92, "moves": ["hiddenpowergrass", "leechseed", "morningsun", "sleeppowder", "stunspore"] }, "kangaskhan": { @@ -212,7 +212,7 @@ "moves": ["hiddenpowergrass", "hydropump", "icebeam", "megahorn", "raindance"] }, "starmie": { - "level": 77, + "level": 76, "moves": ["hydropump", "icebeam", "psychic", "recover", "surf", "thunderbolt"] }, "mrmime": { @@ -224,7 +224,7 @@ "moves": ["aerialace", "batonpass", "hiddenpowerground", "hiddenpowerrock", "quickattack", "silverwind", "swordsdance"] }, "jynx": { - "level": 82, + "level": 81, "moves": ["calmmind", "hiddenpowerfire", "icebeam", "lovelykiss", "psychic", "substitute"] }, "electabuzz": { @@ -244,11 +244,11 @@ "moves": ["doubleedge", "earthquake", "hiddenpowerghost", "hiddenpowerrock", "return"] }, "gyarados": { - "level": 75, + "level": 74, "moves": ["doubleedge", "dragondance", "earthquake", "hiddenpowerflying", "hydropump"] }, "lapras": { - "level": 81, + "level": 80, "moves": ["healbell", "icebeam", "rest", "sleeptalk", "surf", "thunderbolt", "toxic"] }, "ditto": { @@ -280,11 +280,11 @@ "moves": ["doubleedge", "earthquake", "hiddenpowerflying", "rockslide", "substitute"] }, "snorlax": { - "level": 74, + "level": 73, "moves": ["bodyslam", "curse", "earthquake", "rest", "return", "selfdestruct", "shadowball", "sleeptalk"] }, "articuno": { - "level": 82, + "level": 81, "moves": ["healbell", "hiddenpowerfire", "icebeam", "protect", "rest", "roar", "sleeptalk", "toxic"] }, "zapdos": { @@ -324,15 +324,15 @@ "moves": ["doubleedge", "quickattack", "return", "reversal", "shadowball", "substitute", "trick"] }, "noctowl": { - "level": 91, + "level": 92, "moves": ["hiddenpowerfire", "hypnosis", "psychic", "reflect", "toxic", "whirlwind"] }, "ledian": { - "level": 97, + "level": 98, "moves": ["agility", "batonpass", "lightscreen", "reflect", "silverwind", "swordsdance", "toxic"] }, "ariados": { - "level": 93, + "level": 94, "moves": ["agility", "batonpass", "signalbeam", "sludgebomb", "spiderweb", "toxic"] }, "crobat": { @@ -352,7 +352,7 @@ "moves": ["batonpass", "calmmind", "hiddenpowerfire", "psychic", "reflect", "wish"] }, "ampharos": { - "level": 83, + "level": 82, "moves": ["firepunch", "healbell", "hiddenpowergrass", "hiddenpowerice", "thunderbolt", "toxic"] }, "bellossom": { @@ -468,7 +468,7 @@ "moves": ["earthquake", "focuspunch", "hiddenpowerghost", "return", "swordsdance"] }, "magcargo": { - "level": 93, + "level": 94, "moves": ["fireblast", "hiddenpowergrass", "rest", "sleeptalk", "toxic", "yawn"] }, "piloswine": { @@ -476,7 +476,7 @@ "moves": ["doubleedge", "earthquake", "icebeam", "protect", "rockslide", "toxic"] }, "corsola": { - "level": 94, + "level": 95, "moves": ["calmmind", "icebeam", "recover", "surf", "toxic"] }, "octillery": { @@ -508,7 +508,7 @@ "moves": ["earthquake", "rapidspin", "rest", "rockslide", "sleeptalk", "toxic"] }, "porygon2": { - "level": 82, + "level": 81, "moves": ["icebeam", "recover", "return", "thunderbolt", "thunderwave", "toxic"] }, "stantler": { @@ -536,7 +536,7 @@ "moves": ["calmmind", "crunch", "hiddenpowergrass", "hiddenpowerice", "rest", "sleeptalk", "substitute", "thunderbolt"] }, "entei": { - "level": 79, + "level": 80, "moves": ["bodyslam", "calmmind", "fireblast", "flamethrower", "hiddenpowergrass", "hiddenpowerice", "solarbeam", "substitute", "sunnyday"] }, "suicune": { @@ -552,7 +552,7 @@ "moves": ["aeroblast", "calmmind", "earthquake", "icebeam", "recover", "substitute", "thunderbolt", "toxic"] }, "hooh": { - "level": 72, + "level": 71, "moves": ["calmmind", "earthquake", "recover", "sacredfire", "substitute", "thunderbolt", "toxic"] }, "celebi": { @@ -628,7 +628,7 @@ "moves": ["aerialace", "batonpass", "protect", "silverwind", "substitute", "swordsdance"] }, "shedinja": { - "level": 93, + "level": 94, "moves": ["agility", "batonpass", "hiddenpowerground", "shadowball", "silverwind", "toxic"] }, "exploud": { @@ -664,7 +664,7 @@ "moves": ["brickbreak", "bulkup", "recover", "rockslide", "shadowball", "substitute"] }, "manectric": { - "level": 83, + "level": 82, "moves": ["crunch", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt", "thunderwave"] }, "plusle": { @@ -692,7 +692,7 @@ "moves": ["encore", "explosion", "hiddenpowerground", "icebeam", "sludgebomb", "toxic", "yawn"] }, "sharpedo": { - "level": 84, + "level": 85, "moves": ["crunch", "earthquake", "endure", "hiddenpowerflying", "hydropump", "icebeam", "return"] }, "wailord": { @@ -712,7 +712,7 @@ "moves": ["calmmind", "firepunch", "icywind", "psychic", "substitute", "taunt"] }, "spinda": { - "level": 94, + "level": 95, "moves": ["bodyslam", "encore", "focuspunch", "shadowball", "substitute", "teeterdance", "toxic"] }, "flygon": { @@ -732,7 +732,7 @@ "moves": ["brickbreak", "quickattack", "return", "shadowball", "swordsdance"] }, "seviper": { - "level": 89, + "level": 88, "moves": ["crunch", "earthquake", "flamethrower", "hiddenpowergrass", "sludgebomb"] }, "lunatone": { @@ -788,7 +788,7 @@ "moves": ["hiddenpowerfire", "solarbeam", "sunnyday", "synthesis"] }, "chimecho": { - "level": 88, + "level": 89, "moves": ["calmmind", "healbell", "hiddenpowerfire", "lightscreen", "psychic", "reflect", "toxic", "yawn"] }, "absol": { @@ -816,15 +816,15 @@ "moves": ["doubleedge", "earthquake", "hiddenpowerflying", "rest", "rockslide", "sleeptalk", "toxic"] }, "luvdisc": { - "level": 98, + "level": 99, "moves": ["icebeam", "protect", "substitute", "surf", "sweetkiss", "toxic"] }, "salamence": { - "level": 74, + "level": 73, "moves": ["brickbreak", "dragondance", "earthquake", "fireblast", "hiddenpowerflying", "rockslide"] }, "metagross": { - "level": 76, + "level": 75, "moves": ["agility", "earthquake", "explosion", "meteormash", "psychic", "rockslide"] }, "regirock": { @@ -836,7 +836,7 @@ "moves": ["explosion", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave", "toxic"] }, "registeel": { - "level": 80, + "level": 79, "moves": ["rest", "seismictoss", "sleeptalk", "toxic"] }, "latias": { @@ -868,7 +868,7 @@ "moves": ["extremespeed", "firepunch", "icebeam", "psychoboost", "shadowball", "superpower"] }, "deoxysattack": { - "level": 74, + "level": 73, "moves": ["extremespeed", "firepunch", "psychoboost", "shadowball", "superpower"] }, "deoxysdefense": { diff --git a/data/mods/gen4/random-sets.json b/data/mods/gen4/random-sets.json index bfac9125375c..d123ea3d669c 100644 --- a/data/mods/gen4/random-sets.json +++ b/data/mods/gen4/random-sets.json @@ -1,6 +1,6 @@ { "venusaur": { - "level": 84, + "level": 83, "sets": [ { "role": "Staller", @@ -174,7 +174,7 @@ ] }, "wigglytuff": { - "level": 92, + "level": 93, "sets": [ { "role": "Bulky Support", @@ -543,7 +543,7 @@ ] }, "seaking": { - "level": 91, + "level": 92, "sets": [ { "role": "Fast Attacker", @@ -601,7 +601,7 @@ ] }, "pinsir": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Attacker", @@ -620,7 +620,7 @@ ] }, "gyarados": { - "level": 79, + "level": 78, "sets": [ { "role": "Setup Sweeper", @@ -681,7 +681,7 @@ ] }, "flareon": { - "level": 92, + "level": 93, "sets": [ { "role": "Bulky Attacker", @@ -735,7 +735,7 @@ ] }, "snorlax": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Attacker", @@ -1063,7 +1063,7 @@ ] }, "wobbuffet": { - "level": 81, + "level": 82, "sets": [ { "role": "Bulky Support", @@ -1131,7 +1131,7 @@ ] }, "scizor": { - "level": 79, + "level": 78, "sets": [ { "role": "Setup Sweeper", @@ -1175,7 +1175,7 @@ ] }, "magcargo": { - "level": 93, + "level": 94, "sets": [ { "role": "Staller", @@ -1184,7 +1184,7 @@ ] }, "corsola": { - "level": 93, + "level": 94, "sets": [ { "role": "Bulky Support", @@ -1484,7 +1484,7 @@ ] }, "beautifly": { - "level": 95, + "level": 96, "sets": [ { "role": "Fast Attacker", @@ -1493,7 +1493,7 @@ ] }, "dustox": { - "level": 98, + "level": 99, "sets": [ { "role": "Staller", @@ -1668,7 +1668,7 @@ ] }, "sableye": { - "level": 99, + "level": 100, "sets": [ { "role": "Bulky Support", @@ -1709,7 +1709,7 @@ ] }, "manectric": { - "level": 87, + "level": 86, "sets": [ { "role": "Wallbreaker", @@ -1727,7 +1727,7 @@ ] }, "minun": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Setup", @@ -1736,7 +1736,7 @@ ] }, "volbeat": { - "level": 96, + "level": 97, "sets": [ { "role": "Setup Sweeper", @@ -1758,7 +1758,7 @@ ] }, "swalot": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Support", @@ -1987,7 +1987,7 @@ ] }, "castform": { - "level": 100, + "level": 99, "sets": [ { "role": "Bulky Attacker", @@ -2014,7 +2014,7 @@ ] }, "tropius": { - "level": 94, + "level": 95, "sets": [ { "role": "Staller", @@ -2073,7 +2073,7 @@ ] }, "huntail": { - "level": 89, + "level": 90, "sets": [ { "role": "Setup Sweeper", @@ -2120,7 +2120,7 @@ ] }, "salamence": { - "level": 75, + "level": 74, "sets": [ { "role": "Setup Sweeper", @@ -2229,7 +2229,7 @@ ] }, "groudon": { - "level": 73, + "level": 72, "sets": [ { "role": "Bulky Support", @@ -2325,7 +2325,7 @@ ] }, "infernape": { - "level": 79, + "level": 78, "sets": [ { "role": "Wallbreaker", @@ -2338,7 +2338,7 @@ ] }, "empoleon": { - "level": 80, + "level": 79, "sets": [ { "role": "Staller", @@ -2411,7 +2411,7 @@ ] }, "rampardos": { - "level": 90, + "level": 91, "sets": [ { "role": "Setup Sweeper", @@ -2447,7 +2447,7 @@ ] }, "wormadamsandy": { - "level": 97, + "level": 98, "sets": [ { "role": "Staller", @@ -2465,7 +2465,7 @@ ] }, "mothim": { - "level": 93, + "level": 95, "sets": [ { "role": "Fast Attacker", @@ -2497,7 +2497,7 @@ ] }, "floatzel": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Attacker", @@ -2537,7 +2537,7 @@ ] }, "ambipom": { - "level": 84, + "level": 83, "sets": [ { "role": "Fast Attacker", @@ -2706,7 +2706,7 @@ ] }, "carnivine": { - "level": 95, + "level": 96, "sets": [ { "role": "Bulky Support", @@ -2873,7 +2873,7 @@ ] }, "gliscor": { - "level": 80, + "level": 81, "sets": [ { "role": "Bulky Support", @@ -3032,7 +3032,7 @@ ] }, "azelf": { - "level": 78, + "level": 77, "sets": [ { "role": "Fast Attacker", @@ -3075,7 +3075,7 @@ ] }, "heatran": { - "level": 77, + "level": 76, "sets": [ { "role": "Fast Attacker", @@ -3190,7 +3190,7 @@ ] }, "shayminsky": { - "level": 72, + "level": 71, "sets": [ { "role": "Fast Attacker", diff --git a/data/mods/gen5/random-sets.json b/data/mods/gen5/random-sets.json index a7366194246c..ebe84129d3a8 100644 --- a/data/mods/gen5/random-sets.json +++ b/data/mods/gen5/random-sets.json @@ -181,7 +181,7 @@ ] }, "wigglytuff": { - "level": 92, + "level": 93, "sets": [ { "role": "Bulky Support", @@ -203,7 +203,7 @@ ] }, "parasect": { - "level": 94, + "level": 95, "sets": [ { "role": "Bulky Support", @@ -217,7 +217,7 @@ ] }, "venomoth": { - "level": 83, + "level": 82, "sets": [ { "role": "Bulky Setup", @@ -362,7 +362,7 @@ ] }, "slowbro": { - "level": 82, + "level": 83, "sets": [ { "role": "Bulky Support", @@ -433,12 +433,13 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["focusblast", "painsplit", "shadowball", "sludgewave", "substitute", "trick", "willowisp"] + "movepool": ["focusblast", "painsplit", "shadowball", "sludgewave", "substitute", "trick", "willowisp"], + "preferredTypes": ["Fighting"] } ] }, "hypno": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Support", @@ -636,7 +637,7 @@ ] }, "tauros": { - "level": 84, + "level": 83, "sets": [ { "role": "Wallbreaker", @@ -756,7 +757,7 @@ ] }, "snorlax": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Support", @@ -884,7 +885,7 @@ ] }, "furret": { - "level": 91, + "level": 92, "sets": [ { "role": "Wallbreaker", @@ -893,7 +894,7 @@ ] }, "noctowl": { - "level": 94, + "level": 95, "sets": [ { "role": "Bulky Support", @@ -906,7 +907,7 @@ ] }, "ledian": { - "level": 99, + "level": 100, "sets": [ { "role": "Bulky Support", @@ -915,7 +916,7 @@ ] }, "ariados": { - "level": 95, + "level": 96, "sets": [ { "role": "Bulky Support", @@ -1175,7 +1176,7 @@ ] }, "qwilfish": { - "level": 85, + "level": 84, "sets": [ { "role": "Fast Support", @@ -1376,7 +1377,7 @@ ] }, "blissey": { - "level": 82, + "level": 83, "sets": [ { "role": "Staller", @@ -1389,7 +1390,7 @@ ] }, "raikou": { - "level": 79, + "level": 78, "sets": [ { "role": "Fast Attacker", @@ -1478,7 +1479,7 @@ ] }, "sceptile": { - "level": 84, + "level": 83, "sets": [ { "role": "Setup Sweeper", @@ -1521,7 +1522,7 @@ ] }, "mightyena": { - "level": 92, + "level": 93, "sets": [ { "role": "Fast Attacker", @@ -1549,7 +1550,7 @@ ] }, "dustox": { - "level": 91, + "level": 92, "sets": [ { "role": "Bulky Setup", @@ -1593,7 +1594,7 @@ ] }, "pelipper": { - "level": 90, + "level": 89, "sets": [ { "role": "Bulky Attacker", @@ -1648,7 +1649,7 @@ ] }, "slaking": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Attacker", @@ -1658,7 +1659,7 @@ ] }, "ninjask": { - "level": 89, + "level": 90, "sets": [ { "role": "Fast Attacker", @@ -1711,7 +1712,7 @@ ] }, "delcatty": { - "level": 93, + "level": 94, "sets": [ { "role": "Fast Support", @@ -1720,7 +1721,7 @@ ] }, "sableye": { - "level": 87, + "level": 88, "sets": [ { "role": "Staller", @@ -2034,7 +2035,7 @@ ] }, "banette": { - "level": 92, + "level": 93, "sets": [ { "role": "Wallbreaker", @@ -2052,7 +2053,7 @@ ] }, "tropius": { - "level": 90, + "level": 91, "sets": [ { "role": "Staller", @@ -2074,7 +2075,7 @@ ] }, "absol": { - "level": 86, + "level": 87, "sets": [ { "role": "Wallbreaker", @@ -2098,7 +2099,7 @@ ] }, "walrein": { - "level": 90, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -2186,7 +2187,7 @@ "movepool": ["curse", "drainpunch", "rest", "stoneedge"] }, { - "role": "Bulky Attacker", + "role": "Bulky Support", "movepool": ["drainpunch", "earthquake", "stealthrock", "stoneedge", "thunderwave", "toxic"] }, { @@ -2401,7 +2402,7 @@ ] }, "kricketune": { - "level": 99, + "level": 100, "sets": [ { "role": "Setup Sweeper", @@ -2572,7 +2573,7 @@ ] }, "lopunny": { - "level": 90, + "level": 89, "sets": [ { "role": "Wallbreaker", @@ -2664,7 +2665,7 @@ ] }, "garchomp": { - "level": 76, + "level": 75, "sets": [ { "role": "Fast Support", @@ -2723,7 +2724,7 @@ ] }, "carnivine": { - "level": 94, + "level": 95, "sets": [ { "role": "Bulky Support", @@ -2755,7 +2756,7 @@ ] }, "weavile": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -2813,7 +2814,8 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"] + "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], + "preferredTypes": ["Ice"] } ] }, @@ -2929,7 +2931,7 @@ ] }, "probopass": { - "level": 87, + "level": 88, "sets": [ { "role": "Bulky Attacker", @@ -3046,7 +3048,7 @@ ] }, "dialga": { - "level": 71, + "level": 70, "sets": [ { "role": "Bulky Attacker", @@ -3084,7 +3086,7 @@ ] }, "regigigas": { - "level": 84, + "level": 83, "sets": [ { "role": "Staller", @@ -3358,7 +3360,7 @@ ] }, "victini": { - "level": 80, + "level": 79, "sets": [ { "role": "Bulky Attacker", @@ -3479,7 +3481,7 @@ ] }, "musharna": { - "level": 86, + "level": 87, "sets": [ { "role": "Bulky Support", @@ -3684,7 +3686,7 @@ ] }, "crustle": { - "level": 84, + "level": 83, "sets": [ { "role": "Setup Sweeper", @@ -3706,7 +3708,7 @@ ] }, "sigilyph": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Attacker", @@ -3765,7 +3767,7 @@ ] }, "zoroark": { - "level": 84, + "level": 82, "sets": [ { "role": "Fast Attacker", @@ -3827,7 +3829,7 @@ ] }, "sawsbuck": { - "level": 86, + "level": 85, "sets": [ { "role": "Setup Sweeper", @@ -3896,7 +3898,7 @@ ] }, "ferrothorn": { - "level": 77, + "level": 76, "sets": [ { "role": "Bulky Attacker", @@ -4093,7 +4095,7 @@ ] }, "durant": { - "level": 80, + "level": 79, "sets": [ { "role": "Fast Attacker", @@ -4197,7 +4199,7 @@ ] }, "reshiram": { - "level": 75, + "level": 74, "sets": [ { "role": "Bulky Attacker", @@ -4260,7 +4262,7 @@ ] }, "kyuremblack": { - "level": 76, + "level": 75, "sets": [ { "role": "Bulky Attacker", diff --git a/data/mods/gen5/random-teams.ts b/data/mods/gen5/random-teams.ts index e40057139561..58d2747b6d00 100644 --- a/data/mods/gen5/random-teams.ts +++ b/data/mods/gen5/random-teams.ts @@ -775,8 +775,13 @@ export class RandomGen5Teams extends RandomGen6Teams { ) ? 'Life Orb' : 'Leftovers'; } // noStab moves that should reject Expert Belt - const noExpertBeltMoves = this.noStab.filter(moveid => ['Dragon', 'Normal'].includes(this.dex.moves.get(moveid).type)); - const expertBeltReqs = !counter.get('Dragon') && !counter.get('Normal') && noExpertBeltMoves.every(m => !moves.has(m)); + const noExpertBeltMoves = ( + this.noStab.filter(moveid => ['Dragon', 'Normal', 'Poison'].includes(this.dex.moves.get(moveid).type)) + ); + const expertBeltReqs = ( + !counter.get('Dragon') && !counter.get('Normal') && !counter.get('Poison') && + noExpertBeltMoves.every(m => !moves.has(m)) + ); if ( !counter.get('Status') && expertBeltReqs && (moves.has('uturn') || moves.has('voltswitch') || role === 'Fast Attacker') diff --git a/data/mods/gen6/random-sets.json b/data/mods/gen6/random-sets.json index acd2911e6195..91d09d91ac11 100644 --- a/data/mods/gen6/random-sets.json +++ b/data/mods/gen6/random-sets.json @@ -31,7 +31,7 @@ ] }, "charizardmegax": { - "level": 77, + "level": 76, "sets": [ { "role": "Setup Sweeper", @@ -40,7 +40,7 @@ ] }, "charizardmegay": { - "level": 77, + "level": 76, "sets": [ { "role": "Fast Attacker", @@ -71,7 +71,7 @@ ] }, "butterfree": { - "level": 89, + "level": 90, "sets": [ { "role": "Setup Sweeper", @@ -80,7 +80,7 @@ ] }, "beedrill": { - "level": 89, + "level": 90, "sets": [ { "role": "Fast Support", @@ -145,7 +145,7 @@ ] }, "pikachu": { - "level": 90, + "level": 91, "sets": [ { "role": "Fast Attacker", @@ -209,7 +209,7 @@ ] }, "ninetales": { - "level": 84, + "level": 85, "sets": [ { "role": "Setup Sweeper", @@ -219,7 +219,7 @@ ] }, "wigglytuff": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Support", @@ -237,7 +237,7 @@ ] }, "parasect": { - "level": 94, + "level": 95, "sets": [ { "role": "Bulky Attacker", @@ -279,7 +279,7 @@ ] }, "golduck": { - "level": 87, + "level": 88, "sets": [ { "role": "Fast Attacker", @@ -475,7 +475,7 @@ ] }, "gengar": { - "level": 80, + "level": 79, "sets": [ { "role": "Fast Attacker", @@ -497,7 +497,7 @@ ] }, "hypno": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Support", @@ -552,7 +552,7 @@ ] }, "hitmonlee": { - "level": 85, + "level": 86, "sets": [ { "role": "Fast Attacker", @@ -589,7 +589,7 @@ ] }, "chansey": { - "level": 84, + "level": 85, "sets": [ { "role": "Staller", @@ -846,7 +846,7 @@ ] }, "articuno": { - "level": 85, + "level": 84, "sets": [ { "role": "Staller", @@ -859,7 +859,7 @@ ] }, "zapdos": { - "level": 80, + "level": 79, "sets": [ { "role": "Bulky Support", @@ -877,7 +877,7 @@ ] }, "dragonite": { - "level": 76, + "level": 75, "sets": [ { "role": "Bulky Attacker", @@ -1106,7 +1106,7 @@ ] }, "sunflora": { - "level": 96, + "level": 97, "sets": [ { "role": "Wallbreaker", @@ -1343,7 +1343,7 @@ ] }, "magcargo": { - "level": 91, + "level": 92, "sets": [ { "role": "Staller", @@ -1352,7 +1352,7 @@ ] }, "corsola": { - "level": 93, + "level": 94, "sets": [ { "role": "Bulky Support", @@ -1383,7 +1383,7 @@ ] }, "mantine": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Support", @@ -1423,7 +1423,7 @@ ] }, "kingdra": { - "level": 84, + "level": 85, "sets": [ { "role": "Setup Sweeper", @@ -1432,7 +1432,7 @@ ] }, "donphan": { - "level": 82, + "level": 83, "sets": [ { "role": "Bulky Support", @@ -1783,7 +1783,7 @@ ] }, "masquerain": { - "level": 88, + "level": 89, "sets": [ { "role": "Setup Sweeper", @@ -1796,7 +1796,7 @@ ] }, "breloom": { - "level": 80, + "level": 81, "sets": [ { "role": "Fast Attacker", @@ -1846,7 +1846,7 @@ ] }, "exploud": { - "level": 84, + "level": 85, "sets": [ { "role": "Wallbreaker", @@ -1870,7 +1870,7 @@ ] }, "delcatty": { - "level": 94, + "level": 95, "sets": [ { "role": "Fast Support", @@ -1897,7 +1897,7 @@ ] }, "mawile": { - "level": 89, + "level": 92, "sets": [ { "role": "Wallbreaker", @@ -1971,7 +1971,7 @@ ] }, "plusle": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Setup", @@ -1997,7 +1997,7 @@ ] }, "volbeat": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -2033,7 +2033,7 @@ ] }, "sharpedomega": { - "level": 82, + "level": 81, "sets": [ { "role": "Wallbreaker", @@ -2262,7 +2262,7 @@ ] }, "castform": { - "level": 99, + "level": 98, "sets": [ { "role": "Bulky Attacker", @@ -2290,7 +2290,7 @@ ] }, "banettemega": { - "level": 86, + "level": 87, "sets": [ { "role": "Fast Support", @@ -2299,7 +2299,7 @@ ] }, "tropius": { - "level": 90, + "level": 91, "sets": [ { "role": "Staller", @@ -2426,7 +2426,7 @@ ] }, "salamencemega": { - "level": 72, + "level": 71, "sets": [ { "role": "Setup Sweeper", @@ -2435,7 +2435,7 @@ ] }, "metagross": { - "level": 80, + "level": 79, "sets": [ { "role": "Bulky Setup", @@ -2577,7 +2577,7 @@ ] }, "groudonprimal": { - "level": 67, + "level": 66, "sets": [ { "role": "Bulky Support", @@ -2708,7 +2708,7 @@ ] }, "bibarel": { - "level": 90, + "level": 91, "sets": [ { "role": "Setup Sweeper", @@ -2750,7 +2750,7 @@ ] }, "rampardos": { - "level": 89, + "level": 90, "sets": [ { "role": "Wallbreaker", @@ -2816,7 +2816,7 @@ ] }, "vespiquen": { - "level": 96, + "level": 97, "sets": [ { "role": "Staller", @@ -2877,7 +2877,7 @@ ] }, "drifblim": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Support", @@ -2890,7 +2890,7 @@ ] }, "lopunny": { - "level": 88, + "level": 87, "sets": [ { "role": "Wallbreaker", @@ -2989,7 +2989,7 @@ ] }, "garchomp": { - "level": 77, + "level": 76, "sets": [ { "role": "Fast Support", @@ -3029,7 +3029,7 @@ ] }, "lucariomega": { - "level": 77, + "level": 76, "sets": [ { "role": "Bulky Setup", @@ -3178,7 +3178,8 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"] + "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], + "preferredTypes": ["Ice"] } ] }, @@ -3433,7 +3434,7 @@ ] }, "palkia": { - "level": 75, + "level": 74, "sets": [ { "role": "Bulky Attacker", @@ -3478,7 +3479,7 @@ ] }, "giratina": { - "level": 76, + "level": 75, "sets": [ { "role": "Fast Support", @@ -3495,7 +3496,7 @@ ] }, "cresselia": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Setup", @@ -3536,7 +3537,7 @@ ] }, "shaymin": { - "level": 83, + "level": 84, "sets": [ { "role": "Fast Support", @@ -3904,7 +3905,7 @@ ] }, "gigalith": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Attacker", @@ -4072,7 +4073,7 @@ ] }, "krookodile": { - "level": 80, + "level": 79, "sets": [ { "role": "Fast Attacker", @@ -4090,7 +4091,7 @@ ] }, "maractus": { - "level": 92, + "level": 93, "sets": [ { "role": "Fast Support", @@ -4180,7 +4181,7 @@ ] }, "garbodor": { - "level": 87, + "level": 88, "sets": [ { "role": "Bulky Support", @@ -4217,7 +4218,7 @@ ] }, "reuniclus": { - "level": 83, + "level": 84, "sets": [ { "role": "Bulky Attacker", @@ -4319,7 +4320,7 @@ ] }, "galvantula": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -4329,7 +4330,7 @@ ] }, "ferrothorn": { - "level": 78, + "level": 77, "sets": [ { "role": "Bulky Attacker", @@ -4382,7 +4383,7 @@ ] }, "haxorus": { - "level": 77, + "level": 78, "sets": [ { "role": "Setup Sweeper", @@ -4392,7 +4393,7 @@ ] }, "beartic": { - "level": 90, + "level": 91, "sets": [ { "role": "Wallbreaker", @@ -4489,7 +4490,7 @@ ] }, "braviary": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Attacker", @@ -4560,7 +4561,7 @@ ] }, "cobalion": { - "level": 80, + "level": 79, "sets": [ { "role": "Bulky Attacker", @@ -4701,7 +4702,7 @@ ] }, "kyuremblack": { - "level": 77, + "level": 76, "sets": [ { "role": "Bulky Attacker", @@ -4820,7 +4821,7 @@ ] }, "talonflame": { - "level": 80, + "level": 79, "sets": [ { "role": "Bulky Attacker", @@ -4842,7 +4843,7 @@ ] }, "pyroar": { - "level": 86, + "level": 87, "sets": [ { "role": "Fast Attacker", @@ -4883,7 +4884,7 @@ ] }, "pangoro": { - "level": 85, + "level": 86, "sets": [ { "role": "Wallbreaker", @@ -4906,7 +4907,7 @@ ] }, "meowstic": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Support", @@ -4986,7 +4987,7 @@ ] }, "barbaracle": { - "level": 84, + "level": 83, "sets": [ { "role": "Setup Sweeper", @@ -4995,7 +4996,7 @@ ] }, "dragalge": { - "level": 86, + "level": 87, "sets": [ { "role": "Bulky Attacker", @@ -5063,7 +5064,7 @@ ] }, "hawlucha": { - "level": 79, + "level": 78, "sets": [ { "role": "Setup Sweeper", @@ -5090,7 +5091,7 @@ ] }, "goodra": { - "level": 83, + "level": 84, "sets": [ { "role": "Bulky Attacker", @@ -5112,7 +5113,7 @@ ] }, "trevenant": { - "level": 91, + "level": 92, "sets": [ { "role": "Wallbreaker", @@ -5125,7 +5126,7 @@ ] }, "gourgeistsmall": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Support", @@ -5179,7 +5180,7 @@ ] }, "xerneas": { - "level": 65, + "level": 64, "sets": [ { "role": "Setup Sweeper", diff --git a/data/mods/gen6/random-teams.ts b/data/mods/gen6/random-teams.ts index fe06cae0e7c9..f2392f9b7ed6 100644 --- a/data/mods/gen6/random-teams.ts +++ b/data/mods/gen6/random-teams.ts @@ -651,6 +651,7 @@ export class RandomGen6Teams extends RandomGen7Teams { if (species.id === 'ambipom' && !counter.get('technician')) return 'Pickup'; if (['dusknoir', 'vespiquen', 'wailord'].includes(species.id)) return 'Pressure'; if (species.id === 'druddigon' && role === 'Bulky Support') return 'Rough Skin'; + if (species.id === 'pangoro' && !counter.get('ironfist')) return 'Scrappy'; if (species.id === 'stunfisk') return 'Static'; if (species.id === 'breloom') return 'Technician'; if (species.id === 'zangoose') return 'Toxic Boost'; diff --git a/data/mods/gen7/random-sets.json b/data/mods/gen7/random-sets.json index 56b5e09576d8..cfd503a85195 100644 --- a/data/mods/gen7/random-sets.json +++ b/data/mods/gen7/random-sets.json @@ -22,7 +22,7 @@ ] }, "charizard": { - "level": 84, + "level": 83, "sets": [ { "role": "Z-Move user", @@ -81,7 +81,7 @@ ] }, "beedrill": { - "level": 90, + "level": 91, "sets": [ { "role": "Fast Support", @@ -266,7 +266,7 @@ ] }, "ninetalesalola": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Support", @@ -293,7 +293,7 @@ ] }, "parasect": { - "level": 94, + "level": 95, "sets": [ { "role": "Bulky Attacker", @@ -413,7 +413,7 @@ ] }, "alakazammega": { - "level": 80, + "level": 79, "sets": [ { "role": "Setup Sweeper", @@ -523,7 +523,7 @@ ] }, "farfetchd": { - "level": 97, + "level": 98, "sets": [ { "role": "Setup Sweeper", @@ -560,7 +560,7 @@ ] }, "muk": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Attacker", @@ -614,7 +614,7 @@ ] }, "hypno": { - "level": 91, + "level": 92, "sets": [ { "role": "Bulky Support", @@ -746,7 +746,7 @@ ] }, "kangaskhan": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -896,7 +896,7 @@ ] }, "ditto": { - "level": 84, + "level": 83, "sets": [ { "role": "Fast Support", @@ -1139,7 +1139,7 @@ ] }, "ledian": { - "level": 99, + "level": 100, "sets": [ { "role": "Bulky Support", @@ -1152,7 +1152,7 @@ ] }, "ariados": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -1269,7 +1269,7 @@ ] }, "sunflora": { - "level": 96, + "level": 97, "sets": [ { "role": "Wallbreaker", @@ -1309,7 +1309,7 @@ ] }, "murkrow": { - "level": 91, + "level": 92, "sets": [ { "role": "Bulky Attacker", @@ -1345,7 +1345,7 @@ ] }, "wobbuffet": { - "level": 84, + "level": 85, "sets": [ { "role": "Bulky Support", @@ -1470,7 +1470,7 @@ ] }, "shuckle": { - "level": 87, + "level": 86, "sets": [ { "role": "Bulky Support", @@ -1511,7 +1511,7 @@ ] }, "magcargo": { - "level": 91, + "level": 92, "sets": [ { "role": "Staller", @@ -1637,7 +1637,7 @@ ] }, "hitmontop": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -1734,7 +1734,7 @@ ] }, "lugia": { - "level": 74, + "level": 73, "sets": [ { "role": "Staller", @@ -1752,7 +1752,7 @@ ] }, "celebi": { - "level": 82, + "level": 83, "sets": [ { "role": "Fast Attacker", @@ -1837,7 +1837,7 @@ ] }, "mightyena": { - "level": 91, + "level": 92, "sets": [ { "role": "Fast Attacker", @@ -1943,7 +1943,7 @@ ] }, "gardevoirmega": { - "level": 81, + "level": 80, "sets": [ { "role": "Setup Sweeper", @@ -2011,7 +2011,7 @@ ] }, "shedinja": { - "level": 88, + "level": 89, "sets": [ { "role": "Setup Sweeper", @@ -2172,7 +2172,7 @@ ] }, "illumise": { - "level": 93, + "level": 92, "sets": [ { "role": "Bulky Attacker", @@ -2436,7 +2436,7 @@ ] }, "castform": { - "level": 100, + "level": 99, "sets": [ { "role": "Bulky Attacker", @@ -2757,7 +2757,7 @@ ] }, "groudon": { - "level": 76, + "level": 75, "sets": [ { "role": "Bulky Support", @@ -2783,7 +2783,7 @@ ] }, "rayquaza": { - "level": 74, + "level": 73, "sets": [ { "role": "Wallbreaker", @@ -2925,7 +2925,7 @@ ] }, "kricketune": { - "level": 90, + "level": 91, "sets": [ { "role": "Fast Support", @@ -2984,7 +2984,7 @@ ] }, "wormadam": { - "level": 97, + "level": 98, "sets": [ { "role": "Setup Sweeper", @@ -3038,7 +3038,7 @@ ] }, "floatzel": { - "level": 87, + "level": 86, "sets": [ { "role": "Setup Sweeper", @@ -3081,7 +3081,7 @@ ] }, "drifblim": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Support", @@ -3145,7 +3145,7 @@ ] }, "skuntank": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Attacker", @@ -3387,7 +3387,8 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"] + "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], + "preferredTypes": ["Ice"] } ] }, @@ -3402,7 +3403,7 @@ ] }, "togekiss": { - "level": 83, + "level": 82, "sets": [ { "role": "Bulky Setup", @@ -3576,7 +3577,7 @@ ] }, "rotomfrost": { - "level": 88, + "level": 87, "sets": [ { "role": "Bulky Attacker", @@ -4002,7 +4003,7 @@ ] }, "victini": { - "level": 79, + "level": 78, "sets": [ { "role": "Fast Attacker", @@ -4047,7 +4048,7 @@ ] }, "samurott": { - "level": 86, + "level": 87, "sets": [ { "role": "AV Pivot", @@ -4139,7 +4140,7 @@ ] }, "unfezant": { - "level": 87, + "level": 88, "sets": [ { "role": "Bulky Attacker", @@ -4352,7 +4353,7 @@ ] }, "maractus": { - "level": 94, + "level": 95, "sets": [ { "role": "Fast Support", @@ -4529,7 +4530,7 @@ ] }, "emolga": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Attacker", @@ -4650,7 +4651,7 @@ ] }, "haxorus": { - "level": 79, + "level": 78, "sets": [ { "role": "Setup Sweeper", @@ -5090,7 +5091,7 @@ ] }, "chesnaught": { - "level": 86, + "level": 87, "sets": [ { "role": "Bulky Support", @@ -5471,7 +5472,7 @@ ] }, "gourgeistlarge": { - "level": 88, + "level": 89, "sets": [ { "role": "Bulky Support", @@ -5529,7 +5530,7 @@ ] }, "yveltal": { - "level": 71, + "level": 70, "sets": [ { "role": "Bulky Support", @@ -6225,7 +6226,7 @@ ] }, "drampa": { - "level": 91, + "level": 92, "sets": [ { "role": "Wallbreaker", @@ -6239,7 +6240,7 @@ ] }, "dhelmise": { - "level": 88, + "level": 89, "sets": [ { "role": "Fast Support", @@ -6277,7 +6278,7 @@ ] }, "tapulele": { - "level": 79, + "level": 78, "sets": [ { "role": "Fast Attacker", diff --git a/data/mods/gen7/random-teams.ts b/data/mods/gen7/random-teams.ts index 4582350c6d80..6c2a3eff7bc1 100644 --- a/data/mods/gen7/random-teams.ts +++ b/data/mods/gen7/random-teams.ts @@ -847,6 +847,7 @@ export class RandomGen7Teams extends RandomGen8Teams { )) return 'Guts'; if (species.id === 'starmie') return role === 'Wallbreaker' ? 'Analytic' : 'Natural Cure'; + if (species.id === 'drampa' && moves.has('roost')) return 'Berserk'; if (species.id === 'ninetales') return 'Drought'; if (species.id === 'talonflame' && role === 'Z-Move user') return 'Gale Wings'; if (species.id === 'golemalola' && moves.has('return')) return 'Galvanize'; @@ -862,6 +863,7 @@ export class RandomGen7Teams extends RandomGen8Teams { ) return 'Pressure'; if (species.id === 'tsareena') return 'Queenly Majesty'; if (species.id === 'druddigon' && role === 'Bulky Support') return 'Rough Skin'; + if (species.id === 'pangoro' && !counter.get('ironfist')) return 'Scrappy'; if (species.id === 'kommoo' && role === 'Z-Move user') return 'Soundproof'; if (species.id === 'stunfisk') return 'Static'; if (species.id === 'breloom') return 'Technician'; diff --git a/data/mods/gen8/random-data.json b/data/mods/gen8/random-data.json index ddd95c0d37c2..d3a7207e1aeb 100644 --- a/data/mods/gen8/random-data.json +++ b/data/mods/gen8/random-data.json @@ -319,7 +319,7 @@ "doublesMoves": ["dazzlinggleam", "fakeout", "icywind", "lightscreen", "psychic", "reflect"] }, "mrmimegalar": { - "level": 86, + "level": 85, "moves": ["focusblast", "freezedry", "nastyplot", "psychic", "rapidspin"] }, "scyther": { @@ -501,7 +501,7 @@ "doublesMoves": ["energyball", "moonblast", "quiverdance", "sleeppowder", "strengthsap"] }, "azumarill": { - "level": 84, + "level": 83, "moves": ["aquajet", "knockoff", "liquidation", "playrough", "superpower"], "doublesLevel": 87, "doublesMoves": ["aquajet", "knockoff", "liquidation", "playrough", "protect"] @@ -549,7 +549,7 @@ "doublesMoves": ["fireblast", "protect", "psychic", "sludgebomb", "trick", "trickroom"] }, "wobbuffet": { - "level": 96, + "level": 97, "moves": ["charm", "counter", "encore", "mirrorcoat"], "doublesLevel": 100, "doublesMoves": ["charm", "counter", "encore", "mirrorcoat"], @@ -569,7 +569,7 @@ "noDynamaxMoves": ["curse", "earthquake", "headsmash", "heavyslam", "stealthrock", "toxic"] }, "qwilfish": { - "level": 84, + "level": 85, "moves": ["destinybond", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], "doublesLevel": 88, "doublesMoves": ["liquidation", "poisonjab", "protect", "taunt", "thunderwave", "toxicspikes"] @@ -594,7 +594,7 @@ "doublesMoves": ["closecombat", "facade", "knockoff", "megahorn", "protect", "swordsdance"] }, "corsola": { - "level": 94, + "level": 95, "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"], "doublesLevel": 95, "doublesMoves": ["icywind", "lifedew", "recover", "scald", "toxic"] @@ -708,7 +708,7 @@ "doublesMoves": ["breakingswipe", "energyball", "focusblast", "leafstorm"] }, "blaziken": { - "level": 76, + "level": 75, "moves": ["closecombat", "flareblitz", "knockoff", "stoneedge", "swordsdance"], "doublesLevel": 78, "doublesMoves": ["closecombat", "flareblitz", "knockoff", "protect", "swordsdance"] @@ -830,7 +830,7 @@ "doublesMoves": ["earthpower", "icebeam", "meteorbeam", "protect", "psychic", "trickroom"] }, "solrock": { - "level": 88, + "level": 89, "moves": ["earthquake", "explosion", "morningsun", "rockslide", "stealthrock", "willowisp"], "doublesLevel": 88, "doublesMoves": ["flareblitz", "helpinghand", "rockslide", "stoneedge", "willowisp"] @@ -891,7 +891,7 @@ "doublesMoves": ["brine", "icebeam", "icywind", "superfang"] }, "relicanth": { - "level": 87, + "level": 88, "moves": ["bodypress", "earthquake", "headsmash", "liquidation", "stealthrock", "yawn"], "doublesLevel": 88, "doublesMoves": ["bodypress", "headsmash", "liquidation", "stealthrock", "yawn"] @@ -927,13 +927,13 @@ "doublesMoves": ["bodypress", "curse", "ironhead", "rest", "toxic"] }, "latias": { - "level": 80, + "level": 81, "moves": ["calmmind", "dracometeor", "healingwish", "mysticalfire", "psychic", "roost"], "doublesLevel": 82, "doublesMoves": ["calmmind", "dracometeor", "healpulse", "mysticalfire", "psyshock", "roost", "tailwind"] }, "latios": { - "level": 78, + "level": 77, "moves": ["calmmind", "dracometeor", "mysticalfire", "psyshock", "roost", "trick"], "doublesLevel": 80, "doublesMoves": ["dracometeor", "mysticalfire", "psychic", "psyshock", "roost", "tailwind", "trick"] @@ -1005,7 +1005,7 @@ "doublesMoves": ["calmmind", "icywind", "shadowball", "strengthsap"] }, "lopunny": { - "level": 92, + "level": 93, "moves": ["closecombat", "facade", "healingwish", "switcheroo"], "doublesLevel": 92, "doublesMoves": ["closecombat", "fakeout", "switcheroo", "uturn"] @@ -1017,7 +1017,7 @@ "doublesMoves": ["crunch", "defog", "fireblast", "poisonjab", "suckerpunch", "taunt"] }, "bronzong": { - "level": 83, + "level": 84, "moves": ["earthquake", "ironhead", "protect", "stealthrock", "toxic"], "doublesLevel": 88, "doublesMoves": ["allyswitch", "bodypress", "ironhead", "trickroom"] @@ -1035,7 +1035,7 @@ "doublesMoves": ["dragonclaw", "earthquake", "fireblast", "protect", "rockslide", "swordsdance"] }, "lucario": { - "level": 82, + "level": 81, "moves": ["closecombat", "extremespeed", "meteormash", "stoneedge", "swordsdance"], "doublesLevel": 84, "doublesMoves": ["closecombat", "extremespeed", "icepunch", "meteormash", "protect", "swordsdance"] @@ -1101,7 +1101,7 @@ "doublesMoves": ["crosschop", "flamethrower", "icepunch", "stompingtantrum", "wildcharge"] }, "magmortar": { - "level": 86, + "level": 87, "moves": ["earthquake", "fireblast", "focusblast", "psychic", "taunt", "thunderbolt"], "doublesLevel": 88, "doublesMoves": ["fireblast", "focusblast", "heatwave", "protect", "thunderbolt"] @@ -1466,7 +1466,7 @@ "doublesMoves": ["auroraveil", "blizzard", "explosion", "freezedry", "protect"] }, "emolga": { - "level": 89, + "level": 90, "moves": ["airslash", "defog", "energyball", "roost", "thunderbolt", "toxic", "uturn"], "doublesLevel": 88, "doublesMoves": ["acrobatics", "helpinghand", "nuzzle", "tailwind", "taunt", "voltswitch"] @@ -1587,7 +1587,7 @@ "doublesMoves": ["closecombat", "headcharge", "lashout", "protect", "wildcharge"] }, "braviary": { - "level": 82, + "level": 81, "moves": ["bravebird", "bulkup", "closecombat", "roost"], "doublesLevel": 82, "doublesMoves": ["bravebird", "bulkup", "closecombat", "roost", "tailwind"] @@ -1629,7 +1629,7 @@ "doublesMoves": ["closecombat", "ironhead", "protect", "stoneedge", "swordsdance", "thunderwave"] }, "terrakion": { - "level": 78, + "level": 77, "moves": ["closecombat", "earthquake", "quickattack", "stoneedge", "swordsdance"], "doublesLevel": 80, "doublesMoves": ["closecombat", "protect", "rockslide", "swordsdance"] @@ -1660,7 +1660,7 @@ "doublesMoves": ["grassknot", "knockoff", "nastyplot", "protect", "sludgebomb", "thunderbolt", "thunderwave"] }, "thundurustherian": { - "level": 79, + "level": 78, "moves": ["focusblast", "grassknot", "nastyplot", "psychic", "thunderbolt", "voltswitch"], "doublesLevel": 82, "doublesMoves": ["agility", "focusblast", "grassknot", "nastyplot", "sludgebomb", "thunderbolt", "voltswitch"] @@ -1678,7 +1678,7 @@ "doublesMoves": ["boltstrike", "dragonclaw", "dragondance", "roost"] }, "landorus": { - "level": 76, + "level": 75, "moves": ["earthpower", "focusblast", "knockoff", "rockpolish", "rockslide", "sludgewave", "stealthrock"], "doublesLevel": 80, "doublesMoves": ["calmmind", "earthpower", "focusblast", "protect", "psychic", "sludgebomb"] @@ -1709,7 +1709,7 @@ "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "freezedry", "fusionflare", "icebeam", "protect", "roost"] }, "keldeoresolute": { - "level": 78, + "level": 77, "moves": ["airslash", "calmmind", "hydropump", "icywind", "scald", "secretsword", "substitute"], "doublesLevel": 82, "doublesMoves": ["airslash", "calmmind", "icywind", "muddywater", "protect", "secretsword"] @@ -1933,7 +1933,7 @@ "doublesMoves": ["bodypress", "diamondstorm", "earthpower", "moonblast"] }, "volcanion": { - "level": 79, + "level": 78, "moves": ["defog", "earthpower", "flamethrower", "sludgebomb", "steameruption"], "doublesLevel": 80, "doublesMoves": ["earthpower", "heatwave", "protect", "sludgebomb", "steameruption"] @@ -2018,7 +2018,7 @@ "doublesMoves": ["defog", "knockoff", "leafstorm", "protect", "superpower"] }, "shiinotic": { - "level": 87, + "level": 88, "moves": ["energyball", "leechseed", "moonblast", "spore", "strengthsap"], "doublesLevel": 88, "doublesMoves": ["energyball", "moonblast", "protect", "spore", "strengthsap"] @@ -2196,7 +2196,7 @@ "doublesMoves": ["dragonpulse", "fireblast", "protect", "scorchingsands", "shellsmash"] }, "togedemaru": { - "level": 85, + "level": 86, "moves": ["ironhead", "nuzzle", "spikyshield", "uturn", "wish", "zingzap"], "doublesLevel": 88, "doublesMoves": ["encore", "fakeout", "ironhead", "nuzzle", "spikyshield", "zingzap"] @@ -2294,7 +2294,7 @@ "noDynamaxMoves": ["airslash", "earthquake", "fireblast", "heavyslam", "leechseed", "protect"] }, "kartana": { - "level": 74, + "level": 72, "moves": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"], "doublesLevel": 78, "doublesMoves": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"] @@ -2425,7 +2425,7 @@ "doublesMoves": ["helpinghand", "hypnosis", "lightscreen", "psychic", "reflect", "stickyweb", "strugglebug"] }, "thievul": { - "level": 87, + "level": 88, "moves": ["darkpulse", "foulplay", "grassknot", "nastyplot", "partingshot", "psychic"], "doublesLevel": 89, "doublesMoves": ["faketears", "foulplay", "partingshot", "snarl", "taunt"] @@ -2542,11 +2542,11 @@ "doublesMoves": ["dazzlinggleam", "mysticalfire", "protect", "psychic", "trickroom"] }, "grimmsnarl": { - "level": 82, + "level": 83, "moves": ["lightscreen", "reflect", "spiritbreak", "taunt", "thunderwave"] }, "grimmsnarlgmax": { - "level": 82, + "level": 83, "moves": ["bulkup", "darkestlariat", "playrough", "rest", "suckerpunch", "trick"], "doublesLevel": 84, "doublesMoves": ["darkestlariat", "fakeout", "lightscreen", "reflect", "spiritbreak", "taunt", "thunderwave"] @@ -2702,7 +2702,7 @@ "doublesMoves": ["behemothblade", "closecombat", "playrough", "protect", "psychicfangs", "swordsdance"] }, "zamazenta": { - "level": 73, + "level": 72, "moves": ["closecombat", "crunch", "psychicfangs", "wildcharge"], "doublesLevel": 74, "doublesMoves": ["closecombat", "crunch", "playrough", "protect", "psychicfangs"] diff --git a/data/random-doubles-sets.json b/data/random-doubles-sets.json index e5d4becfb670..537c8fdc1d3b 100644 --- a/data/random-doubles-sets.json +++ b/data/random-doubles-sets.json @@ -105,7 +105,7 @@ ] }, "clefable": { - "level": 85, + "level": 86, "sets": [ { "role": "Doubles Bulky Attacker", @@ -120,7 +120,7 @@ ] }, "ninetales": { - "level": 83, + "level": 82, "sets": [ { "role": "Doubles Wallbreaker", @@ -130,7 +130,7 @@ ] }, "ninetalesalola": { - "level": 78, + "level": 77, "sets": [ { "role": "Doubles Support", @@ -160,7 +160,7 @@ ] }, "dugtrio": { - "level": 87, + "level": 88, "sets": [ { "role": "Offensive Protect", @@ -180,7 +180,7 @@ ] }, "persian": { - "level": 90, + "level": 91, "sets": [ { "role": "Doubles Support", @@ -200,7 +200,7 @@ ] }, "golduck": { - "level": 89, + "level": 90, "sets": [ { "role": "Doubles Fast Attacker", @@ -215,7 +215,7 @@ ] }, "annihilape": { - "level": 78, + "level": 77, "sets": [ { "role": "Bulky Protect", @@ -230,7 +230,7 @@ ] }, "arcanine": { - "level": 82, + "level": 81, "sets": [ { "role": "Doubles Bulky Attacker", @@ -244,8 +244,13 @@ "sets": [ { "role": "Choice Item user", - "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Head Smash", "Wild Charge"], - "teraTypes": ["Fire", "Normal", "Rock"] + "movepool": ["Extreme Speed", "Flare Blitz", "Rock Slide", "Stone Edge"], + "teraTypes": ["Normal", "Rock"] + }, + { + "role": "Bulky Protect", + "movepool": ["Flare Blitz", "Morning Sun", "Protect", "Rock Slide", "Will-O-Wisp"], + "teraTypes": ["Fairy", "Grass"] } ] }, @@ -270,7 +275,7 @@ ] }, "golem": { - "level": 88, + "level": 87, "sets": [ { "role": "Doubles Wallbreaker", @@ -310,7 +315,7 @@ ] }, "slowbrogalar": { - "level": 85, + "level": 86, "sets": [ { "role": "Doubles Wallbreaker", @@ -405,7 +410,7 @@ ] }, "weezing": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Support", @@ -415,7 +420,7 @@ ] }, "weezinggalar": { - "level": 86, + "level": 87, "sets": [ { "role": "Doubles Bulky Attacker", @@ -425,7 +430,7 @@ ] }, "scyther": { - "level": 82, + "level": 81, "sets": [ { "role": "Bulky Protect", @@ -455,7 +460,7 @@ ] }, "taurospaldeablaze": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Protect", @@ -505,7 +510,7 @@ ] }, "ditto": { - "level": 91, + "level": 92, "sets": [ { "role": "Choice Item user", @@ -580,7 +585,7 @@ ] }, "articunogalar": { - "level": 84, + "level": 83, "sets": [ { "role": "Doubles Fast Attacker", @@ -590,7 +595,7 @@ ] }, "zapdos": { - "level": 79, + "level": 78, "sets": [ { "role": "Doubles Support", @@ -660,7 +665,7 @@ ] }, "mew": { - "level": 83, + "level": 84, "sets": [ { "role": "Doubles Support", @@ -675,7 +680,7 @@ ] }, "typhlosion": { - "level": 81, + "level": 80, "sets": [ { "role": "Choice Item user", @@ -695,7 +700,7 @@ ] }, "furret": { - "level": 94, + "level": 95, "sets": [ { "role": "Doubles Setup Sweeper", @@ -720,7 +725,7 @@ ] }, "ariados": { - "level": 93, + "level": 95, "sets": [ { "role": "Doubles Support", @@ -760,7 +765,7 @@ ] }, "politoed": { - "level": 85, + "level": 84, "sets": [ { "role": "Choice Item user", @@ -800,7 +805,7 @@ ] }, "quagsire": { - "level": 88, + "level": 89, "sets": [ { "role": "Doubles Bulky Attacker", @@ -820,7 +825,7 @@ ] }, "espeon": { - "level": 85, + "level": 84, "sets": [ { "role": "Offensive Protect", @@ -840,7 +845,7 @@ ] }, "murkrow": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Support", @@ -850,7 +855,7 @@ ] }, "slowking": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Support", @@ -875,7 +880,7 @@ ] }, "forretress": { - "level": 89, + "level": 90, "sets": [ { "role": "Choice Item user", @@ -915,7 +920,7 @@ ] }, "scizor": { - "level": 82, + "level": 81, "sets": [ { "role": "Doubles Support", @@ -995,7 +1000,7 @@ ] }, "blissey": { - "level": 90, + "level": 91, "sets": [ { "role": "Doubles Support", @@ -1095,7 +1100,7 @@ ] }, "breloom": { - "level": 82, + "level": 83, "sets": [ { "role": "Doubles Fast Attacker", @@ -1130,7 +1135,7 @@ ] }, "sableye": { - "level": 92, + "level": 93, "sets": [ { "role": "Doubles Support", @@ -1165,7 +1170,7 @@ ] }, "illumise": { - "level": 89, + "level": 88, "sets": [ { "role": "Doubles Support", @@ -1250,7 +1255,7 @@ ] }, "seviper": { - "level": 93, + "level": 94, "sets": [ { "role": "Offensive Protect", @@ -1300,7 +1305,7 @@ ] }, "banette": { - "level": 91, + "level": 92, "sets": [ { "role": "Doubles Wallbreaker", @@ -1310,7 +1315,7 @@ ] }, "tropius": { - "level": 91, + "level": 92, "sets": [ { "role": "Doubles Support", @@ -1370,7 +1375,7 @@ ] }, "groudon": { - "level": 71, + "level": 70, "sets": [ { "role": "Doubles Bulky Attacker", @@ -1610,7 +1615,7 @@ ] }, "lucario": { - "level": 85, + "level": 86, "sets": [ { "role": "Offensive Protect", @@ -1655,7 +1660,7 @@ ] }, "abomasnow": { - "level": 84, + "level": 83, "sets": [ { "role": "Doubles Bulky Attacker", @@ -1665,7 +1670,7 @@ ] }, "weavile": { - "level": 84, + "level": 83, "sets": [ { "role": "Doubles Wallbreaker", @@ -1750,7 +1755,7 @@ ] }, "mamoswine": { - "level": 84, + "level": 83, "sets": [ { "role": "Offensive Protect", @@ -1760,7 +1765,7 @@ ] }, "gallade": { - "level": 83, + "level": 82, "sets": [ { "role": "Doubles Wallbreaker", @@ -2020,7 +2025,7 @@ ] }, "darkrai": { - "level": 78, + "level": 79, "sets": [ { "role": "Offensive Protect", @@ -2030,7 +2035,7 @@ ] }, "shaymin": { - "level": 83, + "level": 82, "sets": [ { "role": "Doubles Bulky Attacker", @@ -2200,7 +2205,7 @@ ] }, "arceuspsychic": { - "level": 74, + "level": 73, "sets": [ { "role": "Doubles Support", @@ -2290,7 +2295,7 @@ ] }, "leavanny": { - "level": 88, + "level": 89, "sets": [ { "role": "Doubles Support", @@ -2305,7 +2310,7 @@ ] }, "lilligant": { - "level": 86, + "level": 87, "sets": [ { "role": "Tera Blast user", @@ -2415,7 +2420,7 @@ ] }, "gothitelle": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Support", @@ -2450,7 +2455,7 @@ ] }, "amoonguss": { - "level": 83, + "level": 84, "sets": [ { "role": "Doubles Support", @@ -2460,7 +2465,7 @@ ] }, "alomomola": { - "level": 92, + "level": 93, "sets": [ { "role": "Doubles Support", @@ -2480,7 +2485,7 @@ ] }, "chandelure": { - "level": 82, + "level": 81, "sets": [ { "role": "Doubles Fast Attacker", @@ -2540,7 +2545,7 @@ ] }, "braviary": { - "level": 83, + "level": 82, "sets": [ { "role": "Offensive Protect", @@ -2550,7 +2555,7 @@ ] }, "braviaryhisui": { - "level": 83, + "level": 84, "sets": [ { "role": "Doubles Wallbreaker", @@ -2565,7 +2570,7 @@ ] }, "mandibuzz": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Support", @@ -2710,7 +2715,7 @@ ] }, "chesnaught": { - "level": 85, + "level": 86, "sets": [ { "role": "Bulky Protect", @@ -2725,7 +2730,7 @@ ] }, "delphox": { - "level": 84, + "level": 83, "sets": [ { "role": "Doubles Setup Sweeper", @@ -2745,7 +2750,7 @@ ] }, "talonflame": { - "level": 83, + "level": 82, "sets": [ { "role": "Doubles Bulky Attacker", @@ -2765,7 +2770,7 @@ ] }, "pyroar": { - "level": 84, + "level": 83, "sets": [ { "role": "Offensive Protect", @@ -2800,7 +2805,7 @@ ] }, "dragalge": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Wallbreaker", @@ -2864,7 +2869,7 @@ "sets": [ { "role": "Doubles Bulky Setup", - "movepool": ["Body Press", "Iron Defense", "Moonblast", "Stealth Rock"], + "movepool": ["Body Press", "Iron Defense", "Moonblast", "Trick Room"], "teraTypes": ["Fighting"] } ] @@ -2910,7 +2915,7 @@ ] }, "avalugg": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Protect", @@ -2985,7 +2990,7 @@ ] }, "volcanion": { - "level": 76, + "level": 75, "sets": [ { "role": "Doubles Bulky Attacker", @@ -3065,7 +3070,7 @@ ] }, "oricoriopau": { - "level": 86, + "level": 87, "sets": [ { "role": "Bulky Protect", @@ -3110,7 +3115,7 @@ ] }, "lycanrocmidnight": { - "level": 86, + "level": 85, "sets": [ { "role": "Choice Item user", @@ -3120,7 +3125,7 @@ ] }, "lycanrocdusk": { - "level": 84, + "level": 83, "sets": [ { "role": "Offensive Protect", @@ -3130,7 +3135,7 @@ ] }, "toxapex": { - "level": 95, + "level": 96, "sets": [ { "role": "Bulky Protect", @@ -3190,7 +3195,7 @@ ] }, "passimian": { - "level": 84, + "level": 83, "sets": [ { "role": "Choice Item user", @@ -3210,7 +3215,7 @@ ] }, "komala": { - "level": 89, + "level": 90, "sets": [ { "role": "Doubles Bulky Attacker", @@ -3220,7 +3225,7 @@ ] }, "mimikyu": { - "level": 83, + "level": 82, "sets": [ { "role": "Doubles Setup Sweeper", @@ -3300,7 +3305,7 @@ ] }, "inteleon": { - "level": 83, + "level": 82, "sets": [ { "role": "Choice Item user", @@ -3365,7 +3370,7 @@ ] }, "appletun": { - "level": 90, + "level": 91, "sets": [ { "role": "Doubles Bulky Attacker", @@ -3545,7 +3550,7 @@ ] }, "indeedeef": { - "level": 89, + "level": 90, "sets": [ { "role": "Doubles Support", @@ -3680,7 +3685,7 @@ ] }, "urshifurapidstrike": { - "level": 79, + "level": 78, "sets": [ { "role": "Doubles Fast Attacker", @@ -3690,7 +3695,7 @@ ] }, "zarude": { - "level": 81, + "level": 80, "sets": [ { "role": "Offensive Protect", @@ -3700,7 +3705,7 @@ ] }, "regieleki": { - "level": 80, + "level": 79, "sets": [ { "role": "Doubles Fast Attacker", @@ -3725,7 +3730,7 @@ ] }, "glastrier": { - "level": 82, + "level": 81, "sets": [ { "role": "Doubles Bulky Attacker", @@ -3750,7 +3755,7 @@ ] }, "calyrex": { - "level": 94, + "level": 95, "sets": [ { "role": "Doubles Support", @@ -3920,7 +3925,7 @@ ] }, "lokix": { - "level": 85, + "level": 86, "sets": [ { "role": "Offensive Protect", @@ -3935,7 +3940,7 @@ ] }, "pawmot": { - "level": 82, + "level": 81, "sets": [ { "role": "Doubles Wallbreaker", @@ -4075,7 +4080,7 @@ ] }, "bellibolt": { - "level": 83, + "level": 82, "sets": [ { "role": "Doubles Bulky Attacker", @@ -4095,7 +4100,7 @@ ] }, "mabosstiff": { - "level": 85, + "level": 84, "sets": [ { "role": "Doubles Wallbreaker", @@ -4200,7 +4205,7 @@ ] }, "wugtrio": { - "level": 89, + "level": 90, "sets": [ { "role": "Choice Item user", @@ -4225,7 +4230,7 @@ ] }, "palafin": { - "level": 80, + "level": 79, "sets": [ { "role": "Choice Item user", @@ -4366,11 +4371,6 @@ "role": "Doubles Wallbreaker", "movepool": ["Hyper Voice", "Nasty Plot", "Protect", "Psychic", "Psyshock", "Trick Room"], "teraTypes": ["Fairy"] - }, - { - "role": "Tera Blast user", - "movepool": ["Nasty Plot", "Psychic", "Psyshock", "Tera Blast", "Trick Room"], - "teraTypes": ["Fairy"] } ] }, @@ -4397,6 +4397,11 @@ "kingambit": { "level": 78, "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Iron Head", "Protect", "Sucker Punch", "Swords Dance"], + "teraTypes": ["Dark", "Fire", "Flying"] + }, { "role": "Bulky Protect", "movepool": ["Iron Head", "Kowtow Cleave", "Protect", "Sucker Punch"], @@ -4430,7 +4435,7 @@ ] }, "sandyshocks": { - "level": 81, + "level": 80, "sets": [ { "role": "Doubles Fast Attacker", @@ -4455,7 +4460,7 @@ ] }, "fluttermane": { - "level": 74, + "level": 73, "sets": [ { "role": "Offensive Protect", @@ -4480,7 +4485,7 @@ ] }, "roaringmoon": { - "level": 77, + "level": 76, "sets": [ { "role": "Doubles Fast Attacker", @@ -4535,7 +4540,7 @@ ] }, "ironjugulis": { - "level": 80, + "level": 79, "sets": [ { "role": "Doubles Fast Attacker", @@ -4610,7 +4615,7 @@ ] }, "tinglu": { - "level": 80, + "level": 81, "sets": [ { "role": "Doubles Bulky Attacker", @@ -4640,7 +4645,7 @@ ] }, "chiyu": { - "level": 76, + "level": 75, "sets": [ { "role": "Doubles Setup Sweeper", @@ -4665,7 +4670,7 @@ ] }, "miraidon": { - "level": 66, + "level": 65, "sets": [ { "role": "Offensive Protect", @@ -4705,7 +4710,7 @@ ] }, "dipplin": { - "level": 87, + "level": 88, "sets": [ { "role": "Doubles Bulky Attacker", @@ -4730,7 +4735,7 @@ ] }, "okidogi": { - "level": 79, + "level": 78, "sets": [ { "role": "Doubles Bulky Attacker", diff --git a/data/random-sets.json b/data/random-sets.json index afea1f96f3ce..ecc3bc009e52 100644 --- a/data/random-sets.json +++ b/data/random-sets.json @@ -15,7 +15,7 @@ ] }, "arbok": { - "level": 89, + "level": 88, "sets": [ { "role": "Fast Support", @@ -46,6 +46,11 @@ "role": "Fast Support", "movepool": ["Encore", "Focus Blast", "Grass Knot", "Nasty Plot", "Nuzzle", "Surf", "Thunderbolt", "Volt Switch"], "teraTypes": ["Grass", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Encore", "Focus Blast", "Nasty Plot", "Surf", "Tera Blast", "Thunderbolt"], + "teraTypes": ["Ice"] } ] }, @@ -85,7 +90,7 @@ ] }, "clefable": { - "level": 82, + "level": 83, "sets": [ { "role": "Bulky Support", @@ -100,7 +105,7 @@ ] }, "ninetales": { - "level": 84, + "level": 85, "sets": [ { "role": "Setup Sweeper", @@ -110,7 +115,7 @@ ] }, "ninetalesalola": { - "level": 80, + "level": 79, "sets": [ { "role": "Fast Support", @@ -134,7 +139,7 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["Dazzling Gleam", "Fire Blast", "Light Screen", "Protect", "Reflect", "Stealth Rock", "Thunder Wave", "Wish"], + "movepool": ["Dazzling Gleam", "Fire Blast", "Knock Off", "Protect", "Stealth Rock", "Thunder Wave", "Wish"], "teraTypes": ["Poison", "Steel"] } ] @@ -193,9 +198,14 @@ "level": 90, "sets": [ { - "role": "Fast Attacker", + "role": "Fast Bulky Setup", "movepool": ["Encore", "Grass Knot", "Hydro Pump", "Ice Beam", "Nasty Plot", "Psyshock"], "teraTypes": ["Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Flip Turn", "Grass Knot", "Hydro Pump", "Ice Beam", "Nasty Plot"], + "teraTypes": ["Grass", "Water"] } ] }, @@ -295,7 +305,7 @@ ] }, "golemalola": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Attacker", @@ -349,12 +359,12 @@ "sets": [ { "role": "Bulky Attacker", - "movepool": ["Drain Punch", "Gunk Shot", "Haze", "Ice Punch", "Knock Off", "Shadow Sneak", "Toxic", "Toxic Spikes"], + "movepool": ["Drain Punch", "Gunk Shot", "Haze", "Ice Punch", "Knock Off", "Poison Jab", "Shadow Sneak", "Toxic", "Toxic Spikes"], "teraTypes": ["Dark"] }, { "role": "AV Pivot", - "movepool": ["Drain Punch", "Gunk Shot", "Ice Punch", "Knock Off", "Shadow Sneak"], + "movepool": ["Drain Punch", "Gunk Shot", "Ice Punch", "Knock Off", "Poison Jab", "Shadow Sneak"], "teraTypes": ["Dark"] } ] @@ -404,7 +414,7 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["Encore", "Knock Off", "Light Screen", "Psychic", "Reflect", "Thunder Wave", "Toxic"], + "movepool": ["Encore", "Knock Off", "Psychic", "Thunder Wave", "Toxic"], "teraTypes": ["Dark", "Steel"] }, { @@ -420,7 +430,7 @@ { "role": "Fast Support", "movepool": ["Explosion", "Foul Play", "Taunt", "Thunder Wave", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric"] + "teraTypes": ["Dark", "Electric"] }, { "role": "Tera Blast user", @@ -520,7 +530,7 @@ ] }, "taurospaldeaaqua": { - "level": 82, + "level": 81, "sets": [ { "role": "Fast Bulky Setup", @@ -635,7 +645,7 @@ ] }, "zapdos": { - "level": 79, + "level": 78, "sets": [ { "role": "Bulky Attacker", @@ -682,6 +692,11 @@ "movepool": ["Dragon Dance", "Earthquake", "Extreme Speed", "Fire Punch", "Outrage"], "teraTypes": ["Normal"] }, + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Iron Head", "Outrage"], + "teraTypes": ["Steel"] + }, { "role": "Tera Blast user", "movepool": ["Dragon Dance", "Earthquake", "Outrage", "Tera Blast"], @@ -693,9 +708,14 @@ "level": 72, "sets": [ { - "role": "Fast Attacker", + "role": "Setup Sweeper", "movepool": ["Aura Sphere", "Dark Pulse", "Fire Blast", "Nasty Plot", "Psystrike", "Recover"], "teraTypes": ["Dark", "Fighting", "Fire", "Psychic"] + }, + { + "role": "Fast Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Focus Blast", "Psystrike", "Recover"], + "teraTypes": ["Dark", "Fighting", "Psychic"] } ] }, @@ -770,7 +790,7 @@ ] }, "ariados": { - "level": 91, + "level": 92, "sets": [ { "role": "Fast Support", @@ -846,6 +866,11 @@ "role": "Wallbreaker", "movepool": ["Dazzling Gleam", "Earth Power", "Leaf Storm", "Sludge Bomb"], "teraTypes": ["Fairy", "Grass", "Ground", "Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earth Power", "Solar Beam", "Sunny Day", "Weather Ball"], + "teraTypes": ["Fire"] } ] }, @@ -911,6 +936,11 @@ "role": "Wallbreaker", "movepool": ["Fire Blast", "Hydro Pump", "Ice Beam", "Psychic", "Psyshock", "Trick Room"], "teraTypes": ["Psychic", "Water"] + }, + { + "role": "Fast Support", + "movepool": ["Chilly Reception", "Future Sight", "Scald", "Slack Off"], + "teraTypes": ["Dragon", "Fairy", "Water"] } ] }, @@ -936,6 +966,11 @@ "role": "Bulky Setup", "movepool": ["Dazzling Gleam", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball", "Thunderbolt"], "teraTypes": ["Electric", "Fairy", "Psychic"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Hyper Voice", "Nasty Plot", "Psyshock", "Thunderbolt"], + "teraTypes": ["Electric", "Normal"] } ] }, @@ -1230,12 +1265,12 @@ { "role": "Bulky Setup", "movepool": ["Body Slam", "Bulk Up", "Earthquake", "Knock Off", "Slack Off"], - "teraTypes": ["Ghost", "Ground", "Poison"] + "teraTypes": ["Ghost", "Ground"] } ] }, "slaking": { - "level": 85, + "level": 84, "sets": [ { "role": "Fast Attacker", @@ -1313,10 +1348,15 @@ "level": 90, "sets": [ { - "role": "Bulky Support", - "movepool": ["Clear Smog", "Earthquake", "Encore", "Ice Beam", "Knock Off", "Pain Split", "Protect", "Sludge Bomb", "Toxic", "Toxic Spikes"], + "role": "Bulky Attacker", + "movepool": ["Clear Smog", "Earthquake", "Encore", "Ice Beam", "Knock Off", "Pain Split", "Sludge Bomb", "Toxic Spikes"], "teraTypes": ["Dark"] }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Protect", "Sludge Bomb", "Toxic"], + "teraTypes": ["Ground"] + }, { "role": "Bulky Setup", "movepool": ["Earthquake", "Gunk Shot", "Knock Off", "Swords Dance"], @@ -1470,7 +1510,7 @@ ] }, "tropius": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Support", @@ -1570,7 +1610,7 @@ ] }, "jirachi": { - "level": 79, + "level": 80, "sets": [ { "role": "Fast Support", @@ -1755,7 +1795,7 @@ ] }, "skuntank": { - "level": 85, + "level": 84, "sets": [ { "role": "Fast Support", @@ -1769,8 +1809,13 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["Earthquake", "Hypnosis", "Iron Head", "Light Screen", "Psychic", "Reflect", "Stealth Rock"], + "movepool": ["Earthquake", "Hypnosis", "Iron Head", "Psychic", "Stealth Rock"], "teraTypes": ["Electric", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Psychic", "Rest"], + "teraTypes": ["Fighting"] } ] }, @@ -1869,7 +1914,7 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["Ice Shard", "Ice Spinner", "Knock Off", "Low Kick", "Swords Dance"], + "movepool": ["Ice Shard", "Icicle Crash", "Knock Off", "Low Kick", "Swords Dance"], "teraTypes": ["Dark", "Fighting", "Ice"] } ] @@ -1900,7 +1945,7 @@ ] }, "yanmega": { - "level": 83, + "level": 82, "sets": [ { "role": "Wallbreaker", @@ -1925,7 +1970,7 @@ ] }, "glaceon": { - "level": 93, + "level": 94, "sets": [ { "role": "Bulky Support", @@ -1935,7 +1980,7 @@ ] }, "gliscor": { - "level": 77, + "level": 76, "sets": [ { "role": "Fast Support", @@ -1980,7 +2025,7 @@ ] }, "probopass": { - "level": 90, + "level": 91, "sets": [ { "role": "Bulky Setup", @@ -2020,7 +2065,7 @@ ] }, "rotom": { - "level": 86, + "level": 87, "sets": [ { "role": "Fast Attacker", @@ -2200,7 +2245,7 @@ ] }, "giratinaorigin": { - "level": 73, + "level": 72, "sets": [ { "role": "Fast Attacker", @@ -2270,7 +2315,7 @@ ] }, "shayminsky": { - "level": 74, + "level": 73, "sets": [ { "role": "Bulky Attacker", @@ -2449,7 +2494,7 @@ "sets": [ { "role": "Setup Sweeper", - "movepool": ["Earthquake", "Flare Blitz", "Gunk Shot", "Liquidation", "Recover", "Swords Dance"], + "movepool": ["Dragon Dance", "Earthquake", "Flare Blitz", "Gunk Shot", "Liquidation", "Recover", "Swords Dance"], "teraTypes": ["Fire", "Ground", "Water"] } ] @@ -2605,7 +2650,7 @@ ] }, "basculegion": { - "level": 84, + "level": 83, "sets": [ { "role": "AV Pivot", @@ -2630,7 +2675,7 @@ ] }, "krookodile": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -2660,7 +2705,7 @@ ] }, "gothitelle": { - "level": 89, + "level": 90, "sets": [ { "role": "Bulky Setup", @@ -2735,7 +2780,7 @@ ] }, "chandelure": { - "level": 82, + "level": 83, "sets": [ { "role": "Fast Bulky Setup", @@ -2810,7 +2855,7 @@ ] }, "braviary": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Bulky Setup", @@ -2969,7 +3014,7 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["Body Press", "Knock Off", "Leech Seed", "Spikes", "Synthesis", "Wood Hammer"], + "movepool": ["Body Press", "Knock Off", "Spikes", "Synthesis", "Wood Hammer"], "teraTypes": ["Steel", "Water"] }, { @@ -3129,7 +3174,7 @@ "sets": [ { "role": "Bulky Attacker", - "movepool": ["Body Press", "Light Screen", "Moonblast", "Power Gem", "Reflect", "Spikes", "Stealth Rock"], + "movepool": ["Body Press", "Moonblast", "Power Gem", "Spikes", "Stealth Rock"], "teraTypes": ["Fighting"] }, { @@ -3445,7 +3490,7 @@ ] }, "lurantis": { - "level": 89, + "level": 88, "sets": [ { "role": "Bulky Attacker", @@ -3495,7 +3540,7 @@ ] }, "passimian": { - "level": 84, + "level": 83, "sets": [ { "role": "Fast Attacker", @@ -3550,7 +3595,7 @@ ] }, "kommoo": { - "level": 79, + "level": 78, "sets": [ { "role": "Fast Bulky Setup", @@ -3585,7 +3630,7 @@ ] }, "rillaboom": { - "level": 81, + "level": 80, "sets": [ { "role": "Wallbreaker", @@ -3755,7 +3800,7 @@ ] }, "hatterene": { - "level": 87, + "level": 86, "sets": [ { "role": "Bulky Setup", @@ -3880,7 +3925,7 @@ ] }, "morpeko": { - "level": 86, + "level": 87, "sets": [ { "role": "Fast Support", @@ -3950,12 +3995,12 @@ { "role": "Bulky Attacker", "movepool": ["Close Combat", "Crunch", "Iron Head", "Psychic Fangs", "Stone Edge", "Wild Charge"], - "teraTypes": ["Dark", "Fighting"] + "teraTypes": ["Dark", "Fighting", "Steel"] }, { "role": "Bulky Setup", "movepool": ["Body Press", "Crunch", "Iron Defense", "Iron Head", "Rest", "Stone Edge"], - "teraTypes": ["Fighting"] + "teraTypes": ["Fighting", "Steel"] } ] }, @@ -4035,7 +4080,7 @@ ] }, "regidrago": { - "level": 78, + "level": 77, "sets": [ { "role": "Bulky Attacker", @@ -4170,7 +4215,7 @@ ] }, "enamorustherian": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Attacker", @@ -4345,7 +4390,7 @@ ] }, "squawkabillywhite": { - "level": 90, + "level": 89, "sets": [ { "role": "Wallbreaker", @@ -4365,7 +4410,7 @@ ] }, "squawkabillyyellow": { - "level": 90, + "level": 89, "sets": [ { "role": "Wallbreaker", @@ -4428,7 +4473,7 @@ "level": 83, "sets": [ { - "role": "Fast Support", + "role": "Bulky Attacker", "movepool": ["Hurricane", "Roost", "Thunder Wave", "Thunderbolt", "U-turn"], "teraTypes": ["Electric", "Flying"] } @@ -4569,8 +4614,8 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Liquidation", "Memento", "Stomping Tantrum", "Sucker Punch", "Throat Chop"], - "teraTypes": ["Dark", "Water"] + "movepool": ["Aqua Jet", "Liquidation", "Stomping Tantrum", "Sucker Punch", "Throat Chop"], + "teraTypes": ["Dark", "Ground", "Water"] } ] }, @@ -4595,7 +4640,7 @@ ] }, "revavroom": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -4679,7 +4724,7 @@ }, { "role": "Bulky Setup", - "movepool": ["Belly Drum", "Earthquake", "Ice Shard", "Icicle Crash"], + "movepool": ["Belly Drum", "Earthquake", "Ice Shard", "Ice Spinner"], "teraTypes": ["Ice"] } ] @@ -4720,7 +4765,7 @@ ] }, "farigiraf": { - "level": 91, + "level": 92, "sets": [ { "role": "Bulky Support", @@ -4909,7 +4954,7 @@ }, { "role": "Bulky Attacker", - "movepool": ["Close Combat", "Drain Punch", "Ice Punch", "Swords Dance", "Thunder Punch", "Wild Charge"], + "movepool": ["Drain Punch", "Ice Punch", "Swords Dance", "Thunder Punch", "Wild Charge"], "teraTypes": ["Fighting", "Flying", "Steel"] } ] @@ -5034,7 +5079,7 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["Crunch", "Ice Shard", "Ice Spinner", "Sacred Sword", "Sucker Punch", "Swords Dance"], + "movepool": ["Crunch", "Ice Shard", "Icicle Crash", "Sacred Sword", "Sucker Punch", "Swords Dance"], "teraTypes": ["Dark", "Fighting", "Ice"] } ] @@ -5065,7 +5110,7 @@ ] }, "koraidon": { - "level": 65, + "level": 64, "sets": [ { "role": "Fast Attacker", @@ -5095,7 +5140,7 @@ ] }, "dipplin": { - "level": 87, + "level": 88, "sets": [ { "role": "Bulky Attacker", @@ -5175,7 +5220,7 @@ ] }, "ogerponwellspring": { - "level": 77, + "level": 76, "sets": [ { "role": "Bulky Attacker", @@ -5190,7 +5235,7 @@ ] }, "ogerponhearthflame": { - "level": 76, + "level": 75, "sets": [ { "role": "Setup Sweeper", diff --git a/data/random-teams.ts b/data/random-teams.ts index 59299c1ed9c8..d75dad2329e0 100644 --- a/data/random-teams.ts +++ b/data/random-teams.ts @@ -1120,7 +1120,7 @@ export class RandomTeams { if (abilityData.length <= 1) return abilityData[0].name; // Hard-code abilities here - if (species.id === 'arcaninehisui') return 'Rock Head'; + if (species.id === 'florges') return 'Flower Veil'; if (species.id === 'scovillain') return 'Chlorophyll'; if (species.id === 'empoleon') return 'Competitive'; if (species.id === 'chandelure') return 'Flash Fire'; @@ -1138,6 +1138,7 @@ export class RandomTeams { if (!isDoubles) { if (species.id === 'hypno') return 'Insomnia'; if (species.id === 'staraptor') return 'Reckless'; + if (species.id === 'arcaninehisui') return 'Rock Head'; if (species.id === 'vespiquen') return 'Pressure'; if (species.id === 'enamorus' && moves.has('calmmind')) return 'Cute Charm'; if (species.id === 'klawf' && role === 'Setup Sweeper') return 'Anger Shell'; @@ -1176,7 +1177,6 @@ export class RandomTeams { // just doubles and multi if (this.format.gameType !== 'freeforall') { - if (species.id === 'florges') return 'Flower Veil'; if ( species.id === 'clefairy' || (species.baseSpecies === 'Maushold' && role === 'Doubles Support') From a14a70f11755254a9ad96583476b4c6e88e67fea Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 01:12:59 -0700 Subject: [PATCH 03/11] Sketchmons: Fix banlist --- config/formats.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/formats.ts b/config/formats.ts index 30e007d1cc9a..854c875143a0 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -699,12 +699,12 @@ export const Formats: FormatList = [ mod: 'gen9', ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Items Clause', 'Sketchmons Move Legality', 'Min Source Gen = 9'], banlist: [ - 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Dialga-Base', 'Dragapult', - 'Enamorus-Base', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina-Base', 'Groudon', 'Gliscor', 'Greninja', 'Iron Bundle', 'Komala', 'Koraidon', - 'Kyogre', 'Landorus-Base', 'Magearna', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia-Base', 'Rayquaza', 'Regieleki', - 'Roaring Moon', 'Scovillain', 'Shaymin-Sky', 'Sneasler', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu', 'Urshifu-Rapid-Strike', 'Volcarona', - 'Zacian-Base', 'Zamazenta-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', 'Stench', 'Booster Energy', 'King\'s Rock', 'Baton Pass', - 'Last Respects', 'Shed Tail', + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Dialga', 'Dialga-Origin', + 'Dragapult', 'Enamorus-Base', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Gliscor', 'Greninja', 'Iron Bundle', + 'Komala', 'Koraidon', 'Kyogre', 'Landorus-Base', 'Magearna', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', + 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Roaring Moon', 'Scovillain', 'Shaymin-Sky', 'Sneasler', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu', + 'Urshifu-Rapid-Strike', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', + 'Stench', 'Booster Energy', 'King\'s Rock', 'Baton Pass', 'Last Respects', 'Shed Tail', ], restricted: [ 'Astral Barrage', 'Belly Drum', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Extreme Speed', 'Gigaton Hammer', 'Glacial Lance', 'Fillet Away', From e2d676c3253da96ad78a8065c9da06b00223066b Mon Sep 17 00:00:00 2001 From: Hisuian Zoroark <96159984+HisuianZoroark@users.noreply.github.com> Date: Fri, 1 Dec 2023 03:14:00 -0500 Subject: [PATCH 04/11] Sharing is Caring: Fix bugs (#9925) * Fix Sharing is Caring * lint and etc. * I dont actually need these * Fix crash * Fix crashes and refactor item text activation * Apply suggestions from code review * Update data/mods/sharingiscaring/scripts.ts * Update data/mods/sharingiscaring/scripts.ts --------- Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com> --- config/formats.ts | 3 + data/mods/sharingiscaring/scripts.ts | 116 +++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) diff --git a/config/formats.ts b/config/formats.ts index 854c875143a0..0c0b53c2f009 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -1774,7 +1774,9 @@ export const Formats: FormatList = [ onBeforeSwitchIn(pokemon) { let format = this.format; if (!format.getSharedItems) format = this.dex.formats.get('gen9sharingiscaring'); + if (!pokemon.m.sharedItemsUsed) pokemon.m.sharedItemsUsed = []; for (const item of format.getSharedItems!(pokemon)) { + if (pokemon.m.sharedItemsUsed.includes(item)) continue; const effect = 'item:' + item; pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; if (!pokemon.m.items) pokemon.m.items = []; @@ -1786,6 +1788,7 @@ export const Formats: FormatList = [ let format = this.format; if (!format.getSharedItems) format = this.dex.formats.get('gen9sharingiscaring'); for (const item of format.getSharedItems!(pokemon)) { + if (pokemon.m.sharedItemsUsed.includes(item)) continue; const effect = 'item:' + item; delete pokemon.volatiles[effect]; pokemon.addVolatile(effect); diff --git a/data/mods/sharingiscaring/scripts.ts b/data/mods/sharingiscaring/scripts.ts index 62fe0283c132..7986d2e5b43f 100644 --- a/data/mods/sharingiscaring/scripts.ts +++ b/data/mods/sharingiscaring/scripts.ts @@ -1,3 +1,5 @@ +import {RESTORATIVE_BERRIES} from '../../../sim/pokemon'; + export const Scripts: ModdedBattleScriptsData = { gen: 9, inherit: 'gen9', @@ -22,5 +24,119 @@ export const Scripts: ModdedBattleScriptsData = { const itemid = this.battle.toID(item); return this.item === itemid || !!this.volatiles['item:' + itemid]; }, + useItem(source, sourceEffect) { + const hasAnyItem = !!this.item || Object.keys(this.volatiles).some(v => v.startsWith('item:')); + // Best to declare everything early because ally might have a gem that needs proccing + if (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect; + if (!source && this.battle.event && this.battle.event.target) source = this.battle.event.target; + const item = (sourceEffect?.id.startsWith('item:')) ? sourceEffect as Item : this.getItem(); + if ((!this.hp && !item.isGem) || !this.isActive) return false; + if (!hasAnyItem) return false; + + if (this.battle.runEvent('UseItem', this, null, null, item)) { + switch (item.id.startsWith('item:') ? item.id.slice(5) : item.id) { + case 'redcard': + this.battle.add('-enditem', this, item.fullname, '[of] ' + source); + break; + default: + if (item.isGem) { + this.battle.add('-enditem', this, item.fullname, '[from] gem'); + } else { + this.battle.add('-enditem', this, item.fullname); + } + break; + } + if (item.boosts) { + this.battle.boost(item.boosts, this, source, item); + } + + this.battle.singleEvent('Use', item, this.itemState, this, source, sourceEffect); + + if (item.id.startsWith('item:')) { + delete this.volatiles[item.id]; + this.m.sharedItemsUsed.push(item.id.slice(5)); + } else { + this.lastItem = this.item; + this.item = ''; + this.itemState = {id: '', target: this}; + } + this.usedItemThisTurn = true; + this.battle.runEvent('AfterUseItem', this, null, null, item); + return true; + } + return false; + }, + eatItem(force, source, sourceEffect) { + const hasAnyItem = !!this.item || Object.keys(this.volatiles).some(v => v.startsWith('item:')); + if (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect; + if (!source && this.battle.event && this.battle.event.target) source = this.battle.event.target; + const item = (sourceEffect?.id.startsWith('item:')) ? sourceEffect as Item : this.getItem(); + if (!hasAnyItem) return false; + if ((!this.hp && this.battle.toID(item.name) !== 'jabocaberry' && this.battle.toID(item.name) !== 'rowapberry') || + !this.isActive) return false; + + if ( + this.battle.runEvent('UseItem', this, null, null, item) && + (force || this.battle.runEvent('TryEatItem', this, null, null, item)) + ) { + this.battle.add('-enditem', this, item.fullname, '[eat]'); + + this.battle.singleEvent('Eat', item, this.itemState, this, source, sourceEffect); + this.battle.runEvent('EatItem', this, null, null, item); + + if (RESTORATIVE_BERRIES.has(item.id.startsWith('item:') ? item.id.slice(5) as ID : item.id)) { + switch (this.pendingStaleness) { + case 'internal': + if (this.staleness !== 'external') this.staleness = 'internal'; + break; + case 'external': + this.staleness = 'external'; + break; + } + this.pendingStaleness = undefined; + } + + if (item.id.startsWith('item:')) { + delete this.volatiles[item.id]; + this.m.sharedItemsUsed.push(item.id.slice(5)); + } else { + this.lastItem = this.item; + this.item = ''; + this.itemState = {id: '', target: this}; + } + this.usedItemThisTurn = true; + this.ateBerry = true; + this.battle.runEvent('AfterUseItem', this, null, null, item); + return true; + } + return false; + }, + setItem(item, source, effect) { + if (!this.hp || !this.isActive) return false; + if (this.itemState.knockedOff) return false; + if (typeof item === 'string') item = this.battle.dex.items.get(item); + + const effectid = this.battle.effect ? this.battle.effect.id : ''; + if (RESTORATIVE_BERRIES.has('leppaberry' as ID)) { + const inflicted = ['trick', 'switcheroo'].includes(effectid); + const external = inflicted && source && !source.isAlly(this); + this.pendingStaleness = external ? 'external' : 'internal'; + } else { + this.pendingStaleness = undefined; + } + const oldItem = this.getItem(); + const oldItemState = this.itemState; + this.item = item.id; + this.itemState = {id: item.id, target: this}; + if (oldItem.exists) this.battle.singleEvent('End', oldItem, oldItemState, this); + if (item.id) { + this.battle.singleEvent('Start', item, this.itemState, this, source, effect); + for (const ally of this.side.pokemon) { + if (!ally.m.sharedItemsUsed) continue; + ally.m.sharedItemsUsed = ally.m.sharedItemsUsed.filter((i: ID) => i !== (item as Item).id); + } + } + return true; + }, }, }; From f82889502705debd955934f64a8d8202a27efec8 Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 01:24:21 -0700 Subject: [PATCH 05/11] Remove Shared Power ladder --- config/formats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/formats.ts b/config/formats.ts index 0c0b53c2f009..93d324eb729d 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -1681,7 +1681,7 @@ export const Formats: FormatList = [ ], mod: 'sharedpower', - // searchShow: false, + searchShow: false, ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'], banlist: [ 'Arceus', 'Calyrex-Shadow', 'Chien-Pao', 'Clefable', 'Flutter Mane', 'Greninja', 'Kingambit', 'Koraidon', 'Magearna', From 48eeb35e4b253fcd136952b04d9744b272a8fd7e Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 10:44:36 -0700 Subject: [PATCH 06/11] Add December 2023 tier shifts --- config/formats.ts | 14 +- data/formats-data.ts | 348 +++++++++++++++--------------- server/chat-plugins/datasearch.ts | 7 +- 3 files changed, 187 insertions(+), 182 deletions(-) diff --git a/config/formats.ts b/config/formats.ts index 93d324eb729d..119cfc010bb3 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -417,10 +417,10 @@ export const Formats: FormatList = [ mod: 'gen9', ruleset: ['[Gen 9] Ubers'], banlist: [ - 'Annihilape', 'Arceus-Base', 'Arceus-Fairy', 'Arceus-Ground', 'Basculegion', 'Calyrex-Ice', 'Chien-Pao', 'Clodsire', 'Corviknight', 'Ditto', - 'Dondozo', 'Eternatus', 'Flutter Mane', 'Glimmora', 'Gliscor', 'Giratina', 'Giratina-Origin', 'Great Tusk', 'Grimmsnarl', 'Groudon', 'Hatterene', - 'Iron Bundle', 'Iron Treads', 'Kingambit', 'Koraidon', 'Kyogre', 'Landorus-Therian', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Rayquaza', - 'Regieleki', 'Ribombee', 'Skeledirge', 'Ting-Lu', 'Toxapex', 'Zacian-Crowned', + 'Annihilape', 'Arceus-Base', 'Arceus-Fairy', 'Arceus-Ground', 'Basculegion', 'Calyrex-Ice', 'Chien-Pao', 'Clodsire', 'Ditto', 'Eternatus', + 'Flutter Mane', 'Glimmora', 'Gliscor', 'Giratina-Origin', 'Great Tusk', 'Grimmsnarl', 'Groudon', 'Hatterene', 'Iron Bundle', 'Iron Treads', + 'Kingambit', 'Koraidon', 'Kyogre', 'Landorus-Therian', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Rayquaza', 'Regieleki', 'Ribombee', + 'Skeledirge', 'Ting-Lu', 'Toxapex', 'Zacian-Crowned', // Ubers UUBL 'Arceus-Electric', 'Arceus-Flying', 'Arceus-Ghost', 'Arceus-Steel', 'Arceus-Water', 'Basculegion-F', 'Shaymin-Sky', ], @@ -433,7 +433,7 @@ export const Formats: FormatList = [ mod: 'gen9', ruleset: ['[Gen 9] PU'], - banlist: ['PU', 'Crabominable', 'Falinks', 'Lycanroc-Midnight', 'Raichu-Base', 'Zangoose'], + banlist: ['PU', 'ZUBL'], }, { name: "[Gen 9] NFE", @@ -480,8 +480,8 @@ export const Formats: FormatList = [ ruleset: ['[Gen 9] LC'], banlist: [ 'Corphish', 'Diglett-Alola', 'Drifloon', 'Foongus', 'Glimmet', 'Gothita', 'Grimer-Alola', 'Grookey', 'Impidimp', 'Koffing', - 'Larvesta', 'Magnemite', 'Mienfoo', 'Mudbray', 'Numel', 'Pawniard', 'Sandshrew', 'Sandshrew-Alola', 'Shellder', 'Shroodle', - 'Snover', 'Stunky', 'Timburr', 'Tinkatink', 'Toedscool', 'Voltorb-Hisui', 'Vullaby', 'Wattrel', 'Zorua-Hisui', + 'Larvesta', 'Magnemite', 'Mienfoo', 'Mudbray', 'Numel', 'Pawniard', 'Sandshrew-Alola', 'Shellder', 'Shroodle', 'Snover', + 'Stunky', 'Timburr', 'Tinkatink', 'Toedscool', 'Voltorb-Hisui', 'Vullaby', 'Wattrel', 'Zorua-Hisui', ], }, { diff --git a/data/formats-data.ts b/data/formats-data.ts index 2301482b1ce5..ec807eb8d59f 100644 --- a/data/formats-data.ts +++ b/data/formats-data.ts @@ -170,7 +170,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, arbok: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -182,7 +182,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachu: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -211,37 +211,37 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachuoriginal: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachuhoenn: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachusinnoh: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachuunova: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachukalos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachualola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachupartner: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -254,12 +254,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachuworld: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, raichu: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -336,14 +336,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, ninetales: { - tier: "RU", + tier: "NU", doublesTier: "DUU", natDexTier: "RU", }, ninetalesalola: { - tier: "OU", + tier: "UU", doublesTier: "DOU", - natDexTier: "OU", + natDexTier: "UU", }, igglybuff: { tier: "LC", @@ -352,7 +352,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, wigglytuff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -416,7 +416,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, dugtrio: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -439,7 +439,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, persian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -449,7 +449,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, perrserker: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -457,7 +457,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, golduck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -476,13 +476,13 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, arcanine: { - tier: "RU", + tier: "NU", doublesTier: "DUU", natDexTier: "RU", }, arcaninehisui: { tier: "UU", - doublesTier: "DUU", + doublesTier: "DOU", natDexTier: "RU", }, poliwag: { @@ -547,7 +547,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, victreebel: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -612,7 +612,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { slowbro: { tier: "RU", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "UU", }, slowbromega: { isNonstandard: "Past", @@ -632,7 +632,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { slowkinggalar: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "OU", }, magnemite: { tier: "LC", @@ -645,7 +645,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { magnezone: { tier: "RU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, farfetchd: { isNonstandard: "Past", @@ -747,7 +747,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, hypno: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -772,7 +772,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, electrode: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -878,7 +878,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, chansey: { - tier: "PU", + tier: "NU", doublesTier: "NFE", natDexTier: "UU", }, @@ -979,7 +979,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, kleavor: { tier: "UU", - doublesTier: "DUU", + doublesTier: "DOU", natDexTier: "UU", }, smoochum: { @@ -1033,7 +1033,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UUBL", }, tauros: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1048,7 +1048,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, taurospaldeaaqua: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1075,7 +1075,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, ditto: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1101,7 +1101,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, flareon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1111,22 +1111,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, umbreon: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, leafeon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, glaceon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, sylveon: { - tier: "RU", + tier: "NU", doublesTier: "DUU", natDexTier: "RU", }, @@ -1298,7 +1298,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, furret: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1306,7 +1306,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, noctowl: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1324,7 +1324,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, ariados: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1370,7 +1370,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, ampharos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1394,7 +1394,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, sudowoodo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1405,7 +1405,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, jumpluff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1413,7 +1413,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, ambipom: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1421,7 +1421,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, sunflora: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1442,7 +1442,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { quagsire: { tier: "RU", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "UU", }, murkrow: { tier: "NFE", @@ -1454,7 +1454,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, misdreavus: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, mismagius: { tier: "NU", @@ -1551,7 +1553,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RUBL", }, sneasel: { - tier: "PU", + tier: "ZU", doublesTier: "NFE", natDexTier: "NFE", }, @@ -1574,14 +1576,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, ursaring: { - tier: "PU", + tier: "ZU", doublesTier: "NFE", natDexTier: "NFE", }, ursaluna: { tier: "UU", doublesTier: "DOU", - natDexTier: "UU", + natDexTier: "OU", }, ursalunabloodmoon: { tier: "Uber", @@ -1592,7 +1594,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, magcargo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1635,7 +1637,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, delibird: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1679,7 +1681,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, wyrdeer: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1716,7 +1718,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, tyranitar: { tier: "RU", - doublesTier: "DUU", + doublesTier: "DOU", natDexTier: "UU", }, tyranitarmega: { @@ -1797,13 +1799,13 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { swampertmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "OU", + natDexTier: "UU", }, poochyena: { tier: "LC", }, mightyena: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1864,7 +1866,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, ludicolo: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1875,7 +1877,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, shiftry: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1894,7 +1896,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, pelipper: { tier: "UU", - doublesTier: "DOU", + doublesTier: "DUU", natDexTier: "OU", }, ralts: { @@ -1914,8 +1916,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UU", }, gallade: { - tier: "RU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, gallademega: { @@ -1927,7 +1929,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, masquerain: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1946,7 +1948,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, slaking: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2008,13 +2010,13 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, sableye: { tier: "PU", - doublesTier: "(DUU)", + doublesTier: "DUU", natDexTier: "RU", }, sableyemega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RUBL", + natDexTier: "UU", }, mawile: { isNonstandard: "Past", @@ -2085,12 +2087,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, volbeat: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, illumise: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2113,7 +2115,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, swalot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2146,7 +2148,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, camerupt: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2156,7 +2158,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, torkoal: { - tier: "UU", + tier: "RU", doublesTier: "DOU", natDexTier: "RU", }, @@ -2164,7 +2166,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, grumpig: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2192,7 +2194,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, cacturne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2210,12 +2212,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RUBL", }, zangoose: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, seviper: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2306,7 +2308,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, banette: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2322,12 +2324,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, dusknoir: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, tropius: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2335,7 +2337,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, chimecho: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2353,7 +2355,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, glalie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2363,7 +2365,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, froslass: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2403,7 +2405,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, luvdisc: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2416,7 +2418,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { salamence: { tier: "UU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RUBL", }, salamencemega: { isNonstandard: "Past", @@ -2466,7 +2468,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { latiasmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RUBL", }, latios: { isNonstandard: "Past", @@ -2591,7 +2593,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, kricketune: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2602,7 +2604,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, luxray: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2655,12 +2657,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, vespiquen: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pachirisu: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2668,7 +2670,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, floatzel: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2691,7 +2693,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { gastrodon: { tier: "UU", doublesTier: "DUU", - natDexTier: "RU", + natDexTier: "UU", }, drifloon: { tier: "LC", @@ -2756,10 +2758,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gabite: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, garchomp: { - tier: "UUBL", + tier: "OU", doublesTier: "DUU", natDexTier: "OU", }, @@ -2816,7 +2820,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lumineon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2824,7 +2828,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, abomasnow: { - tier: "PU", + tier: "NU", doublesTier: "DUU", natDexTier: "RU", }, @@ -2846,15 +2850,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { rotomwash: { tier: "UU", doublesTier: "(DUU)", - natDexTier: "OU", + natDexTier: "UU", }, rotomfrost: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, rotomfan: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2869,7 +2873,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, mesprit: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2924,7 +2928,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, phione: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3194,7 +3198,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, leavanny: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3405,7 +3409,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, gothitelle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3451,7 +3455,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, sawsbuck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3474,9 +3478,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, amoonguss: { - tier: "UU", + tier: "OU", doublesTier: "DOU", - natDexTier: "RU", + natDexTier: "UU", }, frillish: { isNonstandard: "Past", @@ -3535,7 +3539,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, eelektross: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3557,7 +3561,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, chandelure: { tier: "RU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, axew: { @@ -3575,7 +3579,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, beartic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3649,7 +3653,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, braviaryhisui: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3824,7 +3828,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, frogadier: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, greninja: { tier: "OU", @@ -3854,7 +3860,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { talonflame: { tier: "RU", doublesTier: "DUU", - natDexTier: "RU", + natDexTier: "UU", }, scatterbug: { tier: "LC", @@ -3894,7 +3900,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gogoat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3941,7 +3947,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { aegislash: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "OU", }, aegislashblade: { isNonstandard: "Past", @@ -4038,7 +4044,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RUBL", }, dedenne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4063,8 +4069,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, goodrahisui: { tier: "UU", - doublesTier: "DUU", - natDexTier: "RU", + doublesTier: "(DUU)", + natDexTier: "UU", }, klefki: { tier: "NU", @@ -4075,7 +4081,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, trevenant: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4194,7 +4200,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, decidueyehisui: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4247,7 +4253,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gumshoos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4276,7 +4282,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, crabominable: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4306,7 +4312,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { ribombee: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, ribombeetotem: { isNonstandard: "Past", @@ -4325,7 +4331,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, lycanrocmidnight: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4354,7 +4360,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, mudsdale: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4424,7 +4430,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, tsareena: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4434,8 +4440,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, oranguru: { - tier: "(PU)", - doublesTier: "(DUU)", + tier: "ZU", + doublesTier: "DUU", natDexTier: "RU", }, passimian: { @@ -4457,7 +4463,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, palossand: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4701,7 +4707,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { kartana: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UUBL", + natDexTier: "OU", }, guzzlord: { isNonstandard: "Past", @@ -4781,7 +4787,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, thwackey: { - tier: "PU", + tier: "ZU", doublesTier: "NFE", natDexTier: "NFE", }, @@ -4828,7 +4834,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, greedent: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4937,7 +4943,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, flapple: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4955,7 +4961,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, dipplin: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4980,7 +4986,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, barraskewda: { - tier: "RU", + tier: "UU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5036,7 +5042,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, hattrem: { - tier: "PU", + tier: "ZU", doublesTier: "NFE", natDexTier: "NFE", }, @@ -5079,12 +5085,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, falinks: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, pincurchin: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5097,12 +5103,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, stonjourner: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, eiscue: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5112,7 +5118,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, indeedeef: { - tier: "(PU)", + tier: "ZU", doublesTier: "DOU", natDexTier: "RU", }, @@ -5136,7 +5142,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { dracozolt: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, arctozolt: { isNonstandard: "Past", @@ -5186,7 +5192,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { zamazenta: { tier: "OU", doublesTier: "DUber", - natDexTier: "UUBL", + natDexTier: "OU", }, zamazentacrowned: { tier: "Uber", @@ -5249,7 +5255,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, calyrex: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5291,7 +5297,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, skeledirge: { - tier: "UU", + tier: "OU", doublesTier: "(DUU)", natDexTier: "UU", }, @@ -5299,7 +5305,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, quaxwell: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, quaquaval: { tier: "UU", @@ -5310,12 +5318,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, oinkologne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, oinkolognef: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5323,7 +5331,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, spidops: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5339,7 +5347,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, rabsca: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5363,7 +5371,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, wugtrio: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5400,7 +5408,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, scovillain: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5487,17 +5495,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, squawkabilly: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, flamigo: { - tier: "RU", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, klawf: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5510,7 +5518,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "NFE", }, garganacl: { - tier: "UUBL", + tier: "OU", doublesTier: "DUU", natDexTier: "OU", }, @@ -5526,7 +5534,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, grafaiai: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5534,7 +5542,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, dachsbun: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5542,7 +5550,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, mabosstiff: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5581,7 +5589,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, screamtail: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5632,13 +5640,13 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, ironvaliant: { tier: "OU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "OU", }, tinglu: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "OU", + natDexTier: "UU", }, chienpao: { tier: "Uber", @@ -5646,8 +5654,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, wochien: { - tier: "RU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, chiyu: { @@ -5669,11 +5677,13 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, tinkatuff: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, tinkaton: { tier: "RU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, charcadet: { @@ -5693,7 +5703,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, toedscruel: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5718,7 +5728,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, ironleaves: { - tier: "RUBL", + tier: "UU", doublesTier: "(DUU)", natDexTier: "RUBL", }, @@ -5732,22 +5742,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, okidogi: { tier: "UU", - doublesTier: "DUU", - natDexTier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", }, munkidori: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, fezandipiti: { tier: "RU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, ogerpon: { tier: "UU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, ogerponwellspring: { diff --git a/server/chat-plugins/datasearch.ts b/server/chat-plugins/datasearch.ts index eef1d53ea62e..0626613a5a8f 100644 --- a/server/chat-plugins/datasearch.ts +++ b/server/chat-plugins/datasearch.ts @@ -137,7 +137,7 @@ export const commands: Chat.ChatCommands = { `|html|
/dexsearch [parameter], [parameter], [parameter], ...: searches for Pok\u00e9mon that fulfill the selected criteria
` + `Search categories are: type, tier, color, moves, ability, gen, resists, weak, recovery, zrecovery, priority, stat, weight, height, egg group, pivot.
` + `Valid colors are: green, red, blue, white, brown, yellow, purple, pink, gray and black.
` + - `Valid tiers are: Uber/OU/UUBL/UU/RUBL/RU/NUBL/NU/PUBL/PU/ZU/NFE/LC/CAP/CAP NFE/CAP LC.
` + + `Valid tiers are: Uber/OU/UUBL/UU/RUBL/RU/NUBL/NU/PUBL/PU/ZUBL/ZU/NFE/LC/CAP/CAP NFE/CAP LC.
` + `Valid doubles tiers are: DUber/DOU/DBL/DUU/DNU.
` + `Types can be searched for by either having the type precede type or just using the type itself as a parameter; e.g., both fire type and fire show all Fire types; however, using psychic as a parameter will show all Pok\u00e9mon that learn the move Psychic and not Psychic types.
` + `resists followed by a type or move will show Pok\u00e9mon that resist that typing or move (e.g. resists normal).
` + @@ -630,10 +630,6 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str lc: 'LC', cap: 'CAP', caplc: 'CAP LC', capnfe: 'CAP NFE', }); - if (mod.gen !== 9) { - allTiers.zu = 'ZU'; - allTiers.zubl = 'ZUBL'; - } const allDoublesTiers: {[k: string]: TierTypes.Singles | TierTypes.Other} = Object.assign(Object.create(null), { doublesubers: 'DUber', doublesuber: 'DUber', duber: 'DUber', dubers: 'DUber', doublesou: 'DOU', dou: 'DOU', @@ -1128,7 +1124,6 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str if (alts.tiers && Object.keys(alts.tiers).length) { let tier = dex[mon].tier; if (nationalSearch) tier = dex[mon].natDexTier; - if (tier === '(PU)') tier = 'ZU'; if (tier.startsWith('(')) tier = tier.slice(1, -1) as TierTypes.Singles; // if (tier === 'New') tier = 'OU'; if (alts.tiers[tier]) continue; From 8c5b619f4c91e81cd696e132391242916a43010a Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:12:40 -0700 Subject: [PATCH 07/11] National Dex: Fix Slowbro + Slowbronite legality in RU --- config/formats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/formats.ts b/config/formats.ts index 119cfc010bb3..02372238d552 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -2106,7 +2106,7 @@ export const Formats: FormatList = [ mod: 'gen9', searchShow: false, ruleset: ['[Gen 9] National Dex UU'], - banlist: ['ND UU', 'ND RUBL', 'Heat Rock'], + banlist: ['ND UU', 'ND RUBL', 'Slowbro-Base + Slowbronite', 'Heat Rock'], }, { name: "[Gen 9] National Dex Monotype", From e56b0cbe68d2e434a394846e83175d9793b784a1 Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:13:18 -0700 Subject: [PATCH 08/11] FIx `/tiershift` --- server/chat-plugins/othermetas.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/chat-plugins/othermetas.ts b/server/chat-plugins/othermetas.ts index 49f8c49a31bb..139a43658ef2 100644 --- a/server/chat-plugins/othermetas.ts +++ b/server/chat-plugins/othermetas.ts @@ -14,7 +14,7 @@ interface StoneDeltas { type?: string; } -type TierShiftTiers = 'UU' | 'RUBL' | 'RU' | 'NUBL' | 'NU' | 'PUBL' | 'PU' | 'NFE' | 'LC'; +type TierShiftTiers = 'UU' | 'RUBL' | 'RU' | 'NUBL' | 'NU' | 'PUBL' | 'PU' | 'ZUBL' | 'ZU' | 'NFE' | 'LC'; function getMegaStone(stone: string, mod = 'gen9'): Item | null { let dex = Dex; @@ -407,6 +407,8 @@ export const commands: Chat.ChatCommands = { NU: 25, PUBL: 25, PU: 30, + ZUBL: 30, + ZU: 30, NFE: 30, LC: 30, }; From ab68ec4ab0139b972996d7be8972c9ab87c3abbe Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:58:09 -0700 Subject: [PATCH 09/11] Add Shared Power ladder --- config/formats.ts | 133 +++++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/config/formats.ts b/config/formats.ts index 02372238d552..f511cd7c1481 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -1122,6 +1122,72 @@ export const Formats: FormatList = [ } }, }, + { + name: "[Gen 9] Shared Power", + desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, + threads: [ + `• Shared Power`, + ], + + mod: 'sharedpower', + ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'], + banlist: [ + 'Arceus', 'Calyrex-Shadow', 'Chien-Pao', 'Clefable', 'Flutter Mane', 'Greninja', 'Kingambit', 'Koraidon', 'Magearna', + 'Miraidon', 'Ogerpon-Hearthflame', 'Rayquaza', 'Shaymin-Sky', 'Zacian', 'Zacian-Crowned', 'Arena Trap', 'Chlorophyll', + 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Regenerator', 'Shadow Tag', 'Speed Boost', 'Stench', 'Swift Swim', 'Unburden', + 'King\'s Rock', 'Leppa Berry', 'Razor Fang', 'Starf Berry', 'Baton Pass', 'Extreme Speed', 'Last Respects', + ], + unbanlist: ['Arceus-Bug', 'Arceus-Dragon', 'Arceus-Fire', 'Arceus-Ice', 'Arceus-Psychic'], + restricted: [ + 'Armor Tail', 'Comatose', 'Contrary', 'Dazzling', 'Fur Coat', 'Gale Wings', 'Good as Gold', 'Huge Power', 'Illusion', 'Imposter', + 'Magic Bounce', 'Magic Guard', 'Mold Breaker', 'Multiscale', 'Poison Heal', 'Prankster', 'Protosynthesis', 'Pure Power', 'Purifying Salt', + 'Queenly Majesty', 'Quick Draw', 'Quick Feet', 'Sand Rush', 'Simple', 'Slush Rush', 'Stakeout', 'Stamina', 'Sturdy', 'Surge Surfer', + 'Tinted Lens', 'Unaware', + ], + onValidateRule() { + if (this.format.gameType !== 'singles') { + throw new Error(`Shared Power currently does not support ${this.format.gameType} battles.`); + } + }, + getSharedPower(pokemon) { + const sharedPower = new Set(); + for (const ally of pokemon.side.pokemon) { + if (pokemon.battle.ruleTable.isRestricted(`ability:${ally.baseAbility}`)) continue; + if (ally.previouslySwitchedIn > 0) { + if (pokemon.battle.dex.currentMod !== 'sharedpower' && ['trace', 'mirrorarmor'].includes(ally.baseAbility)) { + sharedPower.add('noability'); + continue; + } + sharedPower.add(ally.baseAbility); + } + } + sharedPower.delete(pokemon.baseAbility); + return sharedPower; + }, + onBeforeSwitchIn(pokemon) { + let format = this.format; + if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); + for (const ability of format.getSharedPower!(pokemon)) { + const effect = 'ability:' + ability; + pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; + if (!pokemon.m.abils) pokemon.m.abils = []; + if (!pokemon.m.abils.includes(effect)) pokemon.m.abils.push(effect); + } + }, + onSwitchInPriority: 2, + onSwitchIn(pokemon) { + let format = this.format; + if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); + for (const ability of format.getSharedPower!(pokemon)) { + if (ability === 'noability') { + this.hint(`Mirror Armor and Trace break in Shared Power formats that don't use Shared Power as a base, so they get removed from non-base users.`); + } + const effect = 'ability:' + ability; + delete pokemon.volatiles[effect]; + pokemon.addVolatile(effect); + } + }, + }, { name: "[Gen 9] STABmons", desc: `Pokémon can use any move of their typing, in addition to the moves they can normally learn.`, @@ -1673,73 +1739,6 @@ export const Formats: FormatList = [ ], restricted: ['U-turn', 'Volt Switch'], }, - { - name: "[Gen 9] Shared Power", - desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, - threads: [ - `• Shared Power`, - ], - - mod: 'sharedpower', - searchShow: false, - ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'], - banlist: [ - 'Arceus', 'Calyrex-Shadow', 'Chien-Pao', 'Clefable', 'Flutter Mane', 'Greninja', 'Kingambit', 'Koraidon', 'Magearna', - 'Miraidon', 'Ogerpon-Hearthflame', 'Rayquaza', 'Shaymin-Sky', 'Zacian', 'Zacian-Crowned', 'Arena Trap', 'Chlorophyll', - 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Regenerator', 'Shadow Tag', 'Speed Boost', 'Stench', 'Swift Swim', 'Unburden', - 'King\'s Rock', 'Leppa Berry', 'Razor Fang', 'Starf Berry', 'Baton Pass', 'Extreme Speed', 'Last Respects', - ], - unbanlist: ['Arceus-Bug', 'Arceus-Dragon', 'Arceus-Fire', 'Arceus-Ice', 'Arceus-Psychic'], - restricted: [ - 'Armor Tail', 'Comatose', 'Contrary', 'Dazzling', 'Fur Coat', 'Gale Wings', 'Good as Gold', 'Huge Power', 'Illusion', 'Imposter', - 'Magic Bounce', 'Magic Guard', 'Mold Breaker', 'Multiscale', 'Poison Heal', 'Prankster', 'Protosynthesis', 'Pure Power', 'Purifying Salt', - 'Queenly Majesty', 'Quick Draw', 'Quick Feet', 'Sand Rush', 'Simple', 'Slush Rush', 'Stakeout', 'Stamina', 'Sturdy', 'Surge Surfer', - 'Tinted Lens', 'Unaware', - ], - onValidateRule() { - if (this.format.gameType !== 'singles') { - throw new Error(`Shared Power currently does not support ${this.format.gameType} battles.`); - } - }, - getSharedPower(pokemon) { - const sharedPower = new Set(); - for (const ally of pokemon.side.pokemon) { - if (pokemon.battle.ruleTable.isRestricted(`ability:${ally.baseAbility}`)) continue; - if (ally.previouslySwitchedIn > 0) { - if (pokemon.battle.dex.currentMod !== 'sharedpower' && ['trace', 'mirrorarmor'].includes(ally.baseAbility)) { - sharedPower.add('noability'); - continue; - } - sharedPower.add(ally.baseAbility); - } - } - sharedPower.delete(pokemon.baseAbility); - return sharedPower; - }, - onBeforeSwitchIn(pokemon) { - let format = this.format; - if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); - for (const ability of format.getSharedPower!(pokemon)) { - const effect = 'ability:' + ability; - pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; - if (!pokemon.m.abils) pokemon.m.abils = []; - if (!pokemon.m.abils.includes(effect)) pokemon.m.abils.push(effect); - } - }, - onSwitchInPriority: 2, - onSwitchIn(pokemon) { - let format = this.format; - if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); - for (const ability of format.getSharedPower!(pokemon)) { - if (ability === 'noability') { - this.hint(`Mirror Armor and Trace break in Shared Power formats that don't use Shared Power as a base, so they get removed from non-base users.`); - } - const effect = 'ability:' + ability; - delete pokemon.volatiles[effect]; - pokemon.addVolatile(effect); - } - }, - }, { name: "[Gen 9] Sharing is Caring", desc: `All Pokémon on a team share their items.`, From 6242c742f69b26d6c06695603e39ba7786f6946f Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:58:54 -0700 Subject: [PATCH 10/11] Full Potential: Ban Goodra-Hisui --- config/formats.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/formats.ts b/config/formats.ts index f511cd7c1481..2beb436e9159 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -1619,11 +1619,11 @@ export const Formats: FormatList = [ searchShow: false, ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], banlist: [ - 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', - 'Iron Bundle', 'Koraidon', 'Kyogre', 'Mewtwo', 'Miraidon', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Scream Tail', 'Shaymin-Sky', - 'Spectrier', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Arena Trap', 'Chlorophyll', 'Drought', 'Moody', 'Sand Rush', - 'Shadow Tag', 'Slush Rush', 'Swift Swim', 'Unburden', 'Booster Energy', 'Choice Scarf', 'Heat Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass', - 'Shed Tail', 'Tailwind', + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Goodra-Hisui', + 'Groudon', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Mewtwo', 'Miraidon', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Scream Tail', + 'Shaymin-Sky', 'Spectrier', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Arena Trap', 'Chlorophyll', 'Drought', 'Moody', + 'Sand Rush', 'Shadow Tag', 'Slush Rush', 'Swift Swim', 'Unburden', 'Booster Energy', 'Choice Scarf', 'Heat Rock', 'King\'s Rock', 'Razor Fang', + 'Baton Pass', 'Shed Tail', 'Tailwind', ], }, { From 603e3cd82fdfe84d212deced846c29c90e430d2b Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:59:52 -0700 Subject: [PATCH 11/11] Sketchmons: Ban Manaphy --- config/formats.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/formats.ts b/config/formats.ts index 2beb436e9159..8fbc5aa8ad92 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -701,10 +701,10 @@ export const Formats: FormatList = [ banlist: [ 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Enamorus-Base', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Gliscor', 'Greninja', 'Iron Bundle', - 'Komala', 'Koraidon', 'Kyogre', 'Landorus-Base', 'Magearna', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', - 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Roaring Moon', 'Scovillain', 'Shaymin-Sky', 'Sneasler', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu', - 'Urshifu-Rapid-Strike', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', - 'Stench', 'Booster Energy', 'King\'s Rock', 'Baton Pass', 'Last Respects', 'Shed Tail', + 'Komala', 'Koraidon', 'Kyogre', 'Landorus-Base', 'Magearna', 'Manaphy', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Ogerpon-Hearthflame', 'Palafin', + 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Roaring Moon', 'Scovillain', 'Shaymin-Sky', 'Sneasler', 'Spectrier', 'Ursaluna-Bloodmoon', + 'Urshifu', 'Urshifu-Rapid-Strike', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Arena Trap', 'Magnet Pull', 'Moody', + 'Shadow Tag', 'Stench', 'Booster Energy', 'King\'s Rock', 'Baton Pass', 'Last Respects', 'Shed Tail', ], restricted: [ 'Astral Barrage', 'Belly Drum', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Extreme Speed', 'Gigaton Hammer', 'Glacial Lance', 'Fillet Away',