@pkmn/sim 0.4.22 → 0.4.23

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/config/formats.ts CHANGED
@@ -292,30 +292,6 @@ export const Formats: FormatList = [
292
292
  searchShow: false,
293
293
  ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
294
294
  },
295
- {
296
- name: "[Gen 8] Gym Challenge",
297
- threads: [
298
- `&bullet; <a href="https://www.pokemon.com/us/pokemon-news/register-for-the-pokemon-gym-challenge-online-competition/">Gym Challenge Registration</a>`,
299
- ],
300
-
301
- mod: 'gen8',
302
- ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
303
- onValidateSet(set) {
304
- const gymMonsList = [
305
- 'ninetales', 'arcanine', 'machamp', 'ponytagalar', 'rapidashgalar', 'gengar', 'weezinggalar', 'goldeen', 'seaking', 'lapras', 'bellossom',
306
- 'quagsire', 'shuckle', 'hitmontop', 'tyranitar', 'ludicolo', 'shiftry', 'pelipper', 'gardevoir', 'mawile', 'torkoal', 'flygon', 'cherrim',
307
- 'skuntank', 'croagunk', 'toxicroak', 'togekiss', 'dusknoir', 'liepard', 'gigalith', 'darmanitangalar', 'scraggy', 'scrafty', 'yamaskgalar',
308
- 'gothita', 'gothorita', 'solosis', 'duosion', 'chandelure', 'pangoro', 'malamar', 'barbaracle', 'sylveon', 'hawlucha', 'goodra', 'toxapex',
309
- 'salazzle', 'tsareena', 'golisopod', 'turtonator', 'mimikyu', 'gossifleur', 'eldegoss', 'drednaw', 'coalossal', 'flapple', 'appletun',
310
- 'sandaconda', 'arrokuda', 'barraskewda', 'toxtricitylowkey', 'centiskorch', 'grapploct', 'polteageist', 'hatenna', 'hattrem', 'hatterene',
311
- 'grimmsnarl', 'obstagoon', 'cursola', 'sirfetchd', 'mrrime', 'runerigus', 'falinks', 'frosmoth', 'stonjourner', 'eiscue', 'morpeko', 'duraludon',
312
- ];
313
- const species = this.dex.species.get(set.species);
314
- if (!gymMonsList.includes(species.id) && !species.id.startsWith('alcremie')) {
315
- return [`${species.name} is not allowed in this competition.`];
316
- }
317
- },
318
- },
319
295
  {
320
296
  name: "[Gen 8] Custom Game",
321
297
 
@@ -863,6 +839,60 @@ export const Formats: FormatList = [
863
839
  'Decorate', 'Final Gambit', 'Flatter', 'Floral Healing', 'Flower Shield', 'Follow Me', 'Heal Pulse', 'Rage Powder', 'Swagger',
864
840
  ],
865
841
  },
842
+ {
843
+ section: "BD/SP",
844
+ column: 2,
845
+ },
846
+ {
847
+ name: "[Gen 8 BDSP] Random Battle",
848
+ desc: `Randomized teams of level-balanced Pok&eacute;mon with sets that are generated to be competitively viable.`,
849
+
850
+ mod: 'gen8bdsp',
851
+ team: 'random',
852
+ searchShow: false,
853
+ challengeShow: false,
854
+ tournamentShow: false,
855
+ ruleset: ['[Gen 8] Random Battle'],
856
+ },
857
+ {
858
+ name: "[Gen 8 BDSP] OU",
859
+ threads: [
860
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693629/">BDSP OU Metagame Discussion</a>`,
861
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693620/">BDSP OU Viability List</a>`,
862
+ ],
863
+
864
+ mod: 'gen8bdsp',
865
+ ruleset: ['Standard'],
866
+ banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'],
867
+ },
868
+ {
869
+ name: "[Gen 8 BDSP] Doubles OU",
870
+
871
+ mod: 'gen8bdsp',
872
+ gameType: 'doubles',
873
+ searchShow: false,
874
+ ruleset: ['Standard Doubles'],
875
+ banlist: ['DUber'],
876
+ },
877
+ {
878
+ name: "[Gen 8 BDSP] Battle Festival Doubles",
879
+
880
+ mod: 'gen8bdsp',
881
+ gameType: 'doubles',
882
+ // VGC Timer is temporary
883
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer'],
884
+ },
885
+ {
886
+ name: "[Gen 8 BDSP] Pure Hackmons",
887
+ desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
888
+ threads: [
889
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3656851/">Pure Hackmons</a>`,
890
+ ],
891
+
892
+ mod: 'gen8bdsp',
893
+ searchShow: false,
894
+ ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'],
895
+ },
866
896
  {
867
897
  section: "Challengeable OMs",
868
898
  column: 2,
@@ -1380,17 +1410,6 @@ export const Formats: FormatList = [
1380
1410
  },
1381
1411
  },
