@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/build/config/formats.js +52 -36
- package/build/config/formats.js.map +1 -1
- package/build/data/formats-data.js +2 -2
- package/build/data/formats-data.js.map +1 -1
- package/build/data/rulesets.js +3 -1
- package/build/data/rulesets.js.map +1 -1
- package/build/lib/streams.d.ts +1 -199
- package/build/lib/streams.js +11 -772
- package/build/lib/streams.js.map +1 -1
- package/build/sim/dex-species.js +7 -0
- package/build/sim/dex-species.js.map +1 -1
- package/build/sim/exported-global-types.d.ts +1 -0
- package/build/sim/global-types.d.ts +1 -0
- package/build/sim/team-validator.js +1 -1
- package/build/sim/team-validator.js.map +1 -1
- package/config/formats.ts +57 -38
- package/data/formats-data.ts +2 -2
- package/data/rulesets.ts +3 -1
- package/lib/streams.ts +1 -874
- package/package.json +3 -2
- package/sim/dex-species.ts +7 -0
- package/sim/exported-global-types.ts +1 -0
- package/sim/global-types.ts +1 -0
- package/sim/team-validator.ts +1 -1
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
|
-
`• <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é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
|
+
`• <a href="https://www.smogon.com/forums/threads/3693629/">BDSP OU Metagame Discussion</a>`,
|
|
861
|
+
`• <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
|
+
`• <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
|
-
`• <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é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'
|
|
2869
|
-
banlist: ['RU', 'NUBL', '
|
|
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",
|
package/data/formats-data.ts
CHANGED
|
@@ -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: "
|
|
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: "
|
|
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
|
-
|
|
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
|
|