@pkmn/sim 0.4.25 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/build/config/formats.js +272 -204
  2. package/build/config/formats.js.map +1 -1
  3. package/build/data/abilities.js +5 -1
  4. package/build/data/abilities.js.map +1 -1
  5. package/build/data/formats-data.js +48 -41
  6. package/build/data/formats-data.js.map +1 -1
  7. package/build/data/items.js +26 -2
  8. package/build/data/items.js.map +1 -1
  9. package/build/data/learnsets.js +35 -1
  10. package/build/data/learnsets.js.map +1 -1
  11. package/build/data/mods/gen1/scripts.js +12 -0
  12. package/build/data/mods/gen1/scripts.js.map +1 -1
  13. package/build/data/mods/gen2/formats-data.js +2 -2
  14. package/build/data/mods/gen2/formats-data.js.map +1 -1
  15. package/build/data/mods/gen3/formats-data.js +1 -1
  16. package/build/data/mods/gen3/formats-data.js.map +1 -1
  17. package/build/data/moves.js +9 -13
  18. package/build/data/moves.js.map +1 -1
  19. package/build/data/pokedex.js +33 -0
  20. package/build/data/pokedex.js.map +1 -1
  21. package/build/data/rulesets.js +39 -5
  22. package/build/data/rulesets.js.map +1 -1
  23. package/build/data/text/items.js +4 -0
  24. package/build/data/text/items.js.map +1 -1
  25. package/build/data/text/moves.js +1 -1
  26. package/build/data/text/moves.js.map +1 -1
  27. package/build/sim/battle-actions.js +8 -3
  28. package/build/sim/battle-actions.js.map +1 -1
  29. package/build/sim/dex-formats.js +1 -1
  30. package/build/sim/dex-formats.js.map +1 -1
  31. package/build/sim/dex-species.js +4 -3
  32. package/build/sim/dex-species.js.map +1 -1
  33. package/build/sim/exported-global-types.d.ts +1 -0
  34. package/build/sim/global-types.d.ts +1 -0
  35. package/build/sim/pokemon.js +1 -1
  36. package/build/sim/pokemon.js.map +1 -1
  37. package/build/sim/team-validator.js +3 -0
  38. package/build/sim/team-validator.js.map +1 -1
  39. package/config/formats.ts +276 -205
  40. package/data/abilities.ts +3 -1
  41. package/data/formats-data.ts +48 -41
  42. package/data/items.ts +26 -2
  43. package/data/learnsets.ts +35 -1
  44. package/data/mods/gen1/scripts.ts +11 -0
  45. package/data/mods/gen2/formats-data.ts +2 -2
  46. package/data/mods/gen3/formats-data.ts +1 -1
  47. package/data/moves.ts +9 -13
  48. package/data/pokedex.ts +33 -0
  49. package/data/rulesets.ts +35 -6
  50. package/data/text/items.ts +4 -0
  51. package/data/text/moves.ts +1 -1
  52. package/package.json +1 -1
  53. package/sim/battle-actions.ts +8 -3
  54. package/sim/dex-formats.ts +1 -1
  55. package/sim/dex-species.ts +4 -3
  56. package/sim/exported-global-types.ts +1 -0
  57. package/sim/global-types.ts +1 -0
  58. package/sim/pokemon.ts +1 -1
  59. package/sim/team-validator.ts +3 -0
@@ -80,7 +80,10 @@ exports.Formats = [
80
80
  ],
81
81
  mod: 'gen8',
82
82
  ruleset: ['Standard', 'Dynamax Clause'],
83
- banlist: ['Uber', 'AG', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Baton Pass'],
83
+ banlist: [
84
+ 'Uber', 'AG', 'Arena Trap', 'Moody', 'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
85
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Baton Pass',
86
+ ],
84
87
  },