1382
1412
  },
1383
- {
1384
- name: "[Gen 8] Pure Hackmons",
1385
- desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
1386
- threads: [
1387
- `&bullet; <a href="https://www.smogon.com/forums/threads/3656851/">Pure Hackmons</a>`,
1388
- ],
1389
-
1390
- mod: 'gen8',
1391
- searchShow: false,
1392
- ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'],
1393
- },
1394
1413
  {
1395
1414
  name: "[Gen 8] Shared Power",
1396
1415
  desc: `Once a Pok&eacute;mon switches in, its ability is shared with the rest of the team.`,
@@ -2865,8 +2884,8 @@ export const Formats: FormatList = [
2865
2884
 
2866
2885
  mod: 'gen5',
2867
2886
  searchShow: false,
2868
- ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod', '+Shadow Tag'],
2869
- banlist: ['RU', 'NUBL', 'Prankster + Assist'],
2887
+ ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2888
+ banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
2870
2889
  },
2871
2890
  {
2872
2891
  name: "[Gen 5] PU",
@@ -2877,7 +2896,7 @@ export const Formats: FormatList = [
2877
2896
  mod: 'gen5',
2878
2897
  searchShow: false,
2879
2898
  ruleset: ['[Gen 5] NU', 'Sleep Moves Clause'],
2880
- banlist: ['NU', 'Combusken', 'Gothorita', 'Linoone', 'Riolu', 'Rotom-Frost', 'Throh', 'Vigoroth'],
2899
+ banlist: ['NU', 'Combusken', 'Gothorita', 'Linoone', 'Riolu', 'Rotom-Frost', 'Simipour', 'Throh', 'Vigoroth'],
2881
2900
  },
2882
2901
  {
2883
2902
  name: "[Gen 5] LC",
@@ -5218,7 +5218,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5218
5218
  randomBattleLevel: 86,
5219
5219
  randomDoubleBattleMoves: ["dracometeor", "dragonpulse", "glare", "heatwave", "hurricane", "hypervoice", "protect", "roost"],
5220
5220
  randomDoubleBattleLevel: 88,
5221
- tier: "PU",
5221
+ tier: "PUBL",
5222
5222
  doublesTier: "(DUU)",
5223
5223
  },
5224
5224
  dhelmise: {
@@ -5240,7 +5240,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5240
5240
  randomBattleLevel: 80,
5241
5241
  randomDoubleBattleMoves: ["bodypress", "dracometeor", "irondefense", "protect"],
5242
5242
  randomDoubleBattleLevel: 80,
5243
- tier: "UU",
5243
+ tier: "UUBL",
5244
5244
  doublesTier: "(DUU)",
5245
5245
  },
5246
5246
  kommoototem: {
package/data/rulesets.ts CHANGED
@@ -1089,7 +1089,9 @@ export const Rulesets: {[k: string]: FormatData} = {
1089
1089
  if (!nonstandard && !move.isZ && !move.isMax && !this.ruleTable.isRestricted(`move:${move.id}`)) {
1090
1090
  const speciesTypes: string[] = [];
1091
1091
  const moveTypes: string[] = [];
1092
- for (let i = this.dex.gen; i >= species.gen && i >= move.gen; i--) {
1092
+ // BDSP can't import Pokemon from Home, so it shouldn't grant moves from archaic species types
1093
+ const minObtainableSpeciesGen = this.dex.currentMod === 'gen8bdsp' ? this.dex.gen : species.gen;
1094
+ for (let i = this.dex.gen; i >= minObtainableSpeciesGen && i >= move.gen; i--) {
1093
1095
  const dex = this.dex.forGen(i);
1094
1096
  moveTypes.push(dex.moves.get(move.name).type);
1095
1097