@pkmn/sim 0.5.2 → 0.5.6
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.
- package/build/config/formats.js +410 -311
- package/build/config/formats.js.map +1 -1
- package/build/data/aliases.js +4 -4
- package/build/data/aliases.js.map +1 -1
- package/build/data/formats-data.js +205 -93
- package/build/data/formats-data.js.map +1 -1
- package/build/data/learnsets.js +1 -1
- package/build/data/learnsets.js.map +1 -1
- package/build/data/mods/gen1/formats-data.js +190 -190
- package/build/data/mods/gen1/formats-data.js.map +1 -1
- package/build/data/mods/gen1/moves.js +1 -2
- package/build/data/mods/gen1/moves.js.map +1 -1
- package/build/data/mods/gen1/scripts.js +12 -0
- package/build/data/mods/gen1/scripts.js.map +1 -1
- package/build/data/mods/gen2/formats-data.js +1 -1
- package/build/data/mods/gen2/formats-data.js.map +1 -1
- package/build/data/mods/gen3/formats-data.js +13 -13
- package/build/data/mods/gen3/formats-data.js.map +1 -1
- package/build/data/mods/gen4/moves.js +22 -0
- package/build/data/mods/gen4/moves.js.map +1 -1
- package/build/data/mods/gen5/formats-data.js +173 -156
- package/build/data/mods/gen5/formats-data.js.map +1 -1
- package/build/data/mods/gen6/formats-data.js +4 -3
- package/build/data/mods/gen6/formats-data.js.map +1 -1
- package/build/data/mods/gen7/formats-data.js +3 -2
- package/build/data/mods/gen7/formats-data.js.map +1 -1
- package/build/data/mods/gen7/moves.js +154 -0
- package/build/data/mods/gen7/moves.js.map +1 -1
- package/build/data/moves.js +44 -19
- package/build/data/moves.js.map +1 -1
- package/build/data/pokedex.js +480 -11
- package/build/data/pokedex.js.map +1 -1
- package/build/data/rulesets.js +12 -1
- package/build/data/rulesets.js.map +1 -1
- package/build/data/tags.d.ts +1 -0
- package/build/data/tags.js +4 -3
- package/build/data/tags.js.map +1 -1
- package/build/data/text/abilities.js +4 -4
- package/build/data/text/abilities.js.map +1 -1
- package/build/data/text/moves.js +18 -18
- package/build/data/text/moves.js.map +1 -1
- package/build/sim/battle-actions.js +12 -4
- package/build/sim/battle-actions.js.map +1 -1
- package/build/sim/battle.js +23 -22
- package/build/sim/battle.js.map +1 -1
- package/build/sim/dex-formats.d.ts +1 -0
- package/build/sim/dex-formats.js +3 -2
- package/build/sim/dex-formats.js.map +1 -1
- package/build/sim/dex-species.js +5 -2
- package/build/sim/dex-species.js.map +1 -1
- package/build/sim/exported-global-types.d.ts +2 -0
- package/build/sim/global-types.d.ts +2 -0
- package/build/sim/index.d.ts +1 -0
- package/build/sim/index.js +3 -1
- package/build/sim/index.js.map +1 -1
- package/build/sim/team-validator.js +13 -0
- package/build/sim/team-validator.js.map +1 -1
- package/config/formats.ts +418 -316
- package/data/aliases.ts +4 -4
- package/data/formats-data.ts +205 -93
- package/data/learnsets.ts +1 -1
- package/data/mods/gen1/formats-data.ts +190 -190
- package/data/mods/gen1/moves.ts +1 -2
- package/data/mods/gen1/scripts.ts +11 -0
- package/data/mods/gen2/formats-data.ts +1 -1
- package/data/mods/gen3/formats-data.ts +13 -13
- package/data/mods/gen4/moves.ts +21 -0
- package/data/mods/gen5/formats-data.ts +173 -156
- package/data/mods/gen6/formats-data.ts +4 -3
- package/data/mods/gen7/formats-data.ts +3 -2
- package/data/mods/gen7/moves.ts +150 -0
- package/data/moves.ts +43 -19
- package/data/pokedex.ts +480 -11
- package/data/rulesets.ts +11 -1
- package/data/tags.ts +6 -3
- package/data/text/abilities.ts +4 -4
- package/data/text/moves.ts +18 -18
- package/package.json +2 -2
- package/sim/battle-actions.ts +12 -4
- package/sim/battle.ts +24 -23
- package/sim/dex-formats.ts +4 -1
- package/sim/dex-species.ts +5 -2
- package/sim/exported-global-types.ts +2 -0
- package/sim/global-types.ts +2 -0
- package/sim/index.ts +1 -0
- package/sim/team-validator.ts +12 -0
package/build/config/formats.js
CHANGED
|
@@ -132,7 +132,7 @@ exports.Formats = [
|
|
|
132
132
|
],
|
|
133
133
|
mod: 'gen8',
|
|
134
134
|
ruleset: ['[Gen 8] RU'],
|
|
135
|
-
banlist: ['RU', 'NUBL', 'Drizzle', 'Drought'],
|
|
135
|
+
banlist: ['RU', 'NUBL', 'Drizzle', 'Drought', 'Slush Rush'],
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
name: "[Gen 8] PU",
|
|
@@ -193,7 +193,7 @@ exports.Formats = [
|
|
|
193
193
|
'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Dialga', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Jirachi',
|
|
194
194
|
'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mew', 'Mewtwo', 'Mimikyu', 'Necrozma-Dawn-Wings',
|
|
195
195
|
'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', 'Reshiram', 'Sableye', 'Snorlax', 'Solgaleo', 'Victini', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
|
|
196
|
-
'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Perish Song',
|
|
196
|
+
'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Power Construct', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Perish Song',
|
|
197
197
|
],
|
|
198
198
|
},
|
|
199
199
|
{
|
|
@@ -217,7 +217,7 @@ exports.Formats = [
|
|
|
217
217
|
mod: 'gen8',
|
|
218
218
|
ruleset: ['[Gen 8] PU'],
|
|
219
219
|
banlist: [
|
|
220
|
-
'PU', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost',
|
|
220
|
+
'PU', 'Aurorus', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost',
|
|
221
221
|
'Turtonator', 'Vanilluxe', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', 'Damp Rock', 'Grassy Seed',
|
|
222
222
|
],
|
|
223
223
|
},
|
|
@@ -231,9 +231,9 @@ exports.Formats = [
|
|
|
231
231
|
ruleset: ['[Gen 8] LC'],
|
|
232
232
|
banlist: [
|
|
233
233
|
// LC OU
|
|
234
|
-
'Abra', '
|
|
235
|
-
'Larvesta', 'Magnemite', 'Mareanie', 'Mienfoo', 'Mudbray', 'Munchlax', 'Natu', 'Onix', 'Pawniard',
|
|
236
|
-
'Ponyta-Galar', 'Porygon', 'Slowpoke-Base', '
|
|
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',
|
|
237
237
|
// LC UUBL
|
|
238
238
|
'Farfetch\u2019d-Galar', 'Scorbunny', 'Shellder', 'Wingull',
|
|
239
239
|
],
|
|
@@ -264,19 +264,9 @@ exports.Formats = [
|
|
|
264
264
|
{
|
|
265
265
|
name: "[Gen 8] Battle Stadium Singles",
|
|
266
266
|
mod: 'gen8',
|
|
267
|
-
ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'Limit
|
|
267
|
+
ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'Limit Two Restricted'],
|
|
268
268
|
restricted: ['Restricted Legendary'],
|
|
269
269
|
},
|
|
270
|
-
{
|
|
271
|
-
name: "[Gen 8] Battle Stadium Singles Series 9",
|
|
272
|
-
threads: [
|
|
273
|
-
`• <a href="https://www.smogon.com/forums/threads/3679374/">BSS Discussion</a>`,
|
|
274
|
-
`• <a href="https://www.smogon.com/forums/threads/3672698/">BSS Viability Rankings</a>`,
|
|
275
|
-
],
|
|
276
|
-
mod: 'gen8',
|
|
277
|
-
searchShow: false,
|
|
278
|
-
ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
|
|
279
|
-
},
|
|
280
270
|
{
|
|
281
271
|
name: "[Gen 8] Custom Game",
|
|
282
272
|
mod: 'gen8',
|
|
@@ -342,35 +332,14 @@ exports.Formats = [
|
|
|
342
332
|
banlist: ['Corsola-Galar', 'Cutiefly', 'Ponyta-Base', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vulpix', 'Vulpix-Alola'],
|
|
343
333
|
},
|
|
344
334
|
{
|
|
345
|
-
name: "[Gen 8] VGC
|
|
346
|
-
threads: [
|
|
347
|
-
`• <a href="https://www.smogon.com/forums/threads/3677186/">VGC 2021 Series 11 Metagame Discussion</a>`,
|
|
348
|
-
`• <a href="https://www.smogon.com/forums/threads/3693427/">VGC 2021 Series 11 Sample Teams</a>`,
|
|
349
|
-
`• <a href="https://www.smogon.com/forums/threads/3693284/">VGC 2021 Series 11 Viability Rankings</a>`,
|
|
350
|
-
],
|
|
335
|
+
name: "[Gen 8] VGC 2022",
|
|
351
336
|
mod: 'gen8',
|
|
352
337
|
gameType: 'doubles',
|
|
353
|
-
ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit
|
|
338
|
+
ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'],
|
|
354
339
|
restricted: ['Restricted Legendary'],
|
|
355
340
|
},
|
|
356
341
|
{
|
|
357
|
-
name: "[Gen 8]
|
|
358
|
-
threads: [
|
|
359
|
-
`• <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
|
-
},
|
|
372
|
-
{
|
|
373
|
-
name: "[Gen 8] VGC 2021 Series 9",
|
|
342
|
+
name: "[Gen 8] VGC 2021",
|
|
374
343
|
mod: 'gen8',
|
|
375
344
|
gameType: 'doubles',
|
|
376
345
|
searchShow: false,
|
|
@@ -468,13 +437,15 @@ exports.Formats = [
|
|
|
468
437
|
mod: 'gen8',
|
|
469
438
|
ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
|
|
470
439
|
banlist: [
|
|
471
|
-
'Alakazam-Mega', 'Arceus', 'Blastoise-Mega', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darkrai',
|
|
472
|
-
'Deoxys-Attack', 'Deoxys-Base', 'Deoxys-Speed', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus',
|
|
473
|
-
'
|
|
474
|
-
'
|
|
475
|
-
'
|
|
476
|
-
'
|
|
477
|
-
'
|
|
440
|
+
'Alakazam-Mega', 'Arceus', 'Blastoise-Mega', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darkrai',
|
|
441
|
+
'Darmanitan-Galar', 'Deoxys-Attack', 'Deoxys-Base', 'Deoxys-Speed', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus',
|
|
442
|
+
'Genesect', 'Gengar-Mega', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-Black',
|
|
443
|
+
'Kyurem-White', 'Landorus-Base', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Metagross-Mega', 'Mewtwo',
|
|
444
|
+
'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
|
|
445
|
+
'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian',
|
|
446
|
+
'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Zygarde-Complete', 'Arena Trap', 'Moody',
|
|
447
|
+
'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang',
|
|
448
|
+
'Quick Claw', 'Baton Pass',
|
|
478
449
|
],
|
|
479
450
|
},
|
|
480
451
|
{
|
|
@@ -488,22 +459,25 @@ exports.Formats = [
|
|
|
488
459
|
ruleset: ['[Gen 8] National Dex'],
|
|
489
460
|
banlist: [
|
|
490
461
|
// National Dex OU
|
|
491
|
-
'
|
|
492
|
-
'
|
|
493
|
-
'
|
|
494
|
-
'
|
|
495
|
-
'Weavile', 'Zapdos-Base',
|
|
462
|
+
'Blissey', 'Chansey', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Clefable', 'Corviknight', 'Diancie-Mega', 'Excadrill',
|
|
463
|
+
'Ferrothorn', 'Garchomp', 'Gliscor', 'Greninja', 'Heatran', 'Kartana', 'Kommo-o', 'Kyurem', 'Landorus-Therian', 'Lopunny-Mega',
|
|
464
|
+
'Magnezone', 'Mawile-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior', 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini',
|
|
465
|
+
'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona', 'Weavile', 'Zapdos-Base',
|
|
496
466
|
'ND UUBL',
|
|
497
467
|
'Drizzle', 'Drought',
|
|
498
468
|
// Slowbronite is banned so it doesn't validate on Galarian Slowbro
|
|
499
469
|
'Slowbronite',
|
|
470
|
+
// NatDex suspect
|
|
471
|
+
'Tornadus-Therian',
|
|
500
472
|
],
|
|
501
473
|
// Used to distinguish UU from below UU in the client
|
|
502
474
|
restricted: [
|
|
503
|
-
'
|
|
504
|
-
'
|
|
505
|
-
'
|
|
506
|
-
'
|
|
475
|
+
'Aegislash', 'Alakazam-Base', 'Altaria-Mega', 'Amoonguss', 'Beedrill-Mega', 'Blaziken-Base', 'Breloom', 'Celesteela',
|
|
476
|
+
'Chandelure', 'Donphan', 'Dracozolt', 'Dragonite', 'Feraligatr', 'Gastrodon', 'Hatterene', 'Hippowdon', 'Infernape',
|
|
477
|
+
'Keldeo', 'Krookodile', 'Mamoswine', 'Mandibuzz', 'Manectric-Mega', 'Melmetal', 'Mienshao', 'Moltres-Base',
|
|
478
|
+
'Nidoking', 'Nidoqueen', 'Nihilego', 'Quagsire', 'Regieleki', 'Ribombee', 'Rotom-Heat', 'Rotom-Wash', 'Salamence',
|
|
479
|
+
'Scizor', 'Skarmory', 'Slowking-Base', 'Swampert-Base', 'Talonflame', 'Tangrowth', 'Tornadus-Base', 'Umbreon',
|
|
480
|
+
'Urshifu-Rapid-Strike',
|
|
507
481
|
],
|
|
508
482
|
},
|
|
509
483
|
{
|
|
@@ -539,33 +513,60 @@ exports.Formats = [
|
|
|
539
513
|
section: "Pet Mods",
|
|
540
514
|
},
|
|
541
515
|
{
|
|
542
|
-
name: "[Gen 8]
|
|
516
|
+
name: "[Gen 8] Alternatium",
|
|
517
|
+
desc: `A metagame made up of only Pokémon with alternate forms, with all of them being separate and unique.`,
|
|
543
518
|
threads: [
|
|
544
|
-
`• <a href="https://www.smogon.com/forums/threads/
|
|
519
|
+
`• <a href="https://www.smogon.com/forums/threads/3683767/">Alternatium</a>`,
|
|
520
|
+
`• <a href="https://docs.google.com/spreadsheets/d/1bvvkPg1CrUBJFJJeuwkts8elfJcEcahGOoHm-vGBXOI/edit?usp=sharing">Spreadsheet</a>`,
|
|
545
521
|
],
|
|
546
|
-
mod:
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
'
|
|
522
|
+
mod: 'alternatium',
|
|
523
|
+
ruleset: ['Standard NatDex', 'Z-Move Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
|
|
524
|
+
banlist: ['All Pokemon', 'Past'],
|
|
525
|
+
unbanlist: [
|
|
526
|
+
'Silvally', 'Silvally-Bug', 'Silvally-Dark', 'Silvally-Dragon', 'Silvally-Electric', 'Silvally-Fairy', 'Silvally-Fighting', 'Silvally-Fire', 'Silvally-Flying', 'Silvally-Ghost',
|
|
527
|
+
'Silvally-Grass', 'Silvally-Ground', 'Silvally-Ice', 'Silvally-Poison', 'Silvally-Psychic', 'Silvally-Rock', 'Silvally-Steel', 'Silvally-Water', 'Pikachu', 'Pikachu-Rock-Star',
|
|
528
|
+
'Pikachu-Belle', 'Pikachu-Idol', 'Pikachu-PhD', 'Pikachu-Libre', 'Pikachu-Partner', 'Pikachu-Starter', 'Darmanitan', 'Darmanitan-Zen', 'Darmanitan-Galar', 'Darmanitan-Galar-Zen',
|
|
529
|
+
'Aegishield', 'Aegislash', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Rotom', 'Rotom-Heat', 'Rotom-Wash', 'Rotom-Frost', 'Rotom-Fan', 'Rotom-Mow', 'Dugtrio',
|
|
530
|
+
'Dugtrio-Alola', 'Muk', 'Muk-Oilslick', 'Slowbro', 'Slowbro-Galar', 'Slowking', 'Slowking-Galar', 'Tornadus', 'Cummulus', 'Thundurus', 'Thundurus-Therian', 'Landorus', 'Landorus-Bengal',
|
|
531
|
+
'Vivillon-Fancy', 'Vivillon', 'Vivillon-Pokeball', 'Genesect', 'Genesect-Password', 'Genesect-Molten', 'Genesect-Freezer', 'Genesect-Type-Delta', 'Groudon', 'Groudon-Primal', 'Kyogre',
|
|
532
|
+
'Kyogre-Primal', 'Deoxys-Wood', 'Deoxys-Gem', 'Deoxys-Tank', 'Deoxys-Speed', 'Sandslash-Lustrous', 'Sandslash-Alola', 'Ninetales-Steamwork', 'Ninetales-Alola', 'Giratina', 'Giratina-Shadow',
|
|
533
|
+
'Eternatus', 'Manustorm', 'Exeggutor', 'Exeggutor-Lighthouse', 'Weezing', 'Weezing-King', 'Raticate', 'Raticate-Alola', 'Linoone', 'Linoone-Punk', 'Catastroform', 'Castform-Firestorm',
|
|
534
|
+
'Castform-Thunderstorm', 'Castform-Snowy', 'Wormadam', 'Wormadam-Sandy', 'Fibormadam', 'Farfetch\u2019d', 'Farfetch\u2019d-Galar', 'Corsola', 'Corsoul', 'Shaymin', 'Shaymin-Sky', 'Keldeo',
|
|
535
|
+
'Swordeo', 'Meloetta', 'Meloetta-Fighter', 'Lycanday', 'Lycanroc-Spectre', 'Lycanroc-Dusk', 'Gourgeist', 'Gourgeist-Fae', 'Gourgeist-Pulpy', 'Supergeist', 'Cramorant', 'Cramorant-Swimmer',
|
|
536
|
+
'Cramorant-Gorging', 'Eiscue', 'Eiscue-Noice', 'Mimikyu', 'Mimikyu-Sparkstone', 'Morpeko-Marsh', 'Morvilant', 'Zygarde-Wyrm', 'Zygarde-Canid', 'Zygarde-Goliath',
|
|
537
|
+
],
|
|
538
|
+
onValidateTeam(team, format) {
|
|
539
|
+
const speciesTable = new Set();
|
|
540
|
+
for (const set of team) {
|
|
541
|
+
const species = this.dex.species.get(set.species);
|
|
542
|
+
if (speciesTable.has(species.id)) {
|
|
543
|
+
return [
|
|
544
|
+
`You are limited to one of each Pokémon by Species Clause (except for different formes).`,
|
|
545
|
+
`(You have more than one ${species.id}.)`,
|
|
546
|
+
];
|
|
547
|
+
}
|
|
548
|
+
speciesTable.add(species.id);
|
|
549
|
+
}
|
|
550
|
+
},
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
name: "[Gen 8] Random Dex",
|
|
554
|
+
desc: `A micrometagame project consisting of 80 randomly selected fully-evolved Pokémon.`,
|
|
555
|
+
threads: [
|
|
556
|
+
`• <a href="https://www.smogon.com/forums/threads/3690182/">Random Dex</a>`,
|
|
551
557
|
],
|
|
558
|
+
mod: 'randomdex',
|
|
559
|
+
ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
|
|
560
|
+
banlist: ['All Pokemon', 'Past', 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', 'Bright Powder', 'Lax Incense', 'King\'s Rock', 'Razor Fang', 'Kangaskhanite', 'Medichamite', 'Kommonium Z'],
|
|
552
561
|
unbanlist: [
|
|
553
|
-
'
|
|
554
|
-
'
|
|
555
|
-
'
|
|
556
|
-
'
|
|
557
|
-
'
|
|
558
|
-
'
|
|
559
|
-
'
|
|
560
|
-
'
|
|
561
|
-
'Silvino-Fire', 'Silvino-Flying', 'Silvino-Ghost', 'Silvino-Grass', 'Silvino-Ground', 'Silvino-Ice',
|
|
562
|
-
'Silvino-Poison', 'Silvino-Psychic', 'Silvino-Rock', 'Silvino-Steel', 'Silvino-Water', 'Silvino',
|
|
563
|
-
'Silvino-Bug-Mega', 'Silvino-Dark-Mega', 'Silvino-Dragon-Mega',
|
|
564
|
-
'Silvino-Electric-Mega', 'Silvino-Fairy-Mega', 'Silvino-Fighting-Mega',
|
|
565
|
-
'Silvino-Fire-Mega', 'Silvino-Flying-Mega', 'Silvino-Ghost-Mega',
|
|
566
|
-
'Silvino-Grass-Mega', 'Silvino-Ground-Mega', 'Silvino-Ice-Mega',
|
|
567
|
-
'Silvino-Poison-Mega', 'Silvino-Psychic-Mega', 'Silvino-Rock-Mega',
|
|
568
|
-
'Silvino-Steel-Mega', 'Silvino-Water-Mega', 'Silvino-Mega',
|
|
562
|
+
'Absol', 'Absol-Mega', 'Appletun', 'Articuno', 'Aurorus', 'Basculin', 'Beartic', 'Bisharp', 'Calyrex', 'Camerupt', 'Camerupt-Mega',
|
|
563
|
+
'Celesteela', 'Cloyster', 'Crawdaunt', 'Cursola', 'Dedenne', 'Delibird', 'Eelektross', 'Espeon', 'Flapple', 'Flareon', 'Flygon',
|
|
564
|
+
'Galvantula', 'Girafarig', 'Glaceon', 'Goodra', 'Gourgeist', 'Grimmsnarl', 'Guzzlord', 'Heliolisk', 'Hitmonchan', 'Hitmonlee',
|
|
565
|
+
'Hitmontop', 'Incineroar', 'Indeedee', 'Jolteon', 'Kangaskhan', 'Kommo-o', 'Lanturn', 'Leafeon', 'Leavanny', 'Ludicolo', 'Lunatone',
|
|
566
|
+
'Luvdisc', 'Machamp', 'Mandibuzz', 'Medicham', 'Nihilego', 'Palossand', 'Pidgeot', 'Pidgeot-Mega', 'Probopass', 'Pyroar', 'Sawk',
|
|
567
|
+
'Sceptile', 'Sceptile-Mega', 'Scolipede', 'Shiftry', 'Simisage', 'Slowbro', 'Slowbro-Mega', 'Slowking', 'Swoobat', 'Sylveon',
|
|
568
|
+
'Tapu Bulu', 'Tapu Fini', 'Tauros', 'Typhlosion', 'Umbreon', 'Ursaring', 'Vaporeon', 'Whiscash', 'Wishiwashi', 'Zebstrika', 'Absolite',
|
|
569
|
+
'Pidgeotite', 'Sceptilite', 'Cameruptite', 'Slowbronite',
|
|
569
570
|
],
|
|
570
571
|
},
|
|
571
572
|
{
|
|
@@ -586,36 +587,134 @@ exports.Formats = [
|
|
|
586
587
|
column: 2,
|
|
587
588
|
},
|
|
588
589
|
{
|
|
589
|
-
name: "[Gen 8]
|
|
590
|
-
desc: `
|
|
590
|
+
name: "[Gen 8] Trademarked",
|
|
591
|
+
desc: `Sacrifice your Pokémon's ability for a status move that activates on switch-in.`,
|
|
591
592
|
threads: [
|
|
592
|
-
`• <a href="https://www.smogon.com/forums/threads/
|
|
593
|
+
`• <a href="https://www.smogon.com/forums/threads/3656980/">Trademarked</a>`,
|
|
593
594
|
],
|
|
594
595
|
mod: 'gen8',
|
|
595
|
-
|
|
596
|
+
// searchShow: false,
|
|
597
|
+
ruleset: ['Standard', 'Dynamax Clause'],
|
|
596
598
|
banlist: [
|
|
597
|
-
'
|
|
598
|
-
'
|
|
599
|
-
'
|
|
600
|
-
'
|
|
601
|
-
'
|
|
602
|
-
|
|
599
|
+
'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Kyurem-Black', 'Kyurem-White',
|
|
600
|
+
'Giratina', 'Giratina-Origin', 'Genesect', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Lugia', 'Lunala', 'Magearna', 'Marowak-Alola',
|
|
601
|
+
'Marshadow', 'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza',
|
|
602
|
+
'Reshiram', 'Solgaleo', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom',
|
|
603
|
+
'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
|
|
604
|
+
],
|
|
605
|
+
restricted: [
|
|
606
|
+
'Baneful Bunker', 'Block', 'Copycat', 'Corrosive Gas', 'Detect', 'Destiny Bond', 'Disable', 'Encore', 'Fairy Lock', 'Hypnosis', 'Ingrain',
|
|
607
|
+
'Instruct', 'Lovely Kiss', 'King\'s Shield', 'Mat Block', 'Mean Look', 'Memento', 'move:Metronome', 'Obstruct', 'Octolock', 'Nature Power',
|
|
608
|
+
'Parting Shot', 'Psycho Shift', 'Protect', 'Roar', 'Sing', 'Skill Swap', 'Sleep Powder', 'Sleep Talk', 'Spiky Shield', 'Spore', 'Substitute',
|
|
609
|
+
'Teleport', 'Whirlwind', 'Wish', 'Yawn',
|
|
603
610
|
],
|
|
604
|
-
|
|
611
|
+
onValidateTeam(team, format, teamHas) {
|
|
612
|
+
const problems = [];
|
|
613
|
+
for (const trademark in teamHas.trademarks) {
|
|
614
|
+
if (teamHas.trademarks[trademark] > 1) {
|
|
615
|
+
problems.push(`You are limited to 1 of each Trademark.`, `(You have ${teamHas.trademarks[trademark]} Pok\u00e9mon with ${trademark} as a Trademark.)`);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
return problems;
|
|
619
|
+
},
|
|
620
|
+
validateSet(set, teamHas) {
|
|
621
|
+
const dex = this.dex;
|
|
622
|
+
const ability = dex.moves.get(set.ability);
|
|
623
|
+
if (!ability.exists) { // Not even a real move
|
|
624
|
+
return this.validateSet(set, teamHas);
|
|
625
|
+
}
|
|
626
|
+
// Absolute trademark bans
|
|
627
|
+
if (ability.category !== 'Status') {
|
|
628
|
+
return [`${ability.name} is not a status move, and cannot be used as a trademark.`];
|
|
629
|
+
}
|
|
630
|
+
if (ability.forceSwitch || ability.selfSwitch) {
|
|
631
|
+
return [
|
|
632
|
+
`Force-switching and self-switching moves are banned from being used as trademarks.`,
|
|
633
|
+
`(${ability.name} is a ${ability.forceSwitch ? 'force' : 'self'}-switching move.)`,
|
|
634
|
+
];
|
|
635
|
+
}
|
|
636
|
+
const irrevokablyRestricted = [
|
|
637
|
+
'Assist', 'Copycat', 'Metronome', 'Mirror Move', 'Sleep Talk',
|
|
638
|
+
'Skill Swap', // Self-propagates indefinitely
|
|
639
|
+
];
|
|
640
|
+
if (irrevokablyRestricted.includes(ability.name)) {
|
|
641
|
+
return [`${ability.name} cannot safely function as a trademark.`];
|
|
642
|
+
}
|
|
643
|
+
// Contingent trademark bans
|
|
644
|
+
if (this.ruleTable.isRestricted(`move:${ability.id}`)) {
|
|
645
|
+
return [`${ability.name} is restricted from being used as a trademark.`];
|
|
646
|
+
}
|
|
647
|
+
if (set.moves.map(this.toID).includes(ability.id)) {
|
|
648
|
+
return [`${set.name} may not use ${ability.name} as both a trademark and one of its moves simultaneously.`];
|
|
649
|
+
}
|
|
650
|
+
const customRules = this.format.customRules || [];
|
|
651
|
+
if (!customRules.includes('!obtainableabilities'))
|
|
652
|
+
customRules.push('!obtainableabilities');
|
|
653
|
+
const TeamValidator = require('../sim/team-validator').TeamValidator;
|
|
654
|
+
const validator = new TeamValidator(dex.formats.get(`${this.format.id}@@@${customRules.join(',')}`));
|
|
655
|
+
const moves = set.moves;
|
|
656
|
+
set.moves = [ability.id];
|
|
657
|
+
set.ability = dex.species.get(set.species).abilities['0'];
|
|
658
|
+
let problems = validator.validateSet(set, {}) || [];
|
|
659
|
+
if (problems.length)
|
|
660
|
+
return problems;
|
|
661
|
+
set.moves = moves;
|
|
662
|
+
set.ability = dex.species.get(set.species).abilities['0'];
|
|
663
|
+
problems = problems.concat(validator.validateSet(set, teamHas) || []);
|
|
664
|
+
set.ability = ability.id;
|
|
665
|
+
if (!teamHas.trademarks)
|
|
666
|
+
teamHas.trademarks = {};
|
|
667
|
+
teamHas.trademarks[ability.name] = (teamHas.trademarks[ability.name] || 0) + 1;
|
|
668
|
+
return problems.length ? problems : null;
|
|
669
|
+
},
|
|
670
|
+
pokemon: {
|
|
671
|
+
getAbility() {
|
|
672
|
+
const move = this.battle.dex.moves.get(this.battle.toID(this.ability));
|
|
673
|
+
if (!move.exists)
|
|
674
|
+
return Object.getPrototypeOf(this).getAbility.call(this);
|
|
675
|
+
return {
|
|
676
|
+
id: move.id,
|
|
677
|
+
name: move.name,
|
|
678
|
+
onStart(pokemon) {
|
|
679
|
+
this.add('-activate', pokemon, 'ability: ' + move.name);
|
|
680
|
+
this.actions.useMove(move, pokemon);
|
|
681
|
+
},
|
|
682
|
+
toString() {
|
|
683
|
+
return "";
|
|
684
|
+
},
|
|
685
|
+
};
|
|
686
|
+
},
|
|
687
|
+
},
|
|
605
688
|
},
|
|
606
689
|
{
|
|
607
|
-
name: "[Gen 8
|
|
608
|
-
desc: `
|
|
690
|
+
name: "[Gen 8] Linked",
|
|
691
|
+
desc: `The first two moves in a Pokémon's moveset are used simultaneously.`,
|
|
609
692
|
threads: [
|
|
610
|
-
`• <a href="https://www.smogon.com/forums/
|
|
693
|
+
`• <a href="https://www.smogon.com/forums/threads/3660421/">Linked</a>`,
|
|
611
694
|
],
|
|
612
|
-
mod: '
|
|
613
|
-
ruleset: ['
|
|
695
|
+
mod: 'linked',
|
|
696
|
+
ruleset: ['Standard', 'Dynamax Clause'],
|
|
614
697
|
banlist: [
|
|
615
|
-
'
|
|
616
|
-
'
|
|
617
|
-
'
|
|
698
|
+
'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh',
|
|
699
|
+
'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings',
|
|
700
|
+
'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
|
|
701
|
+
'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Zygarde-Complete', 'Arena Trap', 'Moody', 'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
|
|
702
|
+
'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Baton Pass',
|
|
618
703
|
],
|
|
704
|
+
restricted: [
|
|
705
|
+
'Baneful Bunker', 'Bounce', 'Protect', 'Detect', 'Dig', 'Dive', 'Fly', 'King\'s Shield', 'Nature\'s Madness', 'Night Shade',
|
|
706
|
+
'Obstruct', 'Phantom Force', 'Seismic Toss', 'Shadow Force', 'Sky Drop', 'Spiky Shield', 'Super Fang',
|
|
707
|
+
],
|
|
708
|
+
onValidateSet(set) {
|
|
709
|
+
const problems = [];
|
|
710
|
+
for (const [i, moveid] of set.moves.entries()) {
|
|
711
|
+
const move = this.dex.moves.get(moveid);
|
|
712
|
+
if ([0, 1].includes(i) && this.ruleTable.isRestricted(`move:${move.id}`)) {
|
|
713
|
+
problems.push(`${set.name || set.species}'s move ${move.name} cannot be linked.`);
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
return problems;
|
|
717
|
+
},
|
|
619
718
|
},
|
|
620
719
|
// Other Metagames
|
|
621
720
|
///////////////////////////////////////////////////////////////////
|
|
@@ -659,6 +758,34 @@ exports.Formats = [
|
|
|
659
758
|
}
|
|
660
759
|
},
|
|
661
760
|
},
|
|
761
|
+
{
|
|
762
|
+
name: "[Gen 8] Almost Any Ability",
|
|
763
|
+
desc: `Pokémon have access to almost any ability.`,
|
|
764
|
+
threads: [
|
|
765
|
+
`• <a href="https://www.smogon.com/forums/threads/3656414/">Almost Any Ability</a>`,
|
|
766
|
+
`• <a href="https://www.smogon.com/forums/threads/3682690/">AAA Resources</a>`,
|
|
767
|
+
],
|
|
768
|
+
mod: 'gen8',
|
|
769
|
+
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'],
|
|
770
|
+
banlist: [
|
|
771
|
+
'Archeops', 'Blacephalon', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina',
|
|
772
|
+
'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow',
|
|
773
|
+
'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja',
|
|
774
|
+
'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom',
|
|
775
|
+
'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter',
|
|
776
|
+
'Innards Out', 'Intrepid Sword', 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power',
|
|
777
|
+
'Shadow Tag', 'Simple', 'Stakeout', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
|
|
778
|
+
],
|
|
779
|
+
onValidateSet(set) {
|
|
780
|
+
// Temporary fix until battle-only is implemented properly
|
|
781
|
+
if (this.toID(set.species) === 'zamazentacrowned' && this.toID(set.ability) !== 'dauntlessshield') {
|
|
782
|
+
return [`Zamazenta-Crowned can only use Dauntless Shield because it is a battle-only forme.`];
|
|
783
|
+
}
|
|
784
|
+
if (this.toID(set.species) === 'zaciancrowned' && this.toID(set.ability) !== 'intrepidsword') {
|
|
785
|
+
return [`Zacian-Crowned can only use Intrepid Sword because it is a battle-only forme.`];
|
|
786
|
+
}
|
|
787
|
+
},
|
|
788
|
+
},
|
|
662
789
|
{
|
|
663
790
|
name: "[Gen 8] Mix and Mega",
|
|
664
791
|
desc: `Mega evolve any Pokémon with any mega stone and no limit. Boosts based on mega evolution from gen 7.`,
|
|
@@ -676,7 +803,8 @@ exports.Formats = [
|
|
|
676
803
|
restricted: [
|
|
677
804
|
'Calyrex-Ice', 'Dialga', 'Eternatus', 'Gengar', 'Giratina', 'Groudon', 'Ho-Oh', 'Kyurem-Black', 'Kyurem-White',
|
|
678
805
|
'Lugia', 'Lunala', 'Marshadow', 'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane',
|
|
679
|
-
'Palkia', 'Rayquaza', 'Regigigas', 'Reshiram', 'Urshifu
|
|
806
|
+
'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Urshifu', 'Urshifu-Rapid-Strike', 'Xerneas',
|
|
807
|
+
'Yveltal', 'Zekrom', 'Zygarde-Complete',
|
|
680
808
|
],
|
|
681
809
|
onValidateTeam(team) {
|
|
682
810
|
const itemTable = new Set();
|
|
@@ -721,49 +849,23 @@ exports.Formats = [
|
|
|
721
849
|
}
|
|
722
850
|
},
|
|
723
851
|
},
|
|
724
|
-
{
|
|
725
|
-
name: "[Gen 8] Almost Any Ability",
|
|
726
|
-
desc: `Pokémon have access to almost any ability.`,
|
|
727
|
-
threads: [
|
|
728
|
-
`• <a href="https://www.smogon.com/forums/threads/3656414/">Almost Any Ability</a>`,
|
|
729
|
-
`• <a href="https://www.smogon.com/forums/threads/3682690/">AAA Resources</a>`,
|
|
730
|
-
],
|
|
731
|
-
mod: 'gen8',
|
|
732
|
-
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'],
|
|
733
|
-
banlist: [
|
|
734
|
-
'Archeops', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina', 'Giratina-Origin',
|
|
735
|
-
'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mewtwo',
|
|
736
|
-
'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja', 'Solgaleo', 'Spectrier',
|
|
737
|
-
'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zeraora', 'Zygarde-Base',
|
|
738
|
-
'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Intrepid Sword',
|
|
739
|
-
'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power', 'Shadow Tag', 'Simple', 'Stakeout',
|
|
740
|
-
'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
|
|
741
|
-
],
|
|
742
|
-
onValidateSet(set) {
|
|
743
|
-
// Temporary fix until battle-only is implemented properly
|
|
744
|
-
if (this.toID(set.species) === 'zamazentacrowned' && this.toID(set.ability) !== 'dauntlessshield') {
|
|
745
|
-
return [`Zamazenta-Crowned can only use Dauntless Shield because it is a battle-only forme.`];
|
|
746
|
-
}
|
|
747
|
-
if (this.toID(set.species) === 'zaciancrowned' && this.toID(set.ability) !== 'intrepidsword') {
|
|
748
|
-
return [`Zacian-Crowned can only use Intrepid Sword because it is a battle-only forme.`];
|
|
749
|
-
}
|
|
750
|
-
},
|
|
751
|
-
},
|
|
752
852
|
{
|
|
753
853
|
name: "[Gen 8] STABmons",
|
|
754
854
|
desc: `Pokémon can use any move of their typing, in addition to the moves they can normally learn.`,
|
|
755
855
|
threads: [
|
|
756
856
|
`• <a href="https://www.smogon.com/forums/threads/3656429/">STABmons</a>`,
|
|
857
|
+
`• <a href="https://www.smogon.com/forums/threads/3695169/">STABmons Resources</a>`,
|
|
757
858
|
],
|
|
758
859
|
mod: 'gen8',
|
|
759
|
-
ruleset: ['Standard', 'STABmons Move Legality', 'Dynamax Clause', 'Sleep Moves Clause'],
|
|
860
|
+
ruleset: ['Standard', 'STABmons Move Legality', 'Dynamax Clause', 'Sleep Moves Clause', '!Sleep Clause Mod'],
|
|
760
861
|
banlist: [
|
|
761
|
-
'Aegislash', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite',
|
|
762
|
-
'Garchomp', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black',
|
|
763
|
-
'
|
|
764
|
-
'
|
|
765
|
-
'
|
|
766
|
-
'Power Construct', 'Shadow Tag', 'King\'s Rock',
|
|
862
|
+
'Aegislash', 'Blacephalon', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite',
|
|
863
|
+
'Eternatus', 'Genesect', 'Garchomp', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black',
|
|
864
|
+
'Kyurem-White', 'Landorus', 'Landorus-Therian', 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings',
|
|
865
|
+
'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu',
|
|
866
|
+
'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned',
|
|
867
|
+
'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock',
|
|
868
|
+
'Baton Pass',
|
|
767
869
|
],
|
|
768
870
|
restricted: [
|
|
769
871
|
'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed', 'Fishious Rend',
|
|
@@ -791,11 +893,11 @@ exports.Formats = [
|
|
|
791
893
|
`• <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
|
|
792
894
|
],
|
|
793
895
|
mod: 'gen8',
|
|
794
|
-
ruleset: ['Standard', 'Dynamax Clause'],
|
|
896
|
+
ruleset: ['Standard', 'Dynamax Clause', 'Sleep Moves Clause'],
|
|
795
897
|
banlist: [
|
|
796
|
-
'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
|
|
898
|
+
'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Mantine', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
|
|
797
899
|
'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
|
|
798
|
-
'Shadow Tag', 'Baton Pass',
|
|
900
|
+
'Shadow Tag', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw', 'Baton Pass',
|
|
799
901
|
],
|
|
800
902
|
onValidateTeam(team) {
|
|
801
903
|
const gods = new Set();
|
|
@@ -877,7 +979,8 @@ exports.Formats = [
|
|
|
877
979
|
name: "[Gen 8 BDSP] OU",
|
|
878
980
|
threads: [
|
|
879
981
|
`• <a href="https://www.smogon.com/forums/threads/3693629/">BDSP OU Metagame Discussion</a>`,
|
|
880
|
-
`• <a href="https://www.smogon.com/forums/threads/
|
|
982
|
+
`• <a href="https://www.smogon.com/forums/threads/3693721/">BDSP OU Sample Teams</a>`,
|
|
983
|
+
`• <a href="https://www.smogon.com/forums/threads/3696088/">BDSP OU Viability Rankings</a>`,
|
|
881
984
|
],
|
|
882
985
|
mod: 'gen8bdsp',
|
|
883
986
|
ruleset: ['Standard'],
|
|
@@ -904,6 +1007,31 @@ exports.Formats = [
|
|
|
904
1007
|
ruleset: ['[Gen 8 BDSP] OU'],
|
|
905
1008
|
banlist: ['OU', 'UUBL'],
|
|
906
1009
|
},
|
|
1010
|
+
{
|
|
1011
|
+
name: "[Gen 8 BDSP] RU",
|
|
1012
|
+
threads: [
|
|
1013
|
+
`• <a href="https://www.smogon.com/forums/threads/3695563/">BDSP RU</a>`,
|
|
1014
|
+
],
|
|
1015
|
+
mod: 'gen8bdsp',
|
|
1016
|
+
ruleset: ['[Gen 8 BDSP] UU'],
|
|
1017
|
+
banlist: ['UU', 'RUBL', 'Drought'],
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
name: "[Gen 8 BDSP] NU",
|
|
1021
|
+
mod: 'gen8bdsp',
|
|
1022
|
+
searchShow: false,
|
|
1023
|
+
ruleset: ['[Gen 8 BDSP] RU'],
|
|
1024
|
+
banlist: ['RU', 'NUBL'],
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
name: "[Gen 8 BDSP] LC",
|
|
1028
|
+
threads: [
|
|
1029
|
+
`• <a href="https://www.smogon.com/forums/threads/3696004/">BDSP LC</a>`,
|
|
1030
|
+
],
|
|
1031
|
+
mod: 'gen8bdsp',
|
|
1032
|
+
ruleset: ['Little Cup', 'Standard'],
|
|
1033
|
+
banlist: ['Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma', 'Moody', 'Baton Pass'],
|
|
1034
|
+
},
|
|
907
1035
|
{
|
|
908
1036
|
name: "[Gen 8 BDSP] Monotype",
|
|
909
1037
|
threads: [
|
|
@@ -925,6 +1053,14 @@ exports.Formats = [
|
|
|
925
1053
|
searchShow: false,
|
|
926
1054
|
ruleset: ['[Gen 8 BDSP] OU', '+CAP'],
|
|
927
1055
|
},
|
|
1056
|
+
{
|
|
1057
|
+
name: "[Gen 8 BDSP] 3v3 Singles",
|
|
1058
|
+
threads: [
|
|
1059
|
+
`• <a href="https://www.smogon.com/forums/threads/3695092/">BDSP 3v3 Singles</a>`,
|
|
1060
|
+
],
|
|
1061
|
+
mod: 'gen8bdsp',
|
|
1062
|
+
ruleset: ['Flat Rules', 'Min Source Gen = 8'],
|
|
1063
|
+
},
|
|
928
1064
|
{
|
|
929
1065
|
name: "[Gen 8 BDSP] Doubles OU",
|
|
930
1066
|
threads: [
|
|
@@ -968,11 +1104,11 @@ exports.Formats = [
|
|
|
968
1104
|
searchShow: false,
|
|
969
1105
|
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'],
|
|
970
1106
|
banlist: [
|
|
971
|
-
'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin',
|
|
972
|
-
'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia',
|
|
973
|
-
'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
|
|
974
|
-
'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', '
|
|
975
|
-
'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
|
|
1107
|
+
'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin',
|
|
1108
|
+
'Groudon', 'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia',
|
|
1109
|
+
'Lunala', 'Marshadow', 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
|
|
1110
|
+
'Reuniclus', 'Shedinja', 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Volcarona', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
|
|
1111
|
+
'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
|
|
976
1112
|
],
|
|
977
1113
|
onModifySpeciesPriority: 2,
|
|
978
1114
|
onModifySpecies(species, target, source, effect) {
|
|
@@ -1502,6 +1638,53 @@ exports.Formats = [
|
|
|
1502
1638
|
}
|
|
1503
1639
|
},
|
|
1504
1640
|
},
|
|
1641
|
+
{
|
|
1642
|
+
name: "[Gen 8] Pokebilities",
|
|
1643
|
+
desc: `Pokémon have all of their released abilities simultaneously.`,
|
|
1644
|
+
threads: [
|
|
1645
|
+
`• <a href="https://www.smogon.com/forums/threads/3679692/">Pokébilities</a>`,
|
|
1646
|
+
],
|
|
1647
|
+
mod: 'pokebilities',
|
|
1648
|
+
searchShow: false,
|
|
1649
|
+
ruleset: ['Standard', 'Dynamax Clause'],
|
|
1650
|
+
banlist: [
|
|
1651
|
+
'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Conkeldurr', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dracozolt',
|
|
1652
|
+
'Eternatus', 'Excadrill', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black',
|
|
1653
|
+
'Kyurem-White', 'Landorus-Base', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings',
|
|
1654
|
+
'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base',
|
|
1655
|
+
'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zygarde-Base', 'Power Construct',
|
|
1656
|
+
'Baton Pass', 'King\'s Rock',
|
|
1657
|
+
// Moody users
|
|
1658
|
+
'Glalie', 'Octillery', 'Remoraid', 'Snorunt',
|
|
1659
|
+
// Shadow Tag/Arena Trap
|
|
1660
|
+
'Diglett-Base', 'Dugtrio-Base', 'Gothita', 'Gothitelle', 'Gothorita', 'Trapinch', 'Wobbuffet', 'Wynaut',
|
|
1661
|
+
],
|
|
1662
|
+
onBegin() {
|
|
1663
|
+
for (const pokemon of this.getAllPokemon()) {
|
|
1664
|
+
if (pokemon.ability === this.toID(pokemon.species.abilities['S'])) {
|
|
1665
|
+
continue;
|
|
1666
|
+
}
|
|
1667
|
+
pokemon.m.innates = Object.keys(pokemon.species.abilities)
|
|
1668
|
+
.filter(key => key !== 'S' && (key !== 'H' || !pokemon.species.unreleasedHidden))
|
|
1669
|
+
.map(key => this.toID(pokemon.species.abilities[key]))
|
|
1670
|
+
.filter(ability => ability !== pokemon.ability);
|
|
1671
|
+
}
|
|
1672
|
+
},
|
|
1673
|
+
onSwitchInPriority: 2,
|
|
1674
|
+
onSwitchIn(pokemon) {
|
|
1675
|
+
if (pokemon.m.innates) {
|
|
1676
|
+
for (const innate of pokemon.m.innates) {
|
|
1677
|
+
pokemon.addVolatile("ability:" + innate, pokemon);
|
|
1678
|
+
}
|
|
1679
|
+
}
|
|
1680
|
+
},
|
|
1681
|
+
onAfterMega(pokemon) {
|
|
1682
|
+
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
|
|
1683
|
+
pokemon.removeVolatile(innate);
|
|
1684
|
+
}
|
|
1685
|
+
pokemon.m.innates = undefined;
|
|
1686
|
+
},
|
|
1687
|
+
},
|
|
1505
1688
|
{
|
|
1506
1689
|
name: "[Gen 8] The Loser's Game",
|
|
1507
1690
|
desc: `The first player to lose all of their Pokémon wins.`,
|
|
@@ -1624,106 +1807,6 @@ exports.Formats = [
|
|
|
1624
1807
|
},
|
|
1625
1808
|
},
|
|
1626
1809
|
},
|
|
1627
|
-
{
|
|
1628
|
-
name: "[Gen 8] Trademarked",
|
|
1629
|
-
desc: `Sacrifice your Pokémon's ability for a status move that activates on switch-in.`,
|
|
1630
|
-
threads: [
|
|
1631
|
-
`• <a href="https://www.smogon.com/forums/threads/3656980/">Trademarked</a>`,
|
|
1632
|
-
],
|
|
1633
|
-
mod: 'gen8',
|
|
1634
|
-
searchShow: false,
|
|
1635
|
-
ruleset: ['Standard', 'Dynamax Clause'],
|
|
1636
|
-
banlist: [
|
|
1637
|
-
'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Kyurem-Black', 'Kyurem-White',
|
|
1638
|
-
'Giratina', 'Giratina-Origin', 'Genesect', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Lugia', 'Lunala', 'Magearna', 'Marshadow',
|
|
1639
|
-
'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
|
|
1640
|
-
'Solgaleo', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base',
|
|
1641
|
-
'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
|
|
1642
|
-
],
|
|
1643
|
-
restricted: [
|
|
1644
|
-
'Baneful Bunker', 'Block', 'Copycat', 'Corrosive Gas', 'Detect', 'Destiny Bond', 'Disable', 'Encore', 'Fairy Lock', 'Hypnosis', 'Ingrain',
|
|
1645
|
-
'Instruct', 'Lovely Kiss', 'King\'s Shield', 'Mat Block', 'Mean Look', 'move:Metronome', 'Obstruct', 'Octolock', 'Nature Power', 'Parting Shot',
|
|
1646
|
-
'Psycho Shift', 'Protect', 'Roar', 'Sing', 'Skill Swap', 'Sleep Powder', 'Sleep Talk', 'Spiky Shield', 'Spore', 'Substitute', 'Teleport',
|
|
1647
|
-
'Whirlwind', 'Wish', 'Yawn',
|
|
1648
|
-
],
|
|
1649
|
-
onValidateTeam(team, format, teamHas) {
|
|
1650
|
-
const problems = [];
|
|
1651
|
-
for (const trademark in teamHas.trademarks) {
|
|
1652
|
-
if (teamHas.trademarks[trademark] > 1) {
|
|
1653
|
-
problems.push(`You are limited to 1 of each Trademark.`, `(You have ${teamHas.trademarks[trademark]} Pok\u00e9mon with ${trademark} as a Trademark.)`);
|
|
1654
|
-
}
|
|
1655
|
-
}
|
|
1656
|
-
return problems;
|
|
1657
|
-
},
|
|
1658
|
-
validateSet(set, teamHas) {
|
|
1659
|
-
const dex = this.dex;
|
|
1660
|
-
const ability = dex.moves.get(set.ability);
|
|
1661
|
-
if (!ability.exists) { // Not even a real move
|
|
1662
|
-
return this.validateSet(set, teamHas);
|
|
1663
|
-
}
|
|
1664
|
-
// Absolute trademark bans
|
|
1665
|
-
if (ability.category !== 'Status') {
|
|
1666
|
-
return [`${ability.name} is not a status move, and cannot be used as a trademark.`];
|
|
1667
|
-
}
|
|
1668
|
-
if (ability.forceSwitch || ability.selfSwitch) {
|
|
1669
|
-
return [
|
|
1670
|
-
`Force-switching and self-switching moves are banned from being used as trademarks.`,
|
|
1671
|
-
`(${ability.name} is a ${ability.forceSwitch ? 'force' : 'self'}-switching move.)`,
|
|
1672
|
-
];
|
|
1673
|
-
}
|
|
1674
|
-
const irrevokablyRestricted = [
|
|
1675
|
-
'Assist', 'Copycat', 'Metronome', 'Mirror Move', 'Sleep Talk',
|
|
1676
|
-
'Skill Swap', // Self-propagates indefinitely
|
|
1677
|
-
];
|
|
1678
|
-
if (irrevokablyRestricted.includes(ability.name)) {
|
|
1679
|
-
return [`${ability.name} cannot safely function as a trademark.`];
|
|
1680
|
-
}
|
|
1681
|
-
// Contingent trademark bans
|
|
1682
|
-
if (this.ruleTable.isRestricted(`move:${ability.id}`)) {
|
|
1683
|
-
return [`${ability.name} is restricted from being used as a trademark.`];
|
|
1684
|
-
}
|
|
1685
|
-
if (set.moves.map(this.toID).includes(ability.id)) {
|
|
1686
|
-
return [`${set.name} may not use ${ability.name} as both a trademark and one of its moves simultaneously.`];
|
|
1687
|
-
}
|
|
1688
|
-
const customRules = this.format.customRules || [];
|
|
1689
|
-
if (!customRules.includes('!obtainableabilities'))
|
|
1690
|
-
customRules.push('!obtainableabilities');
|
|
1691
|
-
const TeamValidator = require('../sim/team-validator').TeamValidator;
|
|
1692
|
-
const validator = new TeamValidator(dex.formats.get(`${this.format.id}@@@${customRules.join(',')}`));
|
|
1693
|
-
const moves = set.moves;
|
|
1694
|
-
set.moves = [ability.id];
|
|
1695
|
-
set.ability = dex.species.get(set.species).abilities['0'];
|
|
1696
|
-
let problems = validator.validateSet(set, {}) || [];
|
|
1697
|
-
if (problems.length)
|
|
1698
|
-
return problems;
|
|
1699
|
-
set.moves = moves;
|
|
1700
|
-
set.ability = dex.species.get(set.species).abilities['0'];
|
|
1701
|
-
problems = problems.concat(validator.validateSet(set, teamHas) || []);
|
|
1702
|
-
set.ability = ability.id;
|
|
1703
|
-
if (!teamHas.trademarks)
|
|
1704
|
-
teamHas.trademarks = {};
|
|
1705
|
-
teamHas.trademarks[ability.name] = (teamHas.trademarks[ability.name] || 0) + 1;
|
|
1706
|
-
return problems.length ? problems : null;
|
|
1707
|
-
},
|
|
1708
|
-
pokemon: {
|
|
1709
|
-
getAbility() {
|
|
1710
|
-
const move = this.battle.dex.moves.get(this.battle.toID(this.ability));
|
|
1711
|
-
if (!move.exists)
|
|
1712
|
-
return Object.getPrototypeOf(this).getAbility.call(this);
|
|
1713
|
-
return {
|
|
1714
|
-
id: move.id,
|
|
1715
|
-
name: move.name,
|
|
1716
|
-
onStart(pokemon) {
|
|
1717
|
-
this.add('-activate', pokemon, 'ability: ' + move.name);
|
|
1718
|
-
this.actions.useMove(move, pokemon);
|
|
1719
|
-
},
|
|
1720
|
-
toString() {
|
|
1721
|
-
return "";
|
|
1722
|
-
},
|
|
1723
|
-
};
|
|
1724
|
-
},
|
|
1725
|
-
},
|
|
1726
|
-
},
|
|
1727
1810
|
// Randomized Metas
|
|
1728
1811
|
///////////////////////////////////////////////////////////////////
|
|
1729
1812
|
{
|
|
@@ -1831,7 +1914,8 @@ exports.Formats = [
|
|
|
1831
1914
|
desc: `Randomized teams of level-balanced Pokémon with absolutely any ability, moves, and item.`,
|
|
1832
1915
|
mod: 'gen8',
|
|
1833
1916
|
team: 'randomHC',
|
|
1834
|
-
ruleset: ['
|
|
1917
|
+
ruleset: ['HP Percentage Mod', 'Cancel Mod'],
|
|
1918
|
+
banlist: ['Nonexistent'],
|
|
1835
1919
|
},
|
|
1836
1920
|
{
|
|
1837
1921
|
name: "[Gen 8] Doubles Hackmons Cup",
|
|
@@ -1839,7 +1923,8 @@ exports.Formats = [
|
|
|
1839
1923
|
gameType: 'doubles',
|
|
1840
1924
|
team: 'randomHC',
|
|
1841
1925
|
searchShow: false,
|
|
1842
|
-
ruleset: ['
|
|
1926
|
+
ruleset: ['HP Percentage Mod', 'Cancel Mod'],
|
|
1927
|
+
banlist: ['Nonexistent'],
|
|
1843
1928
|
},
|
|
1844
1929
|
{
|
|
1845
1930
|
name: "[Gen 8] CAP 1v1",
|
|
@@ -1908,6 +1993,7 @@ exports.Formats = [
|
|
|
1908
1993
|
team: 'randomHC',
|
|
1909
1994
|
searchShow: false,
|
|
1910
1995
|
ruleset: ['HP Percentage Mod', 'Cancel Mod'],
|
|
1996
|
+
banlist: ['Nonexistent'],
|
|
1911
1997
|
},
|
|
1912
1998
|
{
|
|
1913
1999
|
name: "[Gen 7 Let's Go] Random Battle",
|
|
@@ -1974,6 +2060,7 @@ exports.Formats = [
|
|
|
1974
2060
|
team: 'randomHC',
|
|
1975
2061
|
searchShow: false,
|
|
1976
2062
|
ruleset: ['HP Percentage Mod', 'Cancel Mod', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Team Type Preview'],
|
|
2063
|
+
banlist: ['Nonexistent'],
|
|
1977
2064
|
onModifySpecies(species, target, source, effect) {
|
|
1978
2065
|
if (!target)
|
|
1979
2066
|
return;
|
|
@@ -1995,47 +2082,36 @@ exports.Formats = [
|
|
|
1995
2082
|
column: 3,
|
|
1996
2083
|
},
|
|
1997
2084
|
{
|
|
1998
|
-
name: "[Gen
|
|
2085
|
+
name: "[Gen 3] UU",
|
|
1999
2086
|
threads: [
|
|
2000
|
-
`• <a href="https://www.smogon.com/forums/threads/
|
|
2001
|
-
`• <a href="https://www.smogon.com/forums/threads/
|
|
2087
|
+
`• <a href="https://www.smogon.com/forums/threads/3585923/">ADV UU Metagame Discussion</a>`,
|
|
2088
|
+
`• <a href="https://www.smogon.com/forums/threads/3548578/">ADV UU Viability Rankings</a>`,
|
|
2002
2089
|
],
|
|
2003
|
-
mod: '
|
|
2090
|
+
mod: 'gen3',
|
|
2004
2091
|
// searchShow: false,
|
|
2005
|
-
ruleset: ['
|
|
2006
|
-
banlist: ['OU', 'UUBL'],
|
|
2092
|
+
ruleset: ['Standard', 'NFE Clause'],
|
|
2093
|
+
banlist: ['Uber', 'OU', 'UUBL', 'Smeargle + Ingrain', 'Baton Pass'],
|
|
2094
|
+
unbanlist: ['Scyther', 'Sand Veil'],
|
|
2007
2095
|
},
|
|
2008
2096
|
{
|
|
2009
|
-
name: "[Gen
|
|
2010
|
-
desc: `Bring three Pokémon to Team Preview and choose one to battle.`,
|
|
2097
|
+
name: "[Gen 1] NU",
|
|
2011
2098
|
threads: [
|
|
2012
|
-
`• <a href="https://www.smogon.com/forums/
|
|
2099
|
+
`• <a href="https://www.smogon.com/forums/threads/3668913/">RBY NU Viability Rankings</a>`,
|
|
2013
2100
|
],
|
|
2014
|
-
mod: '
|
|
2101
|
+
mod: 'gen1',
|
|
2015
2102
|
// searchShow: false,
|
|
2016
|
-
ruleset: [
|
|
2017
|
-
|
|
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
|
-
],
|
|
2103
|
+
ruleset: ['[Gen 1] UU'],
|
|
2104
|
+
banlist: ['UU', 'NUBL'],
|
|
2026
2105
|
},
|
|
2027
2106
|
{
|
|
2028
|
-
name: "[Gen
|
|
2107
|
+
name: "[Gen 4] Ubers",
|
|
2029
2108
|
threads: [
|
|
2030
|
-
`• <a href="https://www.smogon.com/forums/
|
|
2031
|
-
`• <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
|
|
2032
|
-
`• <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
|
|
2109
|
+
`• <a href="https://www.smogon.com/forums/posts/8286279/">DPP Ubers</a>`,
|
|
2033
2110
|
],
|
|
2034
|
-
mod: '
|
|
2035
|
-
gameType: 'doubles',
|
|
2111
|
+
mod: 'gen4',
|
|
2036
2112
|
// searchShow: false,
|
|
2037
|
-
ruleset: ['Standard'
|
|
2038
|
-
banlist: ['
|
|
2113
|
+
ruleset: ['Standard'],
|
|
2114
|
+
banlist: ['AG'],
|
|
2039
2115
|
},
|
|
2040
2116
|
// Past Gens OU
|
|
2041
2117
|
///////////////////////////////////////////////////////////////////
|
|
@@ -2072,8 +2148,8 @@ exports.Formats = [
|
|
|
2072
2148
|
`• <a href="https://www.smogon.com/forums/threads/3668699/">BW2 OU Viability Rankings</a>`,
|
|
2073
2149
|
],
|
|
2074
2150
|
mod: 'gen5',
|
|
2075
|
-
ruleset: ['Standard', 'Evasion Abilities Clause', '
|
|
2076
|
-
banlist: ['Uber', 'Arena Trap', 'Drizzle ++ Swift Swim', 'Drought ++ Chlorophyll', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Assist'],
|
|
2151
|
+
ruleset: ['Standard', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Swagger Clause'],
|
|
2152
|
+
banlist: ['Uber', 'Arena Trap', 'Drizzle ++ Swift Swim', 'Drought ++ Chlorophyll', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Assist', 'Baton Pass'],
|
|
2077
2153
|
},
|
|
2078
2154
|
{
|
|
2079
2155
|
name: "[Gen 4] OU",
|
|
@@ -2084,7 +2160,7 @@ exports.Formats = [
|
|
|
2084
2160
|
],
|
|
2085
2161
|
mod: 'gen4',
|
|
2086
2162
|
ruleset: ['Standard'],
|
|
2087
|
-
banlist: ['AG', 'Uber', 'Arena Trap', 'Sand Veil', 'Swinub + Snow Cloak', 'Piloswine + Snow Cloak', 'Mamoswine + Snow Cloak', 'Soul Dew', 'Baton Pass'],
|
|
2163
|
+
banlist: ['AG', 'Uber', 'Arena Trap', 'Sand Veil', 'Swinub + Snow Cloak', 'Piloswine + Snow Cloak', 'Mamoswine + Snow Cloak', 'Soul Dew', 'Baton Pass', 'Swagger'],
|
|
2088
2164
|
},
|
|
2089
2165
|
{
|
|
2090
2166
|
name: "[Gen 3] OU",
|
|
@@ -2094,7 +2170,7 @@ exports.Formats = [
|
|
|
2094
2170
|
],
|
|
2095
2171
|
mod: 'gen3',
|
|
2096
2172
|
ruleset: ['Standard', 'One Boost Passer Clause'],
|
|
2097
|
-
banlist: ['Uber', 'Sand Veil', 'Smeargle + Ingrain'],
|
|
2173
|
+
banlist: ['Uber', 'Sand Veil', 'Assist', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Smeargle + Ingrain'],
|
|
2098
2174
|
},
|
|
2099
2175
|
{
|
|
2100
2176
|
name: "[Gen 2] OU",
|
|
@@ -2238,6 +2314,15 @@ exports.Formats = [
|
|
|
2238
2314
|
mod: 'gen6',
|
|
2239
2315
|
ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', 'EV limit = 510'],
|
|
2240
2316
|
},
|
|
2317
|
+
{
|
|
2318
|
+
name: "[Gen 5] ZU",
|
|
2319
|
+
threads: [
|
|
2320
|
+
`• <a href="https://www.smogon.com/forums/posts/8034680/">BW2 ZU</a>`,
|
|
2321
|
+
],
|
|
2322
|
+
mod: 'gen5',
|
|
2323
|
+
ruleset: ['[Gen 5] PU'],
|
|
2324
|
+
banlist: ['PU', 'Dragonair', 'Glalie', 'Machoke', 'Marowak', 'Omanyte', 'Regigigas', 'Trubbish', 'Whirlipede', 'Baton Pass'],
|
|
2325
|
+
},
|
|
2241
2326
|
// US/UM Singles
|
|
2242
2327
|
///////////////////////////////////////////////////////////////////
|
|
2243
2328
|
{
|
|
@@ -2622,6 +2707,25 @@ exports.Formats = [
|
|
|
2622
2707
|
'Soul Dew', 'Baton Pass',
|
|
2623
2708
|
],
|
|
2624
2709
|
},
|
|
2710
|
+
{
|
|
2711
|
+
name: "[Gen 6] 1v1",
|
|
2712
|
+
desc: `Bring three Pokémon to Team Preview and choose one to battle.`,
|
|
2713
|
+
threads: [
|
|
2714
|
+
`• <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
|
|
2715
|
+
],
|
|
2716
|
+
mod: 'gen6',
|
|
2717
|
+
searchShow: false,
|
|
2718
|
+
ruleset: [
|
|
2719
|
+
'Max Team Size = 3', 'Picked Team Size = 1',
|
|
2720
|
+
'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',
|
|
2721
|
+
],
|
|
2722
|
+
banlist: [
|
|
2723
|
+
'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
|
|
2724
|
+
'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
|
|
2725
|
+
'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
|
|
2726
|
+
'Focus Sash', 'Soul Dew', 'Perish Song',
|
|
2727
|
+
],
|
|
2728
|
+
},
|
|
2625
2729
|
{
|
|
2626
2730
|
name: "[Gen 6] Anything Goes",
|
|
2627
2731
|
threads: [
|
|
@@ -2820,7 +2924,7 @@ exports.Formats = [
|
|
|
2820
2924
|
mod: 'gen5',
|
|
2821
2925
|
searchShow: false,
|
|
2822
2926
|
ruleset: ['[Gen 5] NU', 'Sleep Moves Clause'],
|
|
2823
|
-
banlist: ['NU', '
|
|
2927
|
+
banlist: ['NU', 'PUBL'],
|
|
2824
2928
|
},
|
|
2825
2929
|
{
|
|
2826
2930
|
name: "[Gen 5] LC",
|
|
@@ -2883,6 +2987,19 @@ exports.Formats = [
|
|
|
2883
2987
|
section: 'B2/W2 Doubles',
|
|
2884
2988
|
column: 4,
|
|
2885
2989
|
},
|
|
2990
|
+
{
|
|
2991
|
+
name: "[Gen 5] Doubles OU",
|
|
2992
|
+
threads: [
|
|
2993
|
+
`• <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
|
|
2994
|
+
`• <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
|
|
2995
|
+
`• <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
|
|
2996
|
+
],
|
|
2997
|
+
mod: 'gen5',
|
|
2998
|
+
gameType: 'doubles',
|
|
2999
|
+
searchShow: false,
|
|
3000
|
+
ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
|
|
3001
|
+
banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
|
|
3002
|
+
},
|
|
2886
3003
|
{
|
|
2887
3004
|
name: "[Gen 5] VGC 2013",
|
|
2888
3005
|
mod: 'gen5',
|
|
@@ -2933,16 +3050,6 @@ exports.Formats = [
|
|
|
2933
3050
|
section: "DPP Singles",
|
|
2934
3051
|
column: 5,
|
|
2935
3052
|
},
|
|
2936
|
-
{
|
|
2937
|
-
name: "[Gen 4] Ubers",
|
|
2938
|
-
threads: [
|
|
2939
|
-
`• <a href="https://www.smogon.com/forums/posts/8286279/">DPP Ubers</a>`,
|
|
2940
|
-
],
|
|
2941
|
-
mod: 'gen4',
|
|
2942
|
-
searchShow: false,
|
|
2943
|
-
ruleset: ['Standard'],
|
|
2944
|
-
banlist: ['AG'],
|
|
2945
|
-
},
|
|
2946
3053
|
{
|
|
2947
3054
|
name: "[Gen 4] UU",
|
|
2948
3055
|
threads: [
|
|
@@ -2953,7 +3060,7 @@ exports.Formats = [
|
|
|
2953
3060
|
searchShow: false,
|
|
2954
3061
|
ruleset: ['[Gen 4] OU'],
|
|
2955
3062
|
banlist: ['OU', 'UUBL'],
|
|
2956
|
-
unbanlist: ['Arena Trap'],
|
|
3063
|
+
unbanlist: ['Arena Trap', 'Swagger'],
|
|
2957
3064
|
},
|
|
2958
3065
|
{
|
|
2959
3066
|
name: "[Gen 4] NU",
|
|
@@ -3009,8 +3116,8 @@ exports.Formats = [
|
|
|
3009
3116
|
'Picked Team Size = 1', 'Max Team Size = 3',
|
|
3010
3117
|
'[Gen 4] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
|
|
3011
3118
|
],
|
|
3012
|
-
banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
|
|
3013
|
-
unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil'],
|
|
3119
|
+
banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Shaymin', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
|
|
3120
|
+
unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil', 'Swagger'],
|
|
3014
3121
|
},
|
|
3015
3122
|
{
|
|
3016
3123
|
name: "[Gen 4] Anything Goes",
|
|
@@ -3041,7 +3148,7 @@ exports.Formats = [
|
|
|
3041
3148
|
searchShow: false,
|
|
3042
3149
|
ruleset: ['[Gen 4] OU'],
|
|
3043
3150
|
banlist: ['Explosion'],
|
|
3044
|
-
unbanlist: ['Garchomp', 'Latias', 'Latios', 'Manaphy', 'Mew', 'Salamence', 'Wobbuffet', 'Wynaut'],
|
|
3151
|
+
unbanlist: ['Garchomp', 'Latias', 'Latios', 'Manaphy', 'Mew', 'Salamence', 'Wobbuffet', 'Wynaut', 'Swagger'],
|
|
3045
3152
|
},
|
|
3046
3153
|
{
|
|
3047
3154
|
name: "[Gen 4] VGC 2010",
|
|
@@ -3083,21 +3190,9 @@ exports.Formats = [
|
|
|
3083
3190
|
],
|
|
3084
3191
|
mod: 'gen3',
|
|
3085
3192
|
searchShow: false,
|
|
3086
|
-
ruleset: ['Standard', 'Deoxys Camouflage Clause'],
|
|
3193
|
+
ruleset: ['Standard', 'Deoxys Camouflage Clause', 'One Baton Pass Clause'],
|
|
3087
3194
|
banlist: ['Wobbuffet + Leftovers'],
|
|
3088
3195
|
},
|
|
3089
|
-
{
|
|
3090
|
-
name: "[Gen 3] UU",
|
|
3091
|
-
threads: [
|
|
3092
|
-
`• <a href="https://www.smogon.com/forums/threads/3585923/">ADV UU Metagame Discussion</a>`,
|
|
3093
|
-
`• <a href="https://www.smogon.com/forums/threads/3548578/">ADV UU Viability Rankings</a>`,
|
|
3094
|
-
],
|
|
3095
|
-
mod: 'gen3',
|
|
3096
|
-
searchShow: false,
|
|
3097
|
-
ruleset: ['Standard', 'NFE Clause'],
|
|
3098
|
-
banlist: ['Uber', 'OU', 'UUBL', 'Smeargle + Ingrain', 'Baton Pass'],
|
|
3099
|
-
unbanlist: ['Scyther', 'Sand Veil'],
|
|
3100
|
-
},
|
|
3101
3196
|
{
|
|
3102
3197
|
name: "[Gen 3] NU",
|
|
3103
3198
|
threads: [
|
|
@@ -3186,7 +3281,10 @@ exports.Formats = [
|
|
|
3186
3281
|
'Picked Team Size = 1', 'Max Team Size = 3',
|
|
3187
3282
|
'[Gen 2] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
|
|
3188
3283
|
],
|
|
3189
|
-
banlist: [
|
|
3284
|
+
banlist: [
|
|
3285
|
+
'Clefable', 'Snorlax', 'Zapdos', 'Berserk Gene', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Quick Claw',
|
|
3286
|
+
'Attract', 'Destiny Bond', 'Explosion', 'Perish Song', 'Present', 'Self-Destruct', 'Swagger',
|
|
3287
|
+
],
|
|
3190
3288
|
},
|
|
3191
3289
|
{
|
|
3192
3290
|
name: "[Gen 2] Nintendo Cup 2000",
|
|
@@ -3230,14 +3328,15 @@ exports.Formats = [
|
|
|
3230
3328
|
ruleset: ['Standard'],
|
|
3231
3329
|
},
|
|
3232
3330
|
{
|
|
3233
|
-
name: "[Gen 1]
|
|
3331
|
+
name: "[Gen 1] UU",
|
|
3234
3332
|
threads: [
|
|
3235
|
-
`• <a href="https://www.smogon.com/forums/threads/
|
|
3333
|
+
`• <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
|
|
3334
|
+
`• <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
|
|
3236
3335
|
],
|
|
3237
3336
|
mod: 'gen1',
|
|
3238
3337
|
searchShow: false,
|
|
3239
|
-
ruleset: ['[Gen 1]
|
|
3240
|
-
banlist: ['
|
|
3338
|
+
ruleset: ['[Gen 1] OU'],
|
|
3339
|
+
banlist: ['OU', 'UUBL'],
|
|
3241
3340
|
},
|
|
3242
3341
|
{
|
|
3243
3342
|
name: "[Gen 1] Japanese OU",
|