85
88
  {
86
89
  name: "[Gen 8] OU (Blitz)",
@@ -130,7 +133,6 @@ exports.Formats = [
130
133
  mod: 'gen8',
131
134
  ruleset: ['[Gen 8] RU'],
132
135
  banlist: ['RU', 'NUBL', 'Drizzle', 'Drought'],
133
- unbanlist: ['Indeedee'],
134
136
  },
135
137
  {
136
138
  name: "[Gen 8] PU",
@@ -140,7 +142,7 @@ exports.Formats = [
140
142
  ],
141
143
  mod: 'gen8',
142
144
  ruleset: ['[Gen 8] NU'],
143
- banlist: ['NU', 'PUBL', 'Indeedee'],
145
+ banlist: ['NU', 'PUBL'],
144
146
  },
145
147
  {
146
148
  name: "[Gen 8] LC",
@@ -214,7 +216,10 @@ exports.Formats = [
214
216
  ],
215
217
  mod: 'gen8',
216
218
  ruleset: ['[Gen 8] PU'],
217
- banlist: ['PU', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost', 'Turtonator', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', 'Damp Rock', 'Grassy Seed'],
219
+ banlist: [
220
+ 'PU', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost',
221
+ 'Turtonator', 'Vanilluxe', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', 'Damp Rock', 'Grassy Seed',
222
+ ],
218
223
  },
219
224
  {
220
225
  name: "[Gen 8] LC UU",
@@ -226,9 +231,9 @@ exports.Formats = [
226
231
  ruleset: ['[Gen 8] LC'],
227
232
  banlist: [
228
233
  // LC OU
229
- 'Abra', 'Archen', 'Carvanha', 'Diglett-Base', 'Dwebble', 'Ferroseed', 'Foongus', 'Frillish', 'Grookey', 'Koffing',
230
- 'Larvesta', 'Magnemite', 'Mareanie', 'Mienfoo', 'Mudbray', 'Munchlax', 'Natu', 'Onix', 'Pawniard', 'Ponyta',
231
- 'Ponyta-Galar', 'Porygon', 'Slowpoke-Base', 'Spritzee', 'Staryu', 'Timburr', 'Trapinch', 'Tyrunt', 'Vulpix',
234
+ 'Abra', 'Carvanha', 'Croagunk', 'Diglett-Base', 'Dwebble', 'Ferroseed', 'Foongus', 'Frillish', 'Grookey',
235
+ 'Koffing', 'Larvesta', 'Magnemite', 'Mareanie', 'Mienfoo', 'Mudbray', 'Munchlax', 'Natu', 'Onix', 'Pawniard',
236
+ 'Ponyta', 'Ponyta-Galar', 'Porygon', 'Slowpoke-Base', 'Staryu', 'Timburr', 'Trapinch', 'Tyrunt', 'Vulpix',
232
237
  // LC UUBL
233
238
  'Farfetch\u2019d-Galar', 'Scorbunny', 'Shellder', 'Wingull',
234
239
  ],
@@ -254,6 +259,7 @@ exports.Formats = [
254
259
  mod: 'gen8',
255
260
  searchShow: false,
256
261
  ruleset: ['[Gen 8] LC', '+CAP'],
262
+ banlist: ['Cawdet'],
257
263
  },
258
264
  {
259
265
  name: "[Gen 8] Battle Stadium Singles",
@@ -271,6 +277,20 @@ exports.Formats = [
271
277
  searchShow: false,
272
278
  ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
273
279
  },
280
+ {
281
+ name: "[Gen 8] Test Your Luck!",
282
+ threads: [
283
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695144/">Test Your Luck! Discussion</a>`,
284
+ ],
285
+ mod: 'gen8',
286
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'VGC Timer', 'Min Source Gen = 8'],
287
+ banlist: ['Azelf', 'Mesprit', 'Uxie'],
288
+ onValidateSet(set, format) {
289
+ if (set.moves.length !== 1 || this.dex.moves.get(set.moves[0]).id !== 'metronome') {
290
+ return [`${set.name || set.species} has illegal moves.`, `(${format.name} only allows the move Metronome)`];
291
+ }
292
+ },
293
+ },
274
294
  {
275
295
  name: "[Gen 8] Custom Game",
276
296
  mod: 'gen8',
@@ -335,6 +355,13 @@ exports.Formats = [
335
355
  ruleset: ['Standard Doubles', 'Little Cup', 'Dynamax Clause', 'Swagger Clause', 'Sleep Clause Mod'],
336
356
  banlist: ['Corsola-Galar', 'Cutiefly', 'Ponyta-Base', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vulpix', 'Vulpix-Alola'],
337
357
  },
358
+ {
359
+ name: "[Gen 8] VGC 2022",
360
+ mod: 'gen8',
361
+ gameType: 'doubles',
362
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'],
363
+ restricted: ['Restricted Legendary'],
364
+ },
338
365
  {
339
366
  name: "[Gen 8] VGC 2021 Series 11",
340
367
  threads: [
@@ -466,11 +493,10 @@ exports.Formats = [
466
493
  ruleset: ['[Gen 8] National Dex'],
467
494
  banlist: [
468
495
  // National Dex OU
469
- 'Blaziken', 'Blissey', 'Chansey', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Clefable', 'Corviknight', 'Diancie-Mega',
470
- 'Excadrill', 'Ferrothorn', 'Garchomp', 'Gliscor', 'Greninja', 'Heatran', 'Kartana', 'Kommo-o', 'Kyurem', 'Landorus-Therian',
471
- 'Lopunny-Mega', 'Magnezone', 'Mawile-Mega', 'Medicham-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior',
472
- 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini', 'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona',
473
- 'Weavile', 'Zapdos-Base',
496
+ 'Blissey', 'Chansey', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Clefable', 'Corviknight', 'Diancie-Mega', 'Excadrill',
497
+ 'Ferrothorn', 'Garchomp', 'Gliscor', 'Greninja', 'Heatran', 'Kartana', 'Kommo-o', 'Kyurem', 'Landorus-Therian', 'Lopunny-Mega',
498
+ 'Magnezone', 'Mawile-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior', 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini',
499
+ 'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona', 'Weavile', 'Zapdos-Base',
474
500
  'ND UUBL',
475
501
  'Drizzle', 'Drought',
476
502
  // Slowbronite is banned so it doesn't validate on Galarian Slowbro
@@ -478,10 +504,12 @@ exports.Formats = [
478
504
  ],
479
505
  // Used to distinguish UU from below UU in the client
480
506
  restricted: [
481
- 'Absol-Mega', 'Aegislash', 'Alomomola', 'Altaria-Mega', 'Amoonguss', 'Beedrill-Mega', 'Bisharp', 'Breloom', 'Celesteela',
482
- 'Donphan', 'Dragonite', 'Hippowdon', 'Infernape', 'Keldeo', 'Krookodile', 'Mandibuzz', 'Manectric-Mega', 'Melmetal', 'Mew',
483
- 'Moltres-Base', 'Porygon2', 'Regieleki', 'Rotom-Heat', 'Rotom-Wash', 'Scizor', 'Skarmory', 'Slowking', 'Slowking-Galar',
484
- 'Swampert-Base', 'Tangrowth', 'Umbreon', 'Urshifu-Rapid-Strike',
507
+ 'Aegislash', 'Alakazam-Base', 'Altaria-Mega', 'Amoonguss', 'Beedrill-Mega', 'Blaziken-Base', 'Breloom', 'Celesteela',
508
+ 'Chandelure', 'Donphan', 'Dracozolt', 'Dragonite', 'Feraligatr', 'Gastrodon', 'Hatterene', 'Hippowdon', 'Infernape',
509
+ 'Keldeo', 'Krookodile', 'Mamoswine', 'Mandibuzz', 'Manectric-Mega', 'Medicham-Mega', 'Melmetal', 'Mienshao', 'Moltres-Base',
510
+ 'Nidoking', 'Nidoqueen', 'Nihilego', 'Quagsire', 'Regieleki', 'Ribombee', 'Rotom-Heat', 'Rotom-Wash', 'Salamence',
511
+ 'Scizor', 'Skarmory', 'Slowking-Base', 'Swampert-Base', 'Talonflame', 'Tangrowth', 'Tornadus-Base', 'Umbreon',
512
+ 'Urshifu-Rapid-Strike',
485
513
  ],
486
514
  },
487
515
  {
@@ -564,36 +592,81 @@ exports.Formats = [
564
592
  column: 2,
565
593
  },
566
594
  {
567
- name: "[Gen 8] Revelationmons",
568
- desc: `The moves in the first slot(s) of a Pok&eacute;mon's set have their types changed to match the Pok&eacute;mon's type(s).`,
595
+ name: "[Gen 8] Pokebilities",
596
+ desc: `Pok&eacute;mon have all of their released abilities simultaneously.`,
569
597
  threads: [
570
- `&bullet; <a href="https://www.smogon.com/forums/threads/3692297/">Revelationmons</a>`,
598
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3679692/">Pok&eacute;bilities</a>`,
571
599
  ],
572
- mod: 'gen8',
573
- ruleset: ['Standard', 'Dynamax Clause', 'Revelationmons Mod'],
600
+ mod: 'pokebilities',
601
+ ruleset: ['Standard', 'Dynamax Clause'],
574
602
  banlist: [
575
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Dragapult', 'Eternatus', 'Genesect',
576
- 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kommo-o', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lugia',
577
- 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia',
578
- 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
579
- 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Shadow Tag',
580
- 'King\'s Rock', 'Baton Pass',
603
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Eternatus', 'Excadrill',
604
+ 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base',
605
+ 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia',
606
+ 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian',
607
+ 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zygarde-Base', 'Power Construct', 'Baton Pass',
608
+ // Moody users
609
+ 'Glalie', 'Octillery', 'Remoraid', 'Snorunt',
610
+ // Shadow Tag/Arena Trap
611
+ 'Diglett-Base', 'Dugtrio-Base', 'Gothita', 'Gothitelle', 'Gothorita', 'Trapinch', 'Wobbuffet', 'Wynaut',
581
612
  ],
582
- restricted: ['Bolt Beak', 'U-turn', 'Volt Switch'],
613
+ onBegin() {
614
+ for (const pokemon of this.getAllPokemon()) {
615
+ if (pokemon.ability === this.toID(pokemon.species.abilities['S'])) {
616
+ continue;
617
+ }
618
+ pokemon.m.innates = Object.keys(pokemon.species.abilities)
619
+ .filter(key => key !== 'S' && (key !== 'H' || !pokemon.species.unreleasedHidden))
620
+ .map(key => this.toID(pokemon.species.abilities[key]))
621
+ .filter(ability => ability !== pokemon.ability);
622
+ }
623
+ },
624
+ onSwitchInPriority: 2,
625
+ onSwitchIn(pokemon) {
626
+ if (pokemon.m.innates) {
627
+ for (const innate of pokemon.m.innates) {
628
+ pokemon.addVolatile("ability:" + innate, pokemon);
629
+ }
630
+ }
631
+ },
632
+ onAfterMega(pokemon) {
633
+ for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
634
+ pokemon.removeVolatile(innate);
635
+ }
636
+ pokemon.m.innates = undefined;
637
+ },
583
638
  },
584
639
  {
585
- name: "[Gen 8 BDSP] Balanced Hackmons",
586
- desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
640
+ name: "[Gen 8] Camomons",
641
+ desc: `Pok&eacute;mon change type to match their first two moves.`,
587
642
  threads: [
588
- `&bullet; <a href="https://www.smogon.com/forums/posts/9043074">BDSP Balanced Hackmons</a>`,
643
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3656413/">Camomons</a>`,
589
644
  ],
590
- mod: 'gen8bdsp',
591
- ruleset: ['-Nonexistent', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', 'Endless Battle Clause'],
645
+ mod: 'gen8',
646
+ // searchShow: false,
647
+ ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Clause Mod', 'Endless Battle Clause'],
592
648
  banlist: [
593
- 'Arena Trap', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion', 'Innards Out', 'Intrepid Sword', 'Libero',
594
- 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Protean', 'Pure Power', 'Shadow Tag', 'Stakeout',
595
- 'Water Bubble', 'Wonder Guard', 'Comatose + Sleep Talk', 'Chatter', 'Shell Smash',
649
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin',
650
+ 'Groudon', 'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia',
651
+ 'Lunala', 'Marshadow', 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
652
+ 'Reuniclus', 'Shedinja', 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Volcarona', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
653
+ 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
596
654
  ],
655
+ onModifySpeciesPriority: 2,
656
+ onModifySpecies(species, target, source, effect) {
657
+ if (!target)
658
+ return; // Chat command
659
+ if (effect && ['imposter', 'transform'].includes(effect.id))
660
+ return;
661
+ const types = [...new Set(target.baseMoveSlots.slice(0, 2).map(move => this.dex.moves.get(move.id).type))];
662
+ return { ...species, types: types };
663
+ },
664
+ onSwitchIn(pokemon) {
665
+ this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
666
+ },
667
+ onAfterMega(pokemon) {
668
+ this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
669
+ },
597
670
  },
598
671
  // Other Metagames
599
672
  ///////////////////////////////////////////////////////////////////
@@ -709,13 +782,13 @@ exports.Formats = [
709
782
  mod: 'gen8',
710
783
  ruleset: ['Obtainable', '!Obtainable Abilities', 'Species Clause', 'Nickname Clause', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Moves Clause', 'Endless Battle Clause'],
711
784
  banlist: [
712
- 'Archeops', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina', 'Giratina-Origin',
713
- 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mewtwo',
714
- 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja', 'Solgaleo', 'Spectrier',
715
- 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zeraora', 'Zygarde-Base',
716
- 'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Intrepid Sword',
717
- 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power', 'Shadow Tag', 'Simple', 'Stakeout',
718
- 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
785
+ 'Archeops', 'Blacephalon', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina',
786
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow',
787
+ 'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja',
788
+ 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom',
789
+ 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter',
790
+ 'Innards Out', 'Intrepid Sword', 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power',
791
+ 'Shadow Tag', 'Simple', 'Stakeout', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
719
792
  ],
720
793
  onValidateSet(set) {
721
794
  // Temporary fix until battle-only is implemented properly
@@ -762,6 +835,63 @@ exports.Formats = [
762
835
  'Rhydon', 'Scyther', 'Sneasel', 'Type: Null', 'Vulpix-Base', 'Arena Trap', 'Shadow Tag', 'Baton Pass',
763
836
  ],
764
837
  },
838
+ {
839
+ name: "[Gen 8] Godly Gift",
840
+ desc: `Each Pok&eacute;mon receives one base stat from a God (AG/Uber Pok&eacute;mon) depending on its position in the team. If there is no Uber Pok&eacute;mon, it uses the Pok&eacute;mon in the first slot.`,
841
+ threads: [
842
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
843
+ ],
844
+ mod: 'gen8',
845
+ ruleset: ['Standard', 'Dynamax Clause', 'Sleep Moves Clause'],
846
+ banlist: [
847
+ 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
848
+ 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
849
+ 'Shadow Tag', 'Baton Pass',
850
+ ],
851
+ onValidateTeam(team) {
852
+ const gods = new Set();
853
+ for (const set of team) {
854
+ let species = this.dex.species.get(set.species);
855
+ if (typeof species.battleOnly === 'string')
856
+ species = this.dex.species.get(species.battleOnly);
857
+ if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
858
+ gods.add(species.name);
859
+ }
860
+ }
861
+ if (gods.size > 1) {
862
+ return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
863
+ }
864
+ },
865
+ onModifySpeciesPriority: 3,
866
+ onModifySpecies(species, target, source) {
867
+ if (source || !target?.side)
868
+ return;
869
+ const god = target.side.team.find(set => {
870
+ let godSpecies = this.dex.species.get(set.species);
871
+ const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
872
+ if (this.toID(set.ability) === 'powerconstruct') {
873
+ return true;
874
+ }
875
+ if (set.item) {
876
+ const item = this.dex.items.get(set.item);
877
+ if (item.megaEvolves === set.species)
878
+ godSpecies = this.dex.species.get(item.megaStone);
879
+ }
880
+ const isBanned = validator.isBannedSpecies(godSpecies);
881
+ return isBanned;
882
+ }) || target.side.team[0];
883
+ const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
884
+ const newSpecies = this.dex.deepClone(species);
885
+ let godSpecies = this.dex.species.get(god.species);
886
+ if (godSpecies.forme === 'Crowned') {
887
+ godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
888
+ }
889
+ newSpecies.bst -= newSpecies.baseStats[stat];
890
+ newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
891
+ newSpecies.bst += newSpecies.baseStats[stat];
892
+ return newSpecies;
893
+ },
894
+ },
765
895
  {
766
896
  name: "[Gen 8] Free-For-All",
767
897
  threads: [
@@ -802,7 +932,10 @@ exports.Formats = [
802
932
  ],
803
933
  mod: 'gen8bdsp',
804
934
  ruleset: ['Standard'],
805
- banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'],
935
+ banlist: [
936
+ 'Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
937
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang', 'Baton Pass',
938
+ ],
806
939
  },
807
940
  {
808
941
  name: "[Gen 8 BDSP] Ubers",
@@ -816,12 +949,18 @@ exports.Formats = [
816
949
  {
817
950
  name: "[Gen 8 BDSP] UU",
818
951
  threads: [
819
- `&bullet; <a href="https://www.smogon.com/forums/threads/3694299/">BDSP UU</a>`,
952
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694307/">BDSP UU</a>`,
820
953
  ],
821
954
  mod: 'gen8bdsp',
822
955
  ruleset: ['[Gen 8 BDSP] OU'],
823
956
  banlist: ['OU', 'UUBL'],
824
957
  },
958
+ {
959
+ name: "[Gen 8 BDSP] RU",
960
+ mod: 'gen8bdsp',
961
+ ruleset: ['[Gen 8 BDSP] UU'],
962
+ banlist: ['UU', 'RUBL'],
963
+ },
825
964
  {
826
965
  name: "[Gen 8 BDSP] Monotype",
827
966
  threads: [
@@ -834,6 +973,23 @@ exports.Formats = [
834
973
  'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass',
835
974
  ],
836
975
  },
976
+ {
977
+ name: "[Gen 8 BDSP] CAP",
978
+ threads: [
979
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694238/">BDSP CAP</a>`,
980
+ ],
981
+ mod: 'gen8bdsp',
982
+ searchShow: false,
983
+ ruleset: ['[Gen 8 BDSP] OU', '+CAP'],
984
+ },
985
+ {
986
+ name: "[Gen 8 BDSP] 3v3 Singles",
987
+ threads: [
988
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695092/">BDSP 3v3 Singles</a>`,
989
+ ],
990
+ mod: 'gen8bdsp',
991
+ ruleset: ['Flat Rules', 'Min Source Gen = 8'],
992
+ },
837
993
  {
838
994
  name: "[Gen 8 BDSP] Doubles OU",
839
995
  threads: [
@@ -851,8 +1007,7 @@ exports.Formats = [
851
1007
  ],
852
1008
  mod: 'gen8bdsp',
853
1009
  gameType: 'doubles',
854
- // VGC Timer is temporary
855
- ruleset: ['Flat Rules', 'Min Source Gen = 8', 'VGC Timer'],
1010
+ ruleset: ['Flat Rules', 'Min Source Gen = 8'],
856
1011
  },
857
1012
  {
858
1013
  name: "[Gen 8 BDSP] Pure Hackmons",
@@ -868,95 +1023,6 @@ exports.Formats = [
868
1023
  section: "Challengeable OMs",
869
1024
  column: 2,
870
1025
  },
871
- {
872
- name: "[Gen 8] Camomons",
873
- desc: `Pok&eacute;mon change type to match their first two moves.`,
874
- threads: [
875
- `&bullet; <a href="https://www.smogon.com/forums/threads/3656413/">Camomons</a>`,
876
- ],
877
- mod: 'gen8',
878
- searchShow: false,
879
- ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Clause Mod', 'Endless Battle Clause'],
880
- banlist: [
881
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon',
882
- 'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia', 'Lunala', 'Marshadow',
883
- 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Shedinja', 'Slowking-Galar', 'Solgaleo',
884
- 'Tornadus-Therian', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base',
885
- 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
886
- ],
887
- onModifySpeciesPriority: 2,
888
- onModifySpecies(species, target, source, effect) {
889
- if (!target)
890
- return; // Chat command
891
- if (effect && ['imposter', 'transform'].includes(effect.id))
892
- return;
893
- const types = [...new Set(target.baseMoveSlots.slice(0, 2).map(move => this.dex.moves.get(move.id).type))];
894
- return { ...species, types: types };
895
- },
896
- onSwitchIn(pokemon) {
897
- this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
898
- },
899
- onAfterMega(pokemon) {
900
- this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
901
- },
902
- },
903
- {
904
- name: "[Gen 8] Godly Gift",
905
- desc: `Each Pok&eacute;mon receives one base stat from a God (AG/Uber Pok&eacute;mon) depending on its position in the team. If there is no Uber Pok&eacute;mon, it uses the Pok&eacute;mon in the first slot.`,
906
- threads: [
907
- `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
908
- ],
909
- mod: 'gen8',
910
- searchShow: false,
911
- ruleset: ['Standard', 'Dynamax Clause'],
912
- banlist: [
913
- 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex', 'Zacian', 'Zacian-Crowned',
914
- 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', 'Baton Pass',
915
- ],
916
- onValidateTeam(team) {
917
- const gods = new Set();
918
- for (const set of team) {
919
- let species = this.dex.species.get(set.species);
920
- if (typeof species.battleOnly === 'string')
921
- species = this.dex.species.get(species.battleOnly);
922
- if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
923
- gods.add(species.name);
924
- }
925
- }
926
- if (gods.size > 1) {
927
- return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
928
- }
929
- },
930
- onModifySpeciesPriority: 3,
931
- onModifySpecies(species, target, source) {
932
- if (source || !target?.side)
933
- return;
934
- const god = target.side.team.find(set => {
935
- let godSpecies = this.dex.species.get(set.species);
936
- const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
937
- if (this.toID(set.ability) === 'powerconstruct') {
938
- return true;
939
- }
940
- if (set.item) {
941
- const item = this.dex.items.get(set.item);
942
- if (item.megaEvolves === set.species)
943
- godSpecies = this.dex.species.get(item.megaStone);
944
- }
945
- const isBanned = validator.isBannedSpecies(godSpecies);
946
- return isBanned;
947
- }) || target.side.team[0];
948
- const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
949
- const newSpecies = this.dex.deepClone(species);
950
- let godSpecies = this.dex.species.get(god.species);
951
- if (godSpecies.forme === 'Crowned') {
952
- godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
953
- }
954
- newSpecies.bst -= newSpecies.baseStats[stat];
955
- newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
956
- newSpecies.bst += newSpecies.baseStats[stat];
957
- return newSpecies;
958
- },
959
- },
960
1026
  {
961
1027
  name: "[Gen 8] Inheritance",
962
1028
  desc: `Pok&eacute;mon may use the ability and moves of another, as long as they forfeit their own learnset.`,
@@ -1962,47 +2028,37 @@ exports.Formats = [
1962
2028
  column: 3,
1963
2029
  },
1964
2030
  {
1965
- name: "[Gen 1] UU",
1966
- threads: [
1967
- `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
1968
- `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
1969
- ],
1970
- mod: 'gen1',
2031
+ name: "[Gen 2] UU",
2032
+ threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3576710/">GSC UU</a>`],
2033
+ mod: 'gen2',
1971
2034
  // searchShow: false,
1972
- ruleset: ['[Gen 1] OU'],
2035
+ ruleset: ['[Gen 2] OU'],
1973
2036
  banlist: ['OU', 'UUBL'],
1974
2037
  },
1975
2038
  {
1976
- name: "[Gen 6] 1v1",
1977
- desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2039
+ name: "[Gen 5] NU",
1978
2040
  threads: [
1979
- `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2041
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2042
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
1980
2043
  ],
1981
- mod: 'gen6',
2044
+ mod: 'gen5',
1982
2045
  // searchShow: false,
1983
- ruleset: [
1984
- 'Max Team Size = 3', 'Picked Team Size = 1',
1985
- 'Obtainable', 'Nickname Clause', 'Moody Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Accuracy Moves Clause', 'Swagger Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview',
1986
- ],
1987
- banlist: [
1988
- 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
1989
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
1990
- 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
1991
- 'Focus Sash', 'Soul Dew', 'Perish Song',
1992
- ],
2046
+ ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2047
+ banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
1993
2048
  },
1994
2049
  {
1995
- name: "[Gen 5] Doubles OU",
2050
+ name: "[Gen 5] LC",
1996
2051
  threads: [
1997
- `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
1998
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
1999
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
2052
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2053
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3485860/">BW2 LC Viability Rankings</a>`,
2000
2054
  ],
2001
2055
  mod: 'gen5',
2002
- gameType: 'doubles',
2003
2056
  // searchShow: false,
2004
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2005
- banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2057
+ ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'],
2058
+ banlist: [
2059
+ 'Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scraggy', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma',
2060
+ 'Sand Rush', 'Sand Veil', 'Berry Juice', 'Soul Dew', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger',
2061
+ ],
2006
2062
  },
2007
2063
  // Past Gens OU
2008
2064
  ///////////////////////////////////////////////////////////////////
@@ -2060,8 +2116,8 @@ exports.Formats = [
2060
2116
  `&bullet; <a href="https://www.smogon.com/forums/threads/3503019/">ADV OU Viability Rankings</a>`,
2061
2117
  ],
2062
2118
  mod: 'gen3',
2063
- ruleset: ['Standard', '3 Baton Pass Clause'],
2064
- banlist: ['Uber', 'Mr. Mime', 'Smeargle + Baton Pass', 'Sand Veil'],
2119
+ ruleset: ['Standard', 'One Boost Passer Clause'],
2120
+ banlist: ['Uber', 'Sand Veil', 'Assist', 'Smeargle + Ingrain'],
2065
2121
  },
2066
2122
  {
2067
2123
  name: "[Gen 2] OU",
@@ -2296,7 +2352,8 @@ exports.Formats = [
2296
2352
  'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kartana', 'Kyogre', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna',
2297
2353
  'Marshadow', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia',
2298
2354
  'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Tapu Lele', 'Xerneas', 'Yveltal', 'Zekrom', 'Zygarde',
2299
- 'Battle Bond', 'Shadow Tag', 'Damp Rock', 'Smooth Rock', 'Terrain Extender', 'Baton Pass',
2355
+ 'Battle Bond', 'Shadow Tag', 'Bright Powder', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw', 'Razor Fang',
2356
+ 'Smooth Rock', 'Terrain Extender', 'Baton Pass',
2300
2357
  ],
2301
2358
  },
2302
2359
  {
@@ -2588,6 +2645,25 @@ exports.Formats = [
2588
2645
  'Soul Dew', 'Baton Pass',
2589
2646
  ],
2590
2647
  },
2648
+ {
2649
+ name: "[Gen 6] 1v1",
2650
+ desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2651
+ threads: [
2652
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2653
+ ],
2654
+ mod: 'gen6',
2655
+ searchShow: false,
2656
+ ruleset: [
2657
+ 'Max Team Size = 3', 'Picked Team Size = 1',
2658
+ 'Obtainable', 'Nickname Clause', 'Moody Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Accuracy Moves Clause', 'Swagger Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview',
2659
+ ],
2660
+ banlist: [
2661
+ 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2662
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2663
+ 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2664
+ 'Focus Sash', 'Soul Dew', 'Perish Song',
2665
+ ],
2666
+ },
2591
2667
  {
2592
2668
  name: "[Gen 6] Anything Goes",
2593
2669
  threads: [
@@ -2608,7 +2684,7 @@ exports.Formats = [
2608
2684
  mod: 'gen6',
2609
2685
  searchShow: false,
2610
2686
  ruleset: ['[Gen 6] OU', '+CAP'],
2611
- banlist: ['Aurumoth', 'Cawmodore'],
2687
+ banlist: ['Aurumoth', 'Cawmodore', 'Crucibelle-Mega'],
2612
2688
  },
2613
2689
  {
2614
2690
  name: "[Gen 6] Battle Spot Singles",
@@ -2767,17 +2843,6 @@ exports.Formats = [
2767
2843
  banlist: ['UU', 'RUBL', 'Shadow Tag', 'Shell Smash + Baton Pass'],
2768
2844
  unbanlist: ['Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'],
2769
2845
  },
2770
- {
2771
- name: "[Gen 5] NU",
2772
- threads: [
2773
- `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2774
- `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
2775
- ],
2776
- mod: 'gen5',
2777
- searchShow: false,
2778
- ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2779
- banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
2780
- },
2781
2846
  {
2782
2847
  name: "[Gen 5] PU",
2783
2848
  threads: [
@@ -2788,20 +2853,6 @@ exports.Formats = [
2788
2853
  ruleset: ['[Gen 5] NU', 'Sleep Moves Clause'],
2789
2854
  banlist: ['NU', 'Combusken', 'Gothorita', 'Linoone', 'Riolu', 'Rotom-Frost', 'Simipour', 'Throh', 'Vigoroth'],
2790
2855
  },
2791
- {
2792
- name: "[Gen 5] LC",
2793
- threads: [
2794
- `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2795
- `&bullet; <a href="https://www.smogon.com/forums/threads/3485860/">BW2 LC Viability Rankings</a>`,
2796
- ],
2797
- mod: 'gen5',
2798
- searchShow: false,
2799
- ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'],
2800
- banlist: [
2801
- 'Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scraggy', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma',
2802
- 'Sand Rush', 'Sand Veil', 'Berry Juice', 'Soul Dew', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger',
2803
- ],
2804
- },
2805
2856
  {
2806
2857
  name: "[Gen 5] Monotype",
2807
2858
  desc: `All the Pok&eacute;mon on a team must share a type.`,
@@ -2822,9 +2873,9 @@ exports.Formats = [
2822
2873
  searchShow: false,
2823
2874
  ruleset: [
2824
2875
  'Picked Team Size = 1', 'Max Team Size = 3',
2825
- 'Standard', 'Baton Pass Clause', 'Swagger Clause',
2876
+ 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Accuracy Moves Clause',
2826
2877
  ],
2827
- banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
2878
+ banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Mew', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
2828
2879
  unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'],
2829
2880
  },
2830
2881
  {
@@ -2849,6 +2900,19 @@ exports.Formats = [
2849
2900
  section: 'B2/W2 Doubles',
2850
2901
  column: 4,
2851
2902
  },
2903
+ {
2904
+ name: "[Gen 5] Doubles OU",
2905
+ threads: [
2906
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
2907
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
2908
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
2909
+ ],
2910
+ mod: 'gen5',
2911
+ gameType: 'doubles',
2912
+ searchShow: false,
2913
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2914
+ banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2915
+ },
2852
2916
  {
2853
2917
  name: "[Gen 5] VGC 2013",
2854
2918
  mod: 'gen5',
@@ -2975,7 +3039,7 @@ exports.Formats = [
2975
3039
  'Picked Team Size = 1', 'Max Team Size = 3',
2976
3040
  '[Gen 4] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
2977
3041
  ],
2978
- banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
3042
+ banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Shaymin', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
2979
3043
  unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil'],
2980
3044
  },
2981
3045
  {
@@ -3100,6 +3164,7 @@ exports.Formats = [
3100
3164
  '[Gen 3] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3101
3165
  ],
3102
3166
  banlist: ['Clefable', 'Slaking', 'Snorlax', 'Suicune', 'Destiny Bond', 'Explosion', 'Ingrain', 'Perish Song', 'Self-Destruct', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw'],
3167
+ unbanlist: ['Mr. Mime', 'Wobbuffet', 'Wynaut', 'Sand Veil'],
3103
3168
  },
3104
3169
  {
3105
3170
  name: "[Gen 3] Custom Game",
@@ -3126,14 +3191,6 @@ exports.Formats = [
3126
3191
  searchShow: false,
3127
3192
  ruleset: ['Standard'],
3128
3193
  },
3129
- {
3130
- name: "[Gen 2] UU",
3131
- threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3576710/">GSC UU</a>`],
3132
- mod: 'gen2',
3133
- searchShow: false,
3134
- ruleset: ['[Gen 2] OU'],
3135
- banlist: ['OU', 'UUBL'],
3136
- },
3137
3194
  {
3138
3195
  name: "[Gen 2] NU",
3139
3196
  threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3642565/">GSC NU</a>`],
@@ -3194,6 +3251,17 @@ exports.Formats = [
3194
3251
  searchShow: false,
3195
3252
  ruleset: ['Standard'],
3196
3253
  },
3254
+ {
3255
+ name: "[Gen 1] UU",
3256
+ threads: [
3257
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
3258
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
3259
+ ],
3260
+ mod: 'gen1',
3261
+ searchShow: false,
3262
+ ruleset: ['[Gen 1] OU'],
3263
+ banlist: ['OU', 'UUBL'],
3264
+ },
3197
3265
  {
3198
3266
  name: "[Gen 1] NU",
3199
3267
  threads: [