@pkmn/sim 0.5.14 → 0.5.17

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 (127) hide show
  1. package/build/config/formats.js +167 -174
  2. package/build/config/formats.js.map +1 -1
  3. package/build/data/aliases.js +2 -2
  4. package/build/data/aliases.js.map +1 -1
  5. package/build/data/conditions.js +4 -1
  6. package/build/data/conditions.js.map +1 -1
  7. package/build/data/formats-data.js +3 -3
  8. package/build/data/formats-data.js.map +1 -1
  9. package/build/data/items.js +5 -5
  10. package/build/data/items.js.map +1 -1
  11. package/build/data/learnsets.js +7 -6
  12. package/build/data/learnsets.js.map +1 -1
  13. package/build/data/mods/gen1/formats-data.js +1 -1
  14. package/build/data/mods/gen1/formats-data.js.map +1 -1
  15. package/build/data/mods/gen1/moves.js +1 -4
  16. package/build/data/mods/gen1/moves.js.map +1 -1
  17. package/build/data/mods/gen1/scripts.js +1 -1
  18. package/build/data/mods/gen1/scripts.js.map +1 -1
  19. package/build/data/mods/gen2/items.js +28 -0
  20. package/build/data/mods/gen2/items.js.map +1 -1
  21. package/build/data/mods/gen2/moves.js +2 -5
  22. package/build/data/mods/gen2/moves.js.map +1 -1
  23. package/build/data/mods/gen3/items.js +28 -0
  24. package/build/data/mods/gen3/items.js.map +1 -1
  25. package/build/data/mods/gen3/moves.js +0 -10
  26. package/build/data/mods/gen3/moves.js.map +1 -1
  27. package/build/data/mods/gen3/scripts.js +2 -2
  28. package/build/data/mods/gen3/scripts.js.map +1 -1
  29. package/build/data/mods/gen4/abilities.js +20 -0
  30. package/build/data/mods/gen4/abilities.js.map +1 -1
  31. package/build/data/mods/gen4/items.js +28 -0
  32. package/build/data/mods/gen4/items.js.map +1 -1
  33. package/build/data/mods/gen4/moves.js +17 -10
  34. package/build/data/mods/gen4/moves.js.map +1 -1
  35. package/build/data/mods/gen4/rulesets.js +2 -1
  36. package/build/data/mods/gen4/rulesets.js.map +1 -1
  37. package/build/data/mods/gen5/items.js +0 -4
  38. package/build/data/mods/gen5/items.js.map +1 -1
  39. package/build/data/mods/gen5/rulesets.js +2 -1
  40. package/build/data/mods/gen5/rulesets.js.map +1 -1
  41. package/build/data/mods/gen6/items.js +24 -0
  42. package/build/data/mods/gen6/items.js.map +1 -1
  43. package/build/data/mods/gen7/abilities.js +31 -0
  44. package/build/data/mods/gen7/abilities.js.map +1 -1
  45. package/build/data/mods/gen7/formats-data.js +4 -4
  46. package/build/data/mods/gen7/formats-data.js.map +1 -1
  47. package/build/data/mods/gen7/items.js +12 -0
  48. package/build/data/mods/gen7/items.js.map +1 -1
  49. package/build/data/mods/gen7/moves.js +14 -0
  50. package/build/data/mods/gen7/moves.js.map +1 -1
  51. package/build/data/mods/gen7/rulesets.js +2 -1
  52. package/build/data/mods/gen7/rulesets.js.map +1 -1
  53. package/build/data/moves.js +84 -91
  54. package/build/data/moves.js.map +1 -1
  55. package/build/data/pokedex.js +2 -2
  56. package/build/data/pokedex.js.map +1 -1
  57. package/build/data/rulesets.js +74 -4
  58. package/build/data/rulesets.js.map +1 -1
  59. package/build/data/tags.js +3 -3
  60. package/build/data/tags.js.map +1 -1
  61. package/build/data/text/items.js +1 -0
  62. package/build/data/text/items.js.map +1 -1
  63. package/build/data/text/moves.js +13 -11
  64. package/build/data/text/moves.js.map +1 -1
  65. package/build/sim/battle-actions.js +12 -4
  66. package/build/sim/battle-actions.js.map +1 -1
  67. package/build/sim/battle-queue.d.ts +2 -2
  68. package/build/sim/battle-queue.js +8 -0
  69. package/build/sim/battle-queue.js.map +1 -1
  70. package/build/sim/battle.js +85 -7
  71. package/build/sim/battle.js.map +1 -1
  72. package/build/sim/dex-conditions.d.ts +3 -2
  73. package/build/sim/dex-conditions.js.map +1 -1
  74. package/build/sim/dex-moves.d.ts +2 -1
  75. package/build/sim/dex-moves.js.map +1 -1
  76. package/build/sim/exported-global-types.d.ts +1 -0
  77. package/build/sim/global-types.d.ts +1 -0
  78. package/build/sim/pokemon.js +18 -5
  79. package/build/sim/pokemon.js.map +1 -1
  80. package/build/sim/team-validator.js +16 -5
  81. package/build/sim/team-validator.js.map +1 -1
  82. package/build/sim/tools/exhaustive-runner.d.ts +8 -0
  83. package/build/sim/tools/exhaustive-runner.js +18 -7
  84. package/build/sim/tools/exhaustive-runner.js.map +1 -1
  85. package/config/formats.ts +172 -179
  86. package/data/aliases.ts +2 -2
  87. package/data/conditions.ts +4 -1
  88. package/data/formats-data.ts +3 -3
  89. package/data/items.ts +5 -5
  90. package/data/learnsets.ts +7 -6
  91. package/data/mods/gen1/formats-data.ts +1 -1
  92. package/data/mods/gen1/moves.ts +1 -4
  93. package/data/mods/gen1/scripts.ts +1 -1
  94. package/data/mods/gen2/items.ts +28 -0
  95. package/data/mods/gen2/moves.ts +2 -5
  96. package/data/mods/gen3/items.ts +28 -0
  97. package/data/mods/gen3/moves.ts +0 -10
  98. package/data/mods/gen3/scripts.ts +3 -3
  99. package/data/mods/gen4/abilities.ts +20 -0
  100. package/data/mods/gen4/items.ts +28 -0
  101. package/data/mods/gen4/moves.ts +16 -11
  102. package/data/mods/gen4/rulesets.ts +2 -1
  103. package/data/mods/gen5/items.ts +0 -4
  104. package/data/mods/gen5/rulesets.ts +2 -1
  105. package/data/mods/gen6/items.ts +24 -0
  106. package/data/mods/gen7/abilities.ts +31 -0
  107. package/data/mods/gen7/formats-data.ts +4 -4
  108. package/data/mods/gen7/items.ts +12 -0
  109. package/data/mods/gen7/moves.ts +14 -0
  110. package/data/mods/gen7/rulesets.ts +2 -1
  111. package/data/moves.ts +84 -81
  112. package/data/pokedex.ts +2 -2
  113. package/data/rulesets.ts +73 -6
  114. package/data/tags.ts +3 -3
  115. package/data/text/items.ts +2 -0
  116. package/data/text/moves.ts +14 -11
  117. package/package.json +2 -2
  118. package/sim/battle-actions.ts +16 -5
  119. package/sim/battle-queue.ts +10 -2
  120. package/sim/battle.ts +81 -7
  121. package/sim/dex-conditions.ts +7 -2
  122. package/sim/dex-moves.ts +2 -1
  123. package/sim/exported-global-types.ts +3 -0
  124. package/sim/global-types.ts +3 -0
  125. package/sim/pokemon.ts +19 -7
  126. package/sim/team-validator.ts +17 -5
  127. package/sim/tools/exhaustive-runner.ts +29 -11
