@pkmn/sim 0.4.24 → 0.5.2

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 (61) hide show
  1. package/build/config/formats.js +238 -170
  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/aliases.js +2 -2
  6. package/build/data/aliases.js.map +1 -1
  7. package/build/data/conditions.js +1 -0
  8. package/build/data/conditions.js.map +1 -1
  9. package/build/data/formats-data.js +16 -8
  10. package/build/data/formats-data.js.map +1 -1
  11. package/build/data/items.js +26 -2
  12. package/build/data/items.js.map +1 -1
  13. package/build/data/learnsets.js +34 -0
  14. package/build/data/learnsets.js.map +1 -1
  15. package/build/data/mods/gen2/formats-data.js +2 -2
  16. package/build/data/mods/gen2/formats-data.js.map +1 -1
  17. package/build/data/mods/gen3/formats-data.js +1 -1
  18. package/build/data/mods/gen3/formats-data.js.map +1 -1
  19. package/build/data/mods/gen6/pokedex.js +17 -17
  20. package/build/data/mods/gen6/pokedex.js.map +1 -1
  21. package/build/data/moves.js +4 -1
  22. package/build/data/moves.js.map +1 -1
  23. package/build/data/pokedex.js +33 -0
  24. package/build/data/pokedex.js.map +1 -1
  25. package/build/data/rulesets.js +39 -5
  26. package/build/data/rulesets.js.map +1 -1
  27. package/build/data/text/items.js +4 -0
  28. package/build/data/text/items.js.map +1 -1
  29. package/build/data/text/moves.js +1 -1
  30. package/build/data/text/moves.js.map +1 -1
  31. package/build/sim/battle-actions.js +1 -1
  32. package/build/sim/battle-actions.js.map +1 -1
  33. package/build/sim/dex-formats.js +1 -1
  34. package/build/sim/dex-formats.js.map +1 -1
  35. package/build/sim/dex-species.js +4 -3
  36. package/build/sim/dex-species.js.map +1 -1
  37. package/build/sim/pokemon.js +1 -1
  38. package/build/sim/pokemon.js.map +1 -1
  39. package/build/sim/team-validator.js +3 -0
  40. package/build/sim/team-validator.js.map +1 -1
  41. package/config/formats.ts +242 -171
  42. package/data/abilities.ts +3 -1
  43. package/data/aliases.ts +2 -2
  44. package/data/conditions.ts +1 -0
  45. package/data/formats-data.ts +16 -8
  46. package/data/items.ts +26 -2
  47. package/data/learnsets.ts +34 -0
  48. package/data/mods/gen2/formats-data.ts +2 -2
  49. package/data/mods/gen3/formats-data.ts +1 -1
  50. package/data/mods/gen6/pokedex.ts +17 -17
  51. package/data/moves.ts +4 -1
  52. package/data/pokedex.ts +33 -0
  53. package/data/rulesets.ts +35 -6
  54. package/data/text/items.ts +4 -0
  55. package/data/text/moves.ts +1 -1
  56. package/package.json +1 -1
  57. package/sim/battle-actions.ts +1 -1
  58. package/sim/dex-formats.ts +1 -1
  59. package/sim/dex-species.ts +4 -3
  60. package/sim/pokemon.ts +1 -1
  61. 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",
@@ -152,7 +154,7 @@ exports.Formats = [
152
154
  mod: 'gen8',
153
155
  ruleset: ['Little Cup', 'Standard', 'Dynamax Clause'],
154
156
  banlist: [
155
- 'Corsola-Galar', 'Cutiefly', 'Drifloon', 'Gastly', 'Gothita', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vullaby', 'Vulpix-Alola', 'Woobat',
157
+ 'Corsola-Galar', 'Cutiefly', 'Drifloon', 'Gastly', 'Gothita', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vullaby', 'Vulpix-Alola', 'Woobat', 'Zigzagoon-Base',
156
158
  'Chlorophyll', 'Moody', 'Baton Pass', 'Sticky Web',
157
159
  ],
158
160
  },
@@ -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",
@@ -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",
@@ -337,11 +343,32 @@ exports.Formats = [
337
343
  },