package/config/formats.ts CHANGED
@@ -208,7 +208,8 @@ export const Formats: FormatList = [
208
208
  'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Dialga', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Jirachi',
209
209
  'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mew', 'Mewtwo', 'Mimikyu', 'Necrozma', 'Necrozma-Dawn-Wings',
210
210
  'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', 'Reshiram', 'Sableye', 'Snorlax', 'Solgaleo', 'Victini', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
211
- 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Power Construct', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Perish Song',
211
+ 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Power Construct', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw',
212
+ 'Acupressure', 'Hypnosis', 'Perish Song', 'Sing',
212
213
  ],
213
214
  },
214
215
  {
@@ -253,7 +254,7 @@ export const Formats: FormatList = [
253
254
  'Larvesta', 'Magby', 'Magnemite', 'Mareanie', 'Mienfoo', 'Mudbray', 'Munchlax', 'Natu', 'Onix', 'Pawniard',
254
255
  'Ponyta', 'Ponyta-Galar', 'Porygon', 'Slowpoke-Base', 'Staryu', 'Timburr', 'Trapinch', 'Tyrunt',
255
256
  // LC UUBL
256
- 'Farfetch\u2019d-Galar', 'Scorbunny', 'Shellder', 'Wingull',
257
+ 'Archen', 'Farfetch\u2019d-Galar', 'Scorbunny', 'Shellder', 'Wingull',
257
258
  ],
258
259
  },