338
344
  {
339
345
  name: "[Gen 8] VGC 2021 Series 11",
346
+ threads: [
347
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3677186/">VGC 2021 Series 11 Metagame Discussion</a>`,
348
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693427/">VGC 2021 Series 11 Sample Teams</a>`,
349
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693284/">VGC 2021 Series 11 Viability Rankings</a>`,
350
+ ],
340
351
  mod: 'gen8',
341
352
  gameType: 'doubles',
342
353
  ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit One Restricted'],
343
354
  restricted: ['Restricted Legendary'],
344
355
  },
356
+ {
357
+ name: "[Gen 8] Tiny Tourney",
358
+ threads: [
359
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694047/">Tiny Tourney Metagame Discussion</a>`,
360
+ ],
361
+ mod: 'gen8',
362
+ gameType: 'doubles',
363
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
364
+ onValidateSet(set) {
365
+ const species = this.dex.species.get(set.species);
366
+ if (!species.nfe || species.prevo)
367
+ return [`Non-first-stage Pok\u00e9mon cannot be used in Tiny Tourney.`];
368
+ if (species.heightm > 1)
369
+ return [`${species.name} is too tall to be used in Tiny Tourney.`];
370
+ },
371
+ },
345
372
  {
346
373
  name: "[Gen 8] VGC 2021 Series 9",
347
374
  mod: 'gen8',
@@ -559,42 +586,35 @@ exports.Formats = [
559
586
  column: 2,
560
587
  },
561
588
  {
562
- name: "[Gen 8] Sketchmons",
563
- desc: `Pok&eacute;mon can learn one of any move they don't normally learn, barring the few that are banned.`,
589
+ name: "[Gen 8] Revelationmons",
590
+ 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).`,
564
591
  threads: [
565
- `&bullet; <a href="https://www.smogon.com/forums/threads/3680298/">Sketchmons</a>`,
592
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3692297/">Revelationmons</a>`,
566
593
  ],
567
594
  mod: 'gen8',
568
- ruleset: ['Standard', 'Dynamax Clause', 'Sketchmons Move Legality'],
595
+ ruleset: ['Standard', 'Dynamax Clause', 'Revelationmons Mod', 'Sleep Moves Clause'],
569
596
  banlist: [
570
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Genesect',
571
- 'Giratina', 'Giratina-Origin', 'Groudon', 'Hawlucha', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base',
572
- 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa',
573
- 'Porygon-Z', 'Rayquaza', 'Regieleki', 'Reshiram', 'Rillaboom', 'Shedinja', 'Solgaleo', 'Spectrier', 'Swoobat', 'Tapu Bulu',
574
- 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base',
575
- 'Arena Trap', 'Moody', 'Power Construct', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
576
- ],
577
- restricted: [
578
- 'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed',
579
- 'Fishious Rend', 'Geomancy', 'Glacial Lance', 'Lovely Kiss', 'No Retreat', 'Oblivion Wing', 'Octolock', 'Quiver Dance', 'Secret Sword',
580
- 'Shell Smash', 'Shift Gear', 'Sleep Powder', 'Spore', 'Thousand Arrows', 'Transform', 'V-create', 'Wicked Blow',
597
+ 'Barraskewda', 'Blacephalon', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Dragapult',
598
+ 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kommo-o', 'Kyogre', 'Kyurem-Black', 'Kyurem-White',
599
+ 'Landorus-Base', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane',
600
+ 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian',
601
+ 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct',
602
+ 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
581
603
  ],
604
+ restricted: ['Bolt Beak', 'U-turn', 'Volt Switch'],
582
605
  },
583
606
  {
584
- name: "[Gen 8] AAA Doubles",
585
- desc: `Pok&eacute;mon have access to almost any ability, in a doubles setting.`,
607
+ name: "[Gen 8 BDSP] Balanced Hackmons",
608
+ desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
586
609
  threads: [
587
- `&bullet; <a href="https://www.smogon.com/forums/posts/8299984">AAA Doubles</a>`,
610
+ `&bullet; <a href="https://www.smogon.com/forums/posts/9043074">BDSP Balanced Hackmons</a>`,
588
611
  ],
589
- mod: 'gen8',
590
- gameType: 'doubles',
591
- ruleset: ['[Gen 8] Doubles OU', 'Sleep Clause Mod', '2 Ability Clause', '!Obtainable Abilities'],
612
+ mod: 'gen8bdsp',
613
+ ruleset: ['-Nonexistent', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', 'Endless Battle Clause'],
592
614
  banlist: [
593
- 'Kyurem-Black', 'Regigigas', 'Shedinja', 'Urshifu-Rapid-Strike', 'Zygarde-Base', 'Anger Point', 'Arena Trap', 'Comatose', 'Contrary',
594
- 'Dancer', 'Desolate Land', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out',
595
- 'Intrepid Sword', 'Libero', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Prankster', 'Primordial Sea', 'Protean', 'Pure Power',
596
- 'Rattled', 'Serene Grace', 'Simple', 'Soul-Heart', 'Stakeout', 'Steam Engine', 'Speed Boost', 'Water Bubble', 'Water Compaction',
597
- 'Wonder Guard', 'King\'s Rock', 'Weakness Policy', 'Beat Up', 'Stored Power',
615
+ 'Shedinja', 'Arena Trap', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion', 'Innards Out', 'Intrepid Sword',
616
+ 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble',
617
+ 'Wonder Guard', 'Comatose + Sleep Talk', 'Shell Smash',
598
618
  ],
599
619
  },
600
620
  // Other Metagames
@@ -738,12 +758,12 @@ exports.Formats = [
738
758
  mod: 'gen8',
739
759
  ruleset: ['Standard', 'STABmons Move Legality', 'Dynamax Clause', 'Sleep Moves Clause'],
740
760
  banlist: [
741
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Genesect', 'Garchomp', 'Giratina',
742
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus', 'Landorus-Therian', 'Lugia', 'Lunala',
743
- 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram',
744
- 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu', 'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
745
- 'Zamazenta', 'Zamazenta-Crowned', 'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Shadow Tag',
746
- 'King\'s Rock', 'Baton Pass',
761
+ 'Aegislash', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Genesect',
762
+ 'Garchomp', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus', 'Landorus-Therian',
763
+ 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z',
764
+ 'Rayquaza', 'Reshiram', 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu', 'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal',
765
+ 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody',
766
+ 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
747
767
  ],
748
768
  restricted: [
749
769
  'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed', 'Fishious Rend',
@@ -764,6 +784,63 @@ exports.Formats = [
764
784
  'Rhydon', 'Scyther', 'Sneasel', 'Type: Null', 'Vulpix-Base', 'Arena Trap', 'Shadow Tag', 'Baton Pass',
765
785
  ],
766
786
  },
787
+ {
788
+ name: "[Gen 8] Godly Gift",
789
+ 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.`,
790
+ threads: [
791
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
792
+ ],
793
+ mod: 'gen8',
794
+ ruleset: ['Standard', 'Dynamax Clause'],
795
+ banlist: [
796
+ 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
797
+ 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
798
+ 'Shadow Tag', 'Baton Pass',
799
+ ],
800
+ onValidateTeam(team) {
801
+ const gods = new Set();
802
+ for (const set of team) {
803
+ let species = this.dex.species.get(set.species);
804
+ if (typeof species.battleOnly === 'string')
805
+ species = this.dex.species.get(species.battleOnly);
806
+ if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
807
+ gods.add(species.name);
808
+ }
809
+ }
810
+ if (gods.size > 1) {
811
+ return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
812
+ }
813
+ },
814
+ onModifySpeciesPriority: 3,
815
+ onModifySpecies(species, target, source) {
816
+ if (source || !target?.side)
817
+ return;
818
+ const god = target.side.team.find(set => {
819
+ let godSpecies = this.dex.species.get(set.species);
820
+ const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
821
+ if (this.toID(set.ability) === 'powerconstruct') {
822
+ return true;
823
+ }
824
+ if (set.item) {
825
+ const item = this.dex.items.get(set.item);
826
+ if (item.megaEvolves === set.species)
827
+ godSpecies = this.dex.species.get(item.megaStone);
828
+ }
829
+ const isBanned = validator.isBannedSpecies(godSpecies);
830
+ return isBanned;
831
+ }) || target.side.team[0];
832
+ const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
833
+ const newSpecies = this.dex.deepClone(species);
834
+ let godSpecies = this.dex.species.get(god.species);
835
+ if (godSpecies.forme === 'Crowned') {
836
+ godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
837
+ }
838
+ newSpecies.bst -= newSpecies.baseStats[stat];
839
+ newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
840
+ newSpecies.bst += newSpecies.baseStats[stat];
841
+ return newSpecies;
842
+ },
843
+ },
767
844
  {
768
845
  name: "[Gen 8] Free-For-All",
769
846
  threads: [
@@ -789,6 +866,9 @@ exports.Formats = [
789
866
  {
790
867
  name: "[Gen 8 BDSP] Random Battle",
791
868
  desc: `Randomized teams of level-balanced Pok&eacute;mon with sets that are generated to be competitively viable.`,
869
+ threads: [
870
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693955/">BDSP Random Battle Set Discussion</a>`,
871
+ ],
792
872
  mod: 'gen8bdsp',
793
873
  team: 'random',
794
874
  ruleset: ['[Gen 8] Random Battle', '!PotD'],
@@ -801,7 +881,49 @@ exports.Formats = [
801
881
  ],
802
882
  mod: 'gen8bdsp',
803
883
  ruleset: ['Standard'],
804
- banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'],
884
+ banlist: [
885
+ 'Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
886
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang', 'Baton Pass',
887
+ ],
888
+ },
889
+ {
890
+ name: "[Gen 8 BDSP] Ubers",
891
+ threads: [
892
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694036/">BDSP Ubers Discussion &amp; Resources</a>`,
893
+ ],
894
+ mod: 'gen8bdsp',
895
+ ruleset: ['Standard'],
896
+ banlist: ['AG', 'Baton Pass'],
897
+ },
898
+ {
899
+ name: "[Gen 8 BDSP] UU",
900
+ threads: [
901
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694307/">BDSP UU</a>`,
902
+ ],
903
+ mod: 'gen8bdsp',
904
+ ruleset: ['[Gen 8 BDSP] OU'],
905
+ banlist: ['OU', 'UUBL'],
906
+ },
907
+ {
908
+ name: "[Gen 8 BDSP] Monotype",
909
+ threads: [
910
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694267/">BDSP Monotype</a>`,
911
+ ],
912
+ mod: 'gen8bdsp',
913
+ ruleset: ['Standard', 'Same Type Clause'],
914
+ banlist: [
915
+ 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza',
916
+ 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass',
917
+ ],
918
+ },
919
+ {
920
+ name: "[Gen 8 BDSP] CAP",
921
+ threads: [
922
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694238/">BDSP CAP</a>`,
923
+ ],
924
+ mod: 'gen8bdsp',
925
+ searchShow: false,
926
+ ruleset: ['[Gen 8 BDSP] OU', '+CAP'],
805
927
  },
806
928
  {
807
929
  name: "[Gen 8 BDSP] Doubles OU",
@@ -810,16 +932,17 @@ exports.Formats = [
810
932
  ],
811
933
  mod: 'gen8bdsp',
812
934
  gameType: 'doubles',
813
- searchShow: false,
814
935
  ruleset: ['Standard Doubles'],
815
- banlist: ['DUber', 'Swagger'],
936
+ banlist: ['DUber'],
816
937
  },
817
938
  {
818
939
  name: "[Gen 8 BDSP] Battle Festival Doubles",
940
+ threads: [
941
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694269/">Battle Festival Doubles</a>`,
942
+ ],
819
943
  mod: 'gen8bdsp',
820
944
  gameType: 'doubles',
821
- // VGC Timer is temporary
822
- ruleset: ['Flat Rules', 'Min Source Gen = 8', 'VGC Timer'],
945
+ ruleset: ['Flat Rules', 'Min Source Gen = 8'],
823
946
  },
824
947
  {
825
948
  name: "[Gen 8 BDSP] Pure Hackmons",
@@ -847,9 +970,9 @@ exports.Formats = [
847
970
  banlist: [
848
971
  'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon',
849
972
  'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia', 'Lunala', 'Marshadow',
850
- 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Shedinja', 'Slowking-Galar', 'Solgaleo',
851
- 'Tornadus-Therian', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base',
852
- 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
973
+ 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Reuniclus', 'Shedinja',
974
+ 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom',
975
+ 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
853
976
  ],
854
977
  onModifySpeciesPriority: 2,
855
978
  onModifySpecies(species, target, source, effect) {
@@ -867,63 +990,6 @@ exports.Formats = [
867
990
  this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
868
991
  },
869
992
  },
870
- {
871
- name: "[Gen 8] Godly Gift",
872
- 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.`,
873
- threads: [
874
- `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
875
- ],
876
- mod: 'gen8',
877
- searchShow: false,
878
- ruleset: ['Standard', 'Dynamax Clause'],
879
- banlist: [
880
- 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex', 'Zacian', 'Zacian-Crowned',
881
- 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', 'Baton Pass',
882
- ],
883
- onValidateTeam(team) {
884
- const gods = new Set();
885
- for (const set of team) {
886
- let species = this.dex.species.get(set.species);
887
- if (typeof species.battleOnly === 'string')
888
- species = this.dex.species.get(species.battleOnly);
889
- if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
890
- gods.add(species.name);
891
- }
892
- }
893
- if (gods.size > 1) {
894
- return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
895
- }
896
- },
897
- onModifySpeciesPriority: 3,
898
- onModifySpecies(species, target, source) {
899
- if (source || !target?.side)
900
- return;
901
- const god = target.side.team.find(set => {
902
- let godSpecies = this.dex.species.get(set.species);
903
- const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
904
- if (this.toID(set.ability) === 'powerconstruct') {
905
- return true;
906
- }
907
- if (set.item) {
908
- const item = this.dex.items.get(set.item);
909
- if (item.megaEvolves === set.species)
910
- godSpecies = this.dex.species.get(item.megaStone);
911
- }
912
- const isBanned = validator.isBannedSpecies(godSpecies);
913
- return isBanned;
914
- }) || target.side.team[0];
915
- const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
916
- const newSpecies = this.dex.deepClone(species);
917
- let godSpecies = this.dex.species.get(god.species);
918
- if (godSpecies.forme === 'Crowned') {
919
- godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
920
- }
921
- newSpecies.bst -= newSpecies.baseStats[stat];
922
- newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
923
- newSpecies.bst += newSpecies.baseStats[stat];
924
- return newSpecies;
925
- },
926
- },
927
993
  {
928
994
  name: "[Gen 8] Inheritance",
929
995
  desc: `Pok&eacute;mon may use the ability and moves of another, as long as they forfeit their own learnset.`,
@@ -1929,37 +1995,47 @@ exports.Formats = [
1929
1995
  column: 3,
1930
1996
  },
1931
1997
  {
1932
- name: "[Gen 6] Ubers",
1998
+ name: "[Gen 1] UU",
1933
1999
  threads: [
1934
- `&bullet; <a href="https://www.smogon.com/forums/posts/8286277/">ORAS Ubers</a>`,
2000
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
2001
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
1935
2002
  ],
1936
- mod: 'gen6',
2003
+ mod: 'gen1',
1937
2004
  // searchShow: false,
1938
- ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'],
2005
+ ruleset: ['[Gen 1] OU'],
2006
+ banlist: ['OU', 'UUBL'],
1939
2007
  },
1940
2008
  {
1941
- name: "[Gen 4] UU",
2009
+ name: "[Gen 6] 1v1",
2010
+ desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
1942
2011
  threads: [
1943
- `&bullet; <a href="https://www.smogon.com/forums/threads/3532624/">DPP UU Metagame Discussion</a>`,
1944
- `&bullet; <a href="https://www.smogon.com/forums/threads/3503638/">DPP UU Viability Rankings</a>`,
2012
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
1945
2013
  ],
1946
- mod: 'gen4',
2014
+ mod: 'gen6',
1947
2015
  // searchShow: false,
1948
- ruleset: ['[Gen 4] OU'],
1949
- banlist: ['OU', 'UUBL'],
1950
- unbanlist: ['Arena Trap'],
2016
+ ruleset: [
2017
+ 'Max Team Size = 3', 'Picked Team Size = 1',
2018
+ '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',
2019
+ ],
2020
+ banlist: [
2021
+ 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2022
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2023
+ 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2024
+ 'Focus Sash', 'Soul Dew', 'Perish Song',
2025
+ ],
1951
2026
  },
1952
2027
  {
1953
- name: "[Gen 3] Doubles OU",
2028
+ name: "[Gen 5] Doubles OU",
1954
2029
  threads: [
1955
- `&bullet; <a href="https://www.smogon.com/forums/threads/3666831/">ADV Doubles OU</a>`,
2030
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
2031
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
2032
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
1956
2033
  ],
1957
- mod: 'gen3',
1958
- // searchShow: false,
2034
+ mod: 'gen5',
1959
2035
  gameType: 'doubles',
1960
- ruleset: ['Standard', '!Sleep Clause Mod', '!Switch Priority Clause Mod'],
1961
- banlist: ['Uber'],
1962
- unbanlist: ['Deoxys-Speed', 'Wobbuffet', 'Wynaut'],
2036
+ // searchShow: false,
2037
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2038
+ banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
1963
2039
  },
1964
2040
  // Past Gens OU
1965
2041
  ///////////////////////////////////////////////////////////////////
@@ -2017,8 +2093,8 @@ exports.Formats = [
2017
2093
  `&bullet; <a href="https://www.smogon.com/forums/threads/3503019/">ADV OU Viability Rankings</a>`,
2018
2094
  ],
2019
2095
  mod: 'gen3',
2020
- ruleset: ['Standard', '3 Baton Pass Clause'],
2021
- banlist: ['Uber', 'Mr. Mime', 'Smeargle + Baton Pass', 'Sand Veil'],
2096
+ ruleset: ['Standard', 'One Boost Passer Clause'],
2097
+ banlist: ['Uber', 'Sand Veil', 'Smeargle + Ingrain'],
2022
2098
  },
2023
2099
  {
2024
2100
  name: "[Gen 2] OU",
@@ -2053,7 +2129,7 @@ exports.Formats = [
2053
2129
  `&bullet; <a href="https://www.smogon.com/forums/posts/8407209/">USM Balanced Hackmons</a>`,
2054
2130
  ],
2055
2131
  mod: 'gen7',
2056
- ruleset: ['-Nonexistent', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'CFZ Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Endless Battle Clause'],
2132
+ ruleset: ['-Nonexistent', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Forme Clause', 'CFZ Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Endless Battle Clause'],
2057
2133
  banlist: [
2058
2134
  'Groudon-Primal', 'Rayquaza-Mega', 'Gengarite', 'Comatose + Sleep Talk', 'Chatter',
2059
2135
  'Arena Trap', 'Contrary', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Moody', 'Parental Bond', 'Protean', 'Psychic Surge', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard',
@@ -2253,7 +2329,8 @@ exports.Formats = [
2253
2329
  'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kartana', 'Kyogre', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna',
2254
2330
  'Marshadow', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia',
2255
2331
  'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Tapu Lele', 'Xerneas', 'Yveltal', 'Zekrom', 'Zygarde',
2256
- 'Battle Bond', 'Shadow Tag', 'Damp Rock', 'Smooth Rock', 'Terrain Extender', 'Baton Pass',
2332
+ 'Battle Bond', 'Shadow Tag', 'Bright Powder', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw', 'Razor Fang',
2333
+ 'Smooth Rock', 'Terrain Extender', 'Baton Pass',
2257
2334
  ],
2258
2335
  },
2259
2336
  {
@@ -2460,6 +2537,15 @@ exports.Formats = [
2460
2537
  section: "OR/AS Singles",
2461
2538
  column: 4,
2462
2539
  },
2540
+ {
2541
+ name: "[Gen 6] Ubers",
2542
+ threads: [
2543
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8286277/">ORAS Ubers</a>`,
2544
+ ],
2545
+ mod: 'gen6',
2546
+ searchShow: false,
2547
+ ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'],
2548
+ },
2463
2549
  {
2464
2550
  name: "[Gen 6] UU",
2465
2551
  threads: [
@@ -2536,25 +2622,6 @@ exports.Formats = [
2536
2622
  'Soul Dew', 'Baton Pass',
2537
2623
  ],
2538
2624
  },
2539
- {
2540
- name: "[Gen 6] 1v1",
2541
- desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2542
- threads: [
2543
- `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2544
- ],
2545
- mod: 'gen6',
2546
- searchShow: false,
2547
- ruleset: [
2548
- 'Max Team Size = 3', 'Picked Team Size = 1',
2549
- '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',
2550
- ],
2551
- banlist: [
2552
- 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2553
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2554
- 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2555
- 'Focus Sash', 'Soul Dew', 'Perish Song',
2556
- ],
2557
- },
2558
2625
  {
2559
2626
  name: "[Gen 6] Anything Goes",
2560
2627
  threads: [
@@ -2575,7 +2642,7 @@ exports.Formats = [
2575
2642
  mod: 'gen6',
2576
2643
  searchShow: false,
2577
2644
  ruleset: ['[Gen 6] OU', '+CAP'],
2578
- banlist: ['Aurumoth', 'Cawmodore'],
2645
+ banlist: ['Aurumoth', 'Cawmodore', 'Crucibelle-Mega'],
2579
2646
  },
2580
2647
  {
2581
2648
  name: "[Gen 6] Battle Spot Singles",
@@ -2789,9 +2856,9 @@ exports.Formats = [
2789
2856
  searchShow: false,
2790
2857
  ruleset: [
2791
2858
  'Picked Team Size = 1', 'Max Team Size = 3',
2792
- 'Standard', 'Baton Pass Clause', 'Swagger Clause',
2859
+ 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Accuracy Moves Clause',
2793
2860
  ],
2794
- banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
2861
+ banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Mew', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
2795
2862
  unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'],
2796
2863
  },
2797
2864
  {
@@ -2816,19 +2883,6 @@ exports.Formats = [
2816
2883
  section: 'B2/W2 Doubles',
2817
2884
  column: 4,
2818
2885
  },
2819
- {
2820
- name: "[Gen 5] Doubles OU",
2821
- threads: [
2822
- `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
2823
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
2824
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
2825
- ],
2826
- mod: 'gen5',
2827
- gameType: 'doubles',
2828
- searchShow: false,
2829
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2830
- banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2831
- },
2832
2886
  {
2833
2887
  name: "[Gen 5] VGC 2013",
2834
2888
  mod: 'gen5',
@@ -2889,6 +2943,18 @@ exports.Formats = [
2889
2943
  ruleset: ['Standard'],
2890
2944
  banlist: ['AG'],
2891
2945
  },
2946
+ {
2947
+ name: "[Gen 4] UU",
2948
+ threads: [
2949
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3532624/">DPP UU Metagame Discussion</a>`,
2950
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3503638/">DPP UU Viability Rankings</a>`,
2951
+ ],
2952
+ mod: 'gen4',
2953
+ searchShow: false,
2954
+ ruleset: ['[Gen 4] OU'],
2955
+ banlist: ['OU', 'UUBL'],
2956
+ unbanlist: ['Arena Trap'],
2957
+ },
2892
2958
  {
2893
2959
  name: "[Gen 4] NU",
2894
2960
  threads: [
@@ -3043,6 +3109,18 @@ exports.Formats = [
3043
3109
  banlist: ['UU'],
3044
3110
  unbanlist: ['Baton Pass'],
3045
3111
  },
3112
+ {
3113
+ name: "[Gen 3] Doubles OU",
3114
+ threads: [
3115
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3666831/">ADV Doubles OU</a>`,
3116
+ ],
3117
+ mod: 'gen3',
3118
+ searchShow: false,
3119
+ gameType: 'doubles',
3120
+ ruleset: ['Standard', '!Sleep Clause Mod', '!Switch Priority Clause Mod'],
3121
+ banlist: ['Uber'],
3122
+ unbanlist: ['Deoxys-Speed', 'Wobbuffet', 'Wynaut'],
3123
+ },
3046
3124
  {
3047
3125
  name: "[Gen 3] 1v1",
3048
3126
  desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
@@ -3056,6 +3134,7 @@ exports.Formats = [
3056
3134
  '[Gen 3] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3057
3135
  ],
3058
3136
  banlist: ['Clefable', 'Slaking', 'Snorlax', 'Suicune', 'Destiny Bond', 'Explosion', 'Ingrain', 'Perish Song', 'Self-Destruct', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw'],
3137
+ unbanlist: ['Mr. Mime', 'Wobbuffet', 'Wynaut', 'Sand Veil'],
3059
3138
  },
3060
3139
  {
3061
3140
  name: "[Gen 3] Custom Game",
@@ -3150,17 +3229,6 @@ exports.Formats = [
3150
3229
  searchShow: false,
3151
3230
  ruleset: ['Standard'],
3152
3231
  },
3153
- {
3154
- name: "[Gen 1] UU",
3155
- threads: [
3156
- `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
3157
- `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
3158
- ],
3159
- mod: 'gen1',
3160
- searchShow: false,
3161
- ruleset: ['[Gen 1] OU'],
3162
- banlist: ['OU', 'UUBL'],
3163
- },
3164
3232
  {
3165
3233
  name: "[Gen 1] NU",
3166
3234
  threads: [