259
260
  {
@@ -358,7 +359,7 @@ export const Formats: FormatList = [
358
359
  gameType: 'doubles',
359
360
  searchShow: false,
360
361
  ruleset: ['Standard Doubles', 'Little Cup', 'Dynamax Clause', 'Swagger Clause', 'Sleep Clause Mod'],
361
- banlist: ['Corsola-Galar', 'Cutiefly', 'Ponyta-Base', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vulpix', 'Vulpix-Alola', 'Ally Switch'],
362
+ banlist: ['Corsola-Galar', 'Cutiefly', 'Ponyta-Base', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vulpix-Base', 'Ally Switch'],
362
363
  },
363
364
  {
364
365
  name: "[Gen 8] VGC 2022",
@@ -403,10 +404,10 @@ export const Formats: FormatList = [
403
404
  'Standard Doubles', 'Accuracy Moves Clause', 'Dynamax Clause', 'Sleep Clause Mod',
404
405
  ],
405
406
  banlist: [
406
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Jirachi', 'Kyogre',
407
- 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mewtwo', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia',
408
- 'Rayquaza', 'Reshiram', 'Solgaleo', 'Tornadus-Base', 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
409
- 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Power Construct', 'Focus Sash', 'Ally Switch', 'Final Gambit', 'Perish Song', 'Swagger',
407
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Jirachi', 'Kyogre', 'Kyurem-White',
408
+ 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mewtwo', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', 'Reshiram',
409
+ 'Solgaleo', 'Tornadus-Base', 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Whimsicott', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta',
410
+ 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Power Construct', 'Focus Sash', 'Ally Switch', 'Final Gambit', 'Perish Song', 'Swagger',
410
411
  ],
411
412
  },
412
413
  {
@@ -508,7 +509,7 @@ export const Formats: FormatList = [
508
509
  'Magnezone', 'Mawile-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior', 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini',
509
510
  'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona', 'Weavile', 'Zapdos-Base',
510
511
  'ND UUBL', // National Dex UUBL
511
- 'Drizzle', 'Drought',
512
+ 'Drizzle', 'Drought', 'Light Clay',
512
513
  // Slowbronite is banned so it doesn't validate on Galarian Slowbro
513
514
  'Slowbronite',
514
515
  ],
@@ -558,63 +559,41 @@ export const Formats: FormatList = [
558
559
  section: "Pet Mods",
559
560
  },
560
561
  {
561
- name: "[Gen 8] Alternatium",
562
- desc: `A metagame made up of only Pokémon with alternate forms, with all of them being separate and unique.`,
562
+ name: "[Gen 8] Restrictions",
563
+ desc: `A metagame made up of brand new Pokémon that are made according to various random and non-random restrictions.`,
563
564
  threads: [
564
- `&bullet; <a href="https://www.smogon.com/forums/threads/3683767/">Alternatium</a>`,
565
- `&bullet; <a href="https://docs.google.com/spreadsheets/d/1bvvkPg1CrUBJFJJeuwkts8elfJcEcahGOoHm-vGBXOI/edit?usp=sharing">Spreadsheet</a>`,
565
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3673824/">Restrictions</a>`,
566
+ `&bullet; <a href="https://docs.google.com/spreadsheets/d/1XsplBqN8njHZJT9cTP_3i3YSFITB9WaVfNOYAbNY75M/edit?usp=sharing">Spreadsheet</a>`,
566
567
  ],
567
-
568
- mod: 'alternatium',
569
- ruleset: ['Standard NatDex', 'Z-Move Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
568
+ mod: 'restrictions',
569
+ ruleset: ['Standard', 'Dynamax Clause'],
570
570
  banlist: ['All Pokemon', 'Past'],
571
571
  unbanlist: [
572
- 'Silvally', 'Silvally-Bug', 'Silvally-Dark', 'Silvally-Dragon', 'Silvally-Electric', 'Silvally-Fairy', 'Silvally-Fighting', 'Silvally-Fire', 'Silvally-Flying', 'Silvally-Ghost',
573
- 'Silvally-Grass', 'Silvally-Ground', 'Silvally-Ice', 'Silvally-Poison', 'Silvally-Psychic', 'Silvally-Rock', 'Silvally-Steel', 'Silvally-Water', 'Pikachu', 'Pikachu-Rock-Star',
574
- 'Pikachu-Belle', 'Pikachu-Idol', 'Pikachu-PhD', 'Pikachu-Libre', 'Pikachu-Partner', 'Pikachu-Starter', 'Darmanitan', 'Darmanitan-Zen', 'Darmanitan-Galar', 'Darmanitan-Galar-Zen',
575
- 'Aegishield', 'Aegislash', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Rotom', 'Rotom-Heat', 'Rotom-Wash', 'Rotom-Frost', 'Rotom-Fan', 'Rotom-Mow', 'Dugtrio',
576
- 'Dugtrio-Alola', 'Muk', 'Muk-Oilslick', 'Slowbro', 'Slowbro-Galar', 'Slowking', 'Slowking-Galar', 'Tornadus', 'Cummulus', 'Thundurus', 'Thundurus-Therian', 'Landorus', 'Landorus-Bengal',
577
- 'Vivillon-Fancy', 'Vivillon', 'Vivillon-Pokeball', 'Genesect', 'Genesect-Password', 'Genesect-Molten', 'Genesect-Freezer', 'Genesect-Type-Delta', 'Groudon', 'Groudon-Primal', 'Kyogre',
578
- 'Kyogre-Primal', 'Deoxys-Wood', 'Deoxys-Gem', 'Deoxys-Tank', 'Deoxys-Speed', 'Sandslash-Lustrous', 'Sandslash-Alola', 'Ninetales-Steamwork', 'Ninetales-Alola', 'Giratina', 'Giratina-Shadow',
579
- 'Eternatus', 'Manustorm', 'Exeggutor', 'Exeggutor-Lighthouse', 'Weezing', 'Weezing-King', 'Raticate', 'Raticate-Alola', 'Linoone', 'Linoone-Punk', 'Catastroform', 'Castform-Firestorm',
580
- 'Castform-Thunderstorm', 'Castform-Snowy', 'Wormadam', 'Wormadam-Sandy', 'Fibormadam', 'Farfetch\u2019d', 'Farfetch\u2019d-Galar', 'Corsola', 'Corsoul', 'Shaymin', 'Shaymin-Sky', 'Keldeo',
581
- 'Swordeo', 'Meloetta', 'Meloetta-Fighter', 'Lycanday', 'Lycanroc-Spectre', 'Lycanroc-Dusk', 'Gourgeist', 'Gourgeist-Fae', 'Gourgeist-Pulpy', 'Supergeist', 'Cramorant', 'Cramorant-Swimmer',
582
- 'Cramorant-Gorging', 'Eiscue', 'Eiscue-Noice', 'Mimikyu', 'Mimikyu-Sparkstone', 'Morpeko-Marsh', 'Morvilant', 'Zygarde-Wyrm', 'Zygarde-Canid', 'Zygarde-Goliath',
583
- ],
584
- onValidateTeam(team, format) {
585
- const speciesTable = new Set<string>();
586
- for (const set of team) {
587
- const species = this.dex.species.get(set.species);
588
- if (speciesTable.has(species.id)) {
589
- return [
590
- `You are limited to one of each Pokémon by Species Clause (except for different formes).`,
591
- `(You have more than one ${species.id}.)`,
592
- ];
593
- }
594
- speciesTable.add(species.id);
595
- }
596
- },
572
+ 'Vulcaraptor', 'Parakinesis', 'Serpaint', 'Torgeist', 'Regolite', 'Polbearab', 'Centhorn', 'Donzyxote', 'Scimicobra', 'Folliclawe', 'Afloof', 'Nimbusteed',
573
+ 'Aerock', 'Borassa', 'Sharm', 'Nunopod', 'Crypterid', 'Abysseil', 'Faerenheit', 'Spiriteal', 'Zoltanka', 'Flydra', 'Coracrab', 'Quadringo', 'Teslaple',
574
+ 'Kapagon', 'Cyknight', 'Dirtoad', 'Crystelf', 'Rancourgar', 'Scalaron', 'Dragraceful', 'Tantrary', 'Modolith', 'Snailord', 'Arbrella', 'Draugelid',
575
+ 'Cinnastar', 'Refluse', 'Kelven', 'Kodokai', 'Cindarner', 'Thucotuco', 'Sorree', 'Gembezzle', 'Winterloper', 'Agapest', 'Volvolpa', 'Punduluum', 'Wraithful',
576
+ 'Panzarma', 'Krachiten', 'Cellsius', 'Borelem', 'Electangle', 'Orchile', 'Shinodori', 'Fluidrake', 'Potossum', 'Twygdrasill',
577
+ ],
597
578
  },
598
579
  {
599
- name: "[Gen 8] Random Dex",
600
- desc: `A micrometagame project consisting of 80 randomly selected fully-evolved Pok&eacute;mon.`,
580
+ name: "[Gen 8] Roulettemons Random Battle",
601
581
  threads: [
602
- `&bullet; <a href="https://www.smogon.com/forums/threads/3690182/">Random Dex</a>`,
603
- ],
604
-
605
- mod: 'randomdex',
606
- ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
607
- banlist: ['All Pokemon', 'Past', 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', 'Bright Powder', 'Lax Incense', 'King\'s Rock', 'Razor Fang', 'Kangaskhanite', 'Medichamite', 'Kommonium Z'],
608
- unbanlist: [
609
- 'Absol', 'Absol-Mega', 'Appletun', 'Articuno', 'Aurorus', 'Basculin', 'Beartic', 'Bisharp', 'Calyrex', 'Camerupt', 'Camerupt-Mega',
610
- 'Celesteela', 'Cloyster', 'Crawdaunt', 'Cursola', 'Dedenne', 'Delibird', 'Eelektross', 'Espeon', 'Flapple', 'Flareon', 'Flygon',
611
- 'Galvantula', 'Girafarig', 'Glaceon', 'Goodra', 'Gourgeist', 'Grimmsnarl', 'Guzzlord', 'Heliolisk', 'Hitmonchan', 'Hitmonlee',
612
- 'Hitmontop', 'Incineroar', 'Indeedee', 'Jolteon', 'Kangaskhan', 'Kommo-o', 'Lanturn', 'Leafeon', 'Leavanny', 'Ludicolo', 'Lunatone',
613
- 'Luvdisc', 'Machamp', 'Mandibuzz', 'Medicham', 'Nihilego', 'Palossand', 'Pidgeot', 'Pidgeot-Mega', 'Probopass', 'Pyroar', 'Sawk',
614
- 'Sceptile', 'Sceptile-Mega', 'Scolipede', 'Shiftry', 'Simisage', 'Slowbro', 'Slowbro-Mega', 'Slowking', 'Swoobat', 'Sylveon',
615
- 'Tapu Bulu', 'Tapu Fini', 'Tauros', 'Typhlosion', 'Umbreon', 'Ursaring', 'Vaporeon', 'Whiscash', 'Wishiwashi', 'Zebstrika', 'Absolite',
616
- 'Pidgeotite', 'Sceptilite', 'Cameruptite', 'Slowbronite',
582
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3649106/">Roulettemons</a>`,
583
+ `&bullet; <a href="https://docs.google.com/spreadsheets/d/1EOA1m7JXTq7Zz0ViVI4n6lBppFjVBa4S1GqhAwkPTZQ/edit?usp=sharing">Spreadsheet</a>`,
617
584
  ],
585
+ team: 'random',
586
+ mod: 'roulettemons',
587
+ ruleset: ['Standard NatDex'],
588
+ onSwitchIn(pokemon) {
589
+ this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]');
590
+ },
591
+ onChangeSet(set) {
592
+ if (set.species === 'Chillyte-Mega') {
593
+ set.species = 'Chillyte';
594
+ set.ability = 'Grassy Surge';
595
+ }
596
+ },
618
597
  },
619
598
  {
620
599
  name: "[Gen 6] NEXT OU",
@@ -637,42 +616,46 @@ export const Formats: FormatList = [
637
616
  column: 2,
638
617
  },
639
618
  {
640
- name: "[Gen 8] Sketchmons",
641
- desc: `Every Pok&eacute;mon gets a new move once.`,
619
+ name: "[Gen 8] Crazyhouse",
620
+ desc: `Pok&eacute;mon you KO are added to your team and removed from the opponent's, and vice versa.`,
642
621
  threads: [
643
- `&bullet; <a href="https://www.smogon.com/forums/threads/3680298/">Sketchmons</a>`,
622
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3699268/">Crazyhouse</a>`,
644
623
  ],
645
624
 
646
625
  mod: 'gen8',
647
- ruleset: ['Standard', 'Sketchmons Move Legality', 'Dynamax Clause'],
626
+ ruleset: ['Standard', 'Crazyhouse Rule', 'Dynamax Clause', 'Sleep Moves Clause', 'Evasion Abilities Clause', '!Sleep Clause Mod'],
648
627
  banlist: [
649
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Genesect', 'Giratina',
650
- 'Giratina-Origin', 'Groudon', 'Hawlucha', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lugia', 'Lunala',
651
- 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Porygon-Z', 'Pheromosa', 'Rayquaza', 'Regieleki',
652
- 'Reshiram', 'Rillaboom', 'Shedinja', 'Solgaleo', 'Spectrier', 'Swoobat', 'Tapu Bulu', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
653
- 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Sand Rush',
654
- 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
655
- ],
656
- restricted: [
657
- 'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed', 'Fishious Rend',
658
- 'Geomancy', 'Glacial Lance', 'Lovely Kiss', 'No Retreat', 'Oblivion Wing', 'Octolock', 'Quiver Dance', 'Secret Sword', 'Shell Smash', 'Shift Gear',
659
- 'Sleep Powder', 'Spore', 'Thousand Arrows', 'Transform', 'V-create', 'Wicked Blow',
628
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Eternatus', 'Genesect', 'Giratina',
629
+ 'Giratina-Origin', 'Groudon', 'Hawlucha', 'Ho-Oh', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lugia',
630
+ 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa',
631
+ 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta',
632
+ 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Bright Powder',
633
+ 'King\'s Rock', 'Lax Incense', 'Baton Pass', 'Explosion', 'Final Gambit', 'Healing Wish', 'Lunar Dance', 'Memento',
634
+ 'Misty Explosion', 'Self-Destruct',
660
635
  ],
661
636
  },
662
637
  {
663
- name: "[Gen 8] Flipped",
664
- desc: `Pok&eacute;mon have their base stats flipped.`,
638
+ name: "[Gen 8] Pokebilities AAA",
639
+ desc: `Pok&eacute;mon have all of their released abilities simultaneously alongside any additional ability.`,
665
640
  threads: [
666
- `&bullet; <a href="https://www.smogon.com/forums/threads/3662020/">Flipped</a>`,
641
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8821047">Pok&eacute;bilities AAA</a>`,
667
642
  ],
668
643
 
669
- mod: 'gen8',
670
- ruleset: ['Standard', 'Flipped Mod', 'Dynamax Clause'],
644
+ mod: 'pokebilities',
645
+ ruleset: ['[Gen 8] Pokebilities', '!Obtainable Abilities', 'AAA Restricted Abilities', '2 Ability Clause', 'Sleep Moves Clause', '!Sleep Clause Mod'],
671
646
  banlist: [
672
- 'Azumarill', 'Blissey', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre',
673
- 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Marshadow', 'Melmetal', 'Mewtwo', 'Necrozma-Dawn Wings', 'Necrozma-Dusk Mane', 'Palkia',
674
- 'Rayquaza', 'Reshiram', 'Solgaleo', 'Steelix', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom',
675
- 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Psychic Surge', 'Shadow Tag', 'Baton Pass', 'Psychic Terrain', 'Shell Smash',
647
+ 'Alakazam', 'Blacephalon', 'Buzzwole', 'Clefable', 'Dragapult', 'Dragonite', 'Gengar', 'Kartana', 'Keldeo', 'Kyurem', 'Melmetal', 'Mienshao',
648
+ 'Noivern', 'Obstagoon', 'Perrserker', 'Rillaboom', 'Tapu Lele', 'Urshifu', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Zamazenta-Crowned',
649
+ 'Zapdos-Galar', 'Arena Trap', 'Moody', 'Shadow Tag', 'Wonder Guard', 'Chlorophyll + Desolate Land', 'Chlorophyll + Drought', 'Electric Surge + Surge Surfer',
650
+ 'Regenerator + Emergency Exit', 'Regenerator + Multiscale', 'Regenerator + Shadow Shield', 'Regenerator + Wimp Out', 'Sand Rush + Sand Stream',
651
+ 'Slush Rush + Snow Warning', 'Swift Swim + Drizzle', 'Swift Swim + Primordial Sea', 'Snow Cloak + Snow Warning', 'Sand Veil + Sand Stream',
652
+ 'Regenerator > 2', 'Bright Powder', 'Lax Incense', 'Quick Claw',
653
+ ],
654
+ restricted: [
655
+ 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out',
656
+ 'Intrepid Sword', 'Libero', 'Magnet Pull', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Prankster', 'Protean', 'Pure Power',
657
+ 'Quick Draw', 'Sand Veil', 'Serene Grace', 'Simple', 'Snow Cloak', 'Speed Boost', 'Stakeout', 'Stench', 'Tinted Lens', 'Triage',
658
+ 'Unburden', 'Water Bubble',
676
659
  ],
677
660
  },
678
661
 
@@ -700,25 +683,6 @@ export const Formats: FormatList = [
700
683
  'Water Bubble', 'Wonder Guard', 'Comatose + Sleep Talk', 'Rusted Sword', 'Court Change', 'Bolt Beak', 'Double Iron Bash',
701
684
  'Octolock', 'Shell Smash',
702
685
  ],
703
- onChangeSet(set) {
704
- const item = this.dex.toID(set.item);
705
- if (set.species === 'Zacian' && item === 'rustedsword') {
706
- set.species = 'Zacian-Crowned';
707
- set.ability = 'Intrepid Sword';
708
- const ironHead = set.moves.indexOf('ironhead');
709
- if (ironHead >= 0) {
710
- set.moves[ironHead] = 'behemothblade';
711
- }
712
- }
713
- if (set.species === 'Zamazenta' && item === 'rustedshield') {
714
- set.species = 'Zamazenta-Crowned';
715
- set.ability = 'Dauntless Shield';
716
- const ironHead = set.moves.indexOf('ironhead');
717
- if (ironHead >= 0) {
718
- set.moves[ironHead] = 'behemothbash';
719
- }
720
- }
721
- },
722
686
  },
723
687
  {
724
688
  name: "[Gen 8] Almost Any Ability",
@@ -740,15 +704,6 @@ export const Formats: FormatList = [
740
704
  'Innards Out', 'Intrepid Sword', 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Protean',
741
705
  'Pure Power', 'Shadow Tag', 'Simple', 'Stakeout', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
742
706
  ],
743
- onValidateSet(set) {
744
- // Temporary fix until battle-only is implemented properly
745
- if (this.toID(set.species) === 'zamazentacrowned' && this.toID(set.ability) !== 'dauntlessshield') {
746
- return [`Zamazenta-Crowned can only use Dauntless Shield because it is a battle-only forme.`];
747
- }
748
- if (this.toID(set.species) === 'zaciancrowned' && this.toID(set.ability) !== 'intrepidsword') {
749
- return [`Zacian-Crowned can only use Intrepid Sword because it is a battle-only forme.`];
750
- }
751
- },
752
707
  },
753
708
  {
754
709
  name: "[Gen 8] Mix and Mega",
@@ -868,9 +823,9 @@ export const Formats: FormatList = [
868
823
  mod: 'gen8',
869
824
  ruleset: ['Standard', 'Dynamax Clause', 'Sleep Moves Clause'],
870
825
  banlist: [
871
- 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Eternatus', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu',
872
- 'Toxapex', 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody',
873
- 'Pure Power', 'Shadow Tag', 'Swift Swim', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw',
826
+ 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Crawdaunt', 'Dragapult', 'Eternatus', 'Hawlucha', 'Marowak-Alola', 'Melmetal',
827
+ 'Pikachu', 'Toxapex', 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power',
828
+ 'Moody', 'Pure Power', 'Shadow Tag', 'Swift Swim', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw',
874
829
  'Baton Pass',
875
830
  ],
876
831
  onValidateTeam(team) {
@@ -919,9 +874,6 @@ export const Formats: FormatList = [
919
874
  const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
920
875
  const newSpecies = this.dex.deepClone(species);
921
876
  let godSpecies = this.dex.species.get(god.species);
922
- if (godSpecies.forme === 'Crowned') {
923
- godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
924
- }
925
877
  if (typeof godSpecies.battleOnly === 'string') {
926
878
  godSpecies = this.dex.species.get(godSpecies.battleOnly);
927
879
  }
@@ -1775,6 +1727,17 @@ export const Formats: FormatList = [
1775
1727
  }
1776
1728
  }
1777
1729
  },
1730
+ onSwitchOut(pokemon) {
1731
+ for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
1732
+ pokemon.removeVolatile(innate);
1733
+ }
1734
+ },
1735
+ onFaint(pokemon) {
1736
+ for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
1737
+ const innateEffect = this.dex.conditions.get(innate) as Effect;
1738
+ this.singleEvent('End', innateEffect, null, pokemon);
1739
+ }
1740
+ },
1778
1741
  onAfterMega(pokemon) {
1779
1742
  for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
1780
1743
  pokemon.removeVolatile(innate);
@@ -2419,40 +2382,36 @@ export const Formats: FormatList = [
2419
2382
  column: 3,
2420
2383
  },
2421
2384
  {
2422
- name: "[Gen 5] UU",
2385
+ name: "[Gen 6] UU",
2423
2386
  threads: [
2424
- `&bullet; <a href="https://www.smogon.com/forums/threads/3474024/">BW2 UU Viability Rankings</a>`,
2425
- `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2387
+ `&bullet; <a href="https://www.smogon.com/dex/xy/formats/uu/">ORAS UU Banlist</a>`,
2388
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3598164/">ORAS UU Viability Rankings</a>`,
2426
2389
  ],
2427
2390
 
2428
- mod: 'gen5',
2391
+ mod: 'gen6',
2429
2392
  // searchShow: false,
2430
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2431
- banlist: ['Uber', 'OU', 'UUBL', 'Arena Trap', 'Drought', 'Sand Stream', 'Snow Warning', 'Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'],
2393
+ ruleset: ['[Gen 6] OU'],
2394
+ banlist: ['OU', 'UUBL', 'Drizzle', 'Drought'],
2432
2395
  },
2433
2396
  {
2434
- name: "[Gen 5] NU",
2435
- threads: [
2436
- `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2437
- `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
2438
- ],
2397
+ name: "[Gen 4] Anything Goes",
2439
2398
 
2440
- mod: 'gen5',
2399
+ mod: 'gen4',
2441
2400
  // searchShow: false,
2442
- ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2443
- banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
2401
+ ruleset: ['Obtainable', 'Arceus EV Limit', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
2444
2402
  },
2445
2403
  {
2446
- name: "[Gen 6] PU",
2404
+ name: "[Gen 7] RU",
2447
2405
  threads: [
2448
- `&bullet; <a href="https://www.smogon.com/dex/xy/tags/pu/">ORAS PU Banlist</a>`,
2449
- `&bullet; <a href="https://www.smogon.com/forums/threads/3528743/">ORAS PU Viability Rankings</a>`,
2406
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3645338/">USM RU Sample Teams</a>`,
2407
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3645873/">USM RU Viability Rankings</a>`,
2450
2408
  ],
2451
2409
 
2452
- mod: 'gen6',
2410
+ mod: 'gen7',
2453
2411
  // searchShow: false,
2454
- ruleset: ['[Gen 6] NU'],
2455
- banlist: ['NU', 'PUBL', 'Chatter'],
2412
+ ruleset: ['[Gen 7] UU'],
2413
+ banlist: ['UU', 'RUBL', 'Mimikyu', 'Aurora Veil'],
2414
+ unbanlist: ['Drought'],
2456
2415
  },
2457
2416
 
2458
2417
  // Past Gens OU
@@ -2518,7 +2477,7 @@ export const Formats: FormatList = [
2518
2477
 
2519
2478
  mod: 'gen3',
2520
2479
  ruleset: ['Standard', 'One Boost Passer Clause'],
2521
- banlist: ['Uber', 'Sand Veil', 'Soundproof', 'Assist', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Smeargle + Ingrain'],
2480
+ banlist: ['Uber', 'Sand Veil', 'Soundproof', 'Assist', 'Baton Pass + Block', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Smeargle + Ingrain'],
2522
2481
  },
2523
2482
  {
2524
2483
  name: "[Gen 2] OU",
@@ -2662,22 +2621,12 @@ export const Formats: FormatList = [
2662
2621
  name: "[Gen 6] Pure Hackmons",
2663
2622
  desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
2664
2623
  threads: [
2665
- `&bullet; <a href="https://www.smogon.com/forums/posts/8111004/">ORAS Pure Hackmons</a>`,
2624
+ `&bullet; <a href="https://www.smogon.com/forums/posts/9029427/">ORAS Pure Hackmons</a>`,
2666
2625
  ],
2667
2626
 
2668
2627
  mod: 'gen6',
2669
2628
  ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', 'EV limit = 510'],
2670
2629
  },
2671
- {
2672
- name: "[Gen 5] ZU",
2673
- threads: [
2674
- `&bullet; <a href="https://www.smogon.com/forums/posts/8034680/">BW2 ZU</a>`,
2675
- ],
2676
-
2677
- mod: 'gen5',
2678
- ruleset: ['[Gen 5] PU'],
2679
- banlist: ['PU', 'Dragonair', 'Glalie', 'Machoke', 'Marowak', 'Omanyte', 'Regigigas', 'Trubbish', 'Whirlipede', 'Baton Pass'],
2680
- },
2681
2630
 
2682
2631
  // US/UM Singles
2683
2632
  ///////////////////////////////////////////////////////////////////
@@ -2708,19 +2657,6 @@ export const Formats: FormatList = [
2708
2657
  ruleset: ['[Gen 7] OU'],
2709
2658
  banlist: ['OU', 'UUBL', 'Drizzle', 'Drought', 'Kommonium Z', 'Mewnium Z'],
2710
2659
  },
2711
- {
2712
- name: "[Gen 7] RU",
2713
- threads: [
2714
- `&bullet; <a href="https://www.smogon.com/forums/threads/3645338/">USM RU Sample Teams</a>`,
2715
- `&bullet; <a href="https://www.smogon.com/forums/threads/3645873/">USM RU Viability Rankings</a>`,
2716
- ],
2717
-
2718
- mod: 'gen7',
2719
- searchShow: false,
2720
- ruleset: ['[Gen 7] UU'],
2721
- banlist: ['UU', 'RUBL', 'Mimikyu', 'Aurora Veil'],
2722
- unbanlist: ['Drought'],
2723
- },
2724
2660
  {
2725
2661
  name: "[Gen 7] NU",
2726
2662
  threads: [
@@ -2826,7 +2762,7 @@ export const Formats: FormatList = [
2826
2762
  searchShow: false,
2827
2763
  ruleset: ['[Gen 7] PU'],
2828
2764
  banlist: [
2829
- 'PU', 'Carracosta', 'Crabominable', 'Gorebyss', 'Jynx', 'Raticate-Alola',
2765
+ 'PU', 'Carracosta', 'Crabominable', 'Exeggutor-Base', 'Gorebyss', 'Jynx', 'Raticate-Alola',
2830
2766
  'Shiftry', 'Throh', 'Turtonator', 'Type: Null', 'Ursaring', 'Victreebel',
2831
2767
  ],
2832
2768
  },
@@ -3013,18 +2949,6 @@ export const Formats: FormatList = [
3013
2949
  searchShow: false,
3014
2950
  ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'],
3015
2951
  },
3016
- {
3017
- name: "[Gen 6] UU",
3018
- threads: [
3019
- `&bullet; <a href="https://www.smogon.com/dex/xy/formats/uu/">ORAS UU Banlist</a>`,
3020
- `&bullet; <a href="https://www.smogon.com/forums/threads/3598164/">ORAS UU Viability Rankings</a>`,
3021
- ],
3022
-
3023
- mod: 'gen6',
3024
- searchShow: false,
3025
- ruleset: ['[Gen 6] OU'],
3026
- banlist: ['OU', 'UUBL', 'Drizzle', 'Drought'],
3027
- },
3028
2952
  {
3029
2953
  name: "[Gen 6] RU",
3030
2954
  threads: [
@@ -3049,6 +2973,18 @@ export const Formats: FormatList = [
3049
2973
  ruleset: ['[Gen 6] RU'],
3050
2974
  banlist: ['RU', 'NUBL'],
3051
2975
  },
2976
+ {
2977
+ name: "[Gen 6] PU",
2978
+ threads: [
2979
+ `&bullet; <a href="https://www.smogon.com/dex/xy/tags/pu/">ORAS PU Banlist</a>`,
2980
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3528743/">ORAS PU Viability Rankings</a>`,
2981
+ ],
2982
+
2983
+ mod: 'gen6',
2984
+ searchShow: false,
2985
+ ruleset: ['[Gen 6] NU'],
2986
+ banlist: ['NU', 'PUBL', 'Chatter'],
2987
+ },
3052
2988
  {
3053
2989
  name: "[Gen 6] LC",
3054
2990
  threads: [
@@ -3075,8 +3011,8 @@ export const Formats: FormatList = [
3075
3011
  searchShow: false,
3076
3012
  ruleset: ['Standard', 'Swagger Clause', 'Same Type Clause'],
3077
3013
  banlist: [
3078
- 'Aegislash', 'Altaria-Mega', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Dialga', 'Genesect', 'Gengar-Mega',
3079
- 'Giratina', 'Giratina-Origin', 'Greninja', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White',
3014
+ 'Aegislash', 'Altaria-Mega', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', 'Genesect',
3015
+ 'Gengar-Mega', 'Giratina', 'Giratina-Origin', 'Greninja', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White',
3080
3016
  'Lucario-Mega', 'Lugia', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Sableye-Mega',
3081
3017
  'Salamence-Mega', 'Shaymin-Sky', 'Slowbro-Mega', 'Talonflame', 'Xerneas', 'Yveltal', 'Zekrom',
3082
3018
  'Shadow Tag', 'Bright Powder', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw', 'Razor Fang', 'Smooth Rock',
@@ -3100,8 +3036,8 @@ export const Formats: FormatList = [
3100
3036
  banlist: [
3101
3037
  'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
3102
3038
  'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
3103
- 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
3104
- 'Focus Sash', 'Soul Dew', 'Grass Whistle', 'Hypnosis', 'Perish Song', 'Sing', 'Yawn',
3039
+ 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Snorlax', 'Xerneas', 'Yveltal',
3040
+ 'Zekrom', 'Focus Sash', 'Soul Dew', 'Grass Whistle', 'Hypnosis', 'Perish Song', 'Sing', 'Yawn',
3105
3041
  ],
3106
3042
  },
3107
3043
  {
@@ -3115,6 +3051,18 @@ export const Formats: FormatList = [
3115
3051
  searchShow: false,
3116
3052
  ruleset: ['Obtainable', 'Team Preview', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
3117
3053
  },
3054
+ {
3055
+ name: "[Gen 6] ZU",
3056
+ threads: [
3057
+ `&bullet; <a href="https://www.smogon.com/dex/xy/formats/zu/">ORAS ZU Banlist</a>`,
3058
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8034679/">ORAS ZU Viability Rankings</a>`,
3059
+ ],
3060
+
3061
+ mod: 'gen6',
3062
+ searchShow: false,
3063
+ ruleset: ['[Gen 6] PU'],
3064
+ banlist: ['PU', 'Fraxure', 'Regigigas', 'Simisear'],
3065
+ },
3118
3066
  {
3119
3067
  name: "[Gen 6] CAP",
3120
3068
  threads: [
@@ -3277,6 +3225,18 @@ export const Formats: FormatList = [
3277
3225
  searchShow: false,
3278
3226
  ruleset: ['Standard', 'Sleep Clause Mod'],
3279
3227
  },
3228
+ {
3229
+ name: "[Gen 5] UU",
3230
+ threads: [
3231
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3474024/">BW2 UU Viability Rankings</a>`,
3232
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
3233
+ ],
3234
+
3235
+ mod: 'gen5',
3236
+ searchShow: false,
3237
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
3238
+ banlist: ['Uber', 'OU', 'UUBL', 'Arena Trap', 'Drought', 'Sand Stream', 'Snow Warning', 'Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'],
3239
+ },
3280
3240
  {
3281
3241
  name: "[Gen 5] RU",
3282
3242
  threads: [
@@ -3290,6 +3250,18 @@ export const Formats: FormatList = [
3290
3250
  banlist: ['UU', 'RUBL', 'Shadow Tag', 'Shell Smash + Baton Pass'],
3291
3251
  unbanlist: ['Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'],
3292
3252
  },
3253
+ {
3254
+ name: "[Gen 5] NU",
3255
+ threads: [
3256
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
3257
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
3258
+ ],
3259
+
3260
+ mod: 'gen5',
3261
+ searchShow: false,
3262
+ ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
3263
+ banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
3264
+ },
3293
3265
  {
3294
3266
  name: "[Gen 5] PU",
3295
3267
  threads: [
@@ -3343,6 +3315,17 @@ export const Formats: FormatList = [
3343
3315
  banlist: ['Uber', 'Cottonee', 'Dragonite', 'Jirachi', 'Kyurem-Black', 'Mew', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
3344
3316
  unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'],
3345
3317
  },
3318
+ {
3319
+ name: "[Gen 5] ZU",
3320
+ threads: [
3321
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8034680/">BW2 ZU</a>`,
3322
+ ],
3323
+
3324
+ mod: 'gen5',
3325
+ searchShow: false,
3326
+ ruleset: ['[Gen 5] PU'],
3327
+ banlist: ['PU', 'Articuno', 'Dragonair', 'Glalie', 'Machoke', 'Marowak', 'Omanyte', 'Regigigas', 'Trubbish', 'Whirlipede', 'Baton Pass'],
3328
+ },
3346
3329
  {
3347
3330
  name: "[Gen 5] GBU Singles",
3348
3331
 
@@ -3526,11 +3509,21 @@ export const Formats: FormatList = [
3526
3509
  unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil', 'Swagger'],
3527
3510
  },
3528
3511
  {
3529
- name: "[Gen 4] Anything Goes",
3512
+ name: "[Gen 4] ZU",
3513
+ threads: [
3514
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8034681/">DPP ZU</a>`,
3515
+ ],
3530
3516
 
3531
3517
  mod: 'gen4',
3532
3518
  searchShow: false,
3533
- ruleset: ['Obtainable', 'Arceus EV Limit', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
3519
+ ruleset: ['[Gen 4] PU'],
3520
+ banlist: [
3521
+ 'Ampharos', 'Armaldo', 'Bellossom', 'Dragonair', 'Electabuzz', 'Gabite', 'Gastrodon', 'Glaceon', 'Glalie',
3522
+ 'Golduck', 'Gorebyss', 'Hippopotas', 'Kadabra', 'Machoke', 'Magmar', 'Mantine', 'Marowak', 'Metang',
3523
+ 'Misdreavus', 'Monferno', 'Mr. Mime', 'Muk', 'Murkrow', 'Pinsir', 'Politoed', 'Purugly', 'Quagsire',
3524
+ 'Raichu', 'Rampardos', 'Rapidash', 'Regigigas', 'Relicanth', 'Rhydon', 'Scyther', 'Sneasel', 'Snover',
3525
+ 'Solrock', 'Tangela', 'Torkoal', 'Victreebel', 'Xatu', 'Zangoose', 'Damp Rock',
3526
+ ],
3534
3527
  },
3535
3528
  {
3536
3529
  name: "[Gen 4] Custom Game",
package/data/aliases.ts CHANGED
@@ -68,8 +68,8 @@ export const Aliases: {[alias: string]: string} = {
68
68
  gen6ag: "[Gen 6] Anything Goes",
69
69
  crossevo: "[Gen 8] Cross Evolution",
70
70
  mayhem: "[Gen 8] Random Battle Mayhem",
71
- omotm: "[Gen 8] Sketchmons",
72
- lcotm: "[Gen 8] Flipped",
71
+ omotm: "[Gen 8] Crazyhouse",
72
+ lcotm: "[Gen 8] Pokebilities AAA",
73
73
 
74
74
  // mega evos
75
75
  fabio: "Ampharos-Mega",
@@ -697,8 +697,8 @@ export const Conditions: {[k: string]: ConditionData} = {
697
697
  dynamax: {
698
698
  name: 'Dynamax',
699
699
  noCopy: true,
700
- duration: 3,
701
700
  onStart(pokemon) {
701
+ this.effectState.turns = 0;
702
702
  pokemon.removeVolatile('minimize');
703
703
  pokemon.removeVolatile('substitute');
704
704
  if (pokemon.volatiles['torment']) {
@@ -736,6 +736,9 @@ export const Conditions: {[k: string]: ConditionData} = {
736
736
  return null;
737
737
  },
738
738
  onResidualPriority: -100,
739
+ onResidual() {
740
+ this.effectState.turns++;
741
+ },
739
742
  onEnd(pokemon) {
740
743
  this.add('-end', pokemon, 'Dynamax');
741
744
  if (pokemon.baseSpecies.name === 'Shedinja') return;