@pkmn/sim 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/build/cjs/config/formats.js +27 -22
  2. package/build/cjs/config/formats.js.map +1 -1
  3. package/build/cjs/data/abilities.js +16 -18
  4. package/build/cjs/data/abilities.js.map +1 -1
  5. package/build/cjs/data/moves.js +2 -3
  6. package/build/cjs/data/moves.js.map +1 -1
  7. package/build/cjs/data/pokedex.js +3 -3
  8. package/build/cjs/data/pokedex.js.map +1 -1
  9. package/build/cjs/data/rulesets.js +12 -49
  10. package/build/cjs/data/rulesets.js.map +1 -1
  11. package/build/cjs/data/text/abilities.js +5 -4
  12. package/build/cjs/data/text/abilities.js.map +1 -1
  13. package/build/cjs/data/text/moves.js +2 -1
  14. package/build/cjs/data/text/moves.js.map +1 -1
  15. package/build/cjs/sim/team-validator.js +1 -1
  16. package/build/cjs/sim/team-validator.js.map +1 -1
  17. package/build/esm/config/formats.mjs +28 -23
  18. package/build/esm/config/formats.mjs.map +1 -1
  19. package/build/esm/data/abilities.mjs +17 -19
  20. package/build/esm/data/abilities.mjs.map +1 -1
  21. package/build/esm/data/aliases.mjs +1 -1
  22. package/build/esm/data/conditions.mjs +1 -1
  23. package/build/esm/data/formats-data.mjs +1 -1
  24. package/build/esm/data/index.mjs +1 -1
  25. package/build/esm/data/items.mjs +1 -1
  26. package/build/esm/data/learnsets.mjs +1 -1
  27. package/build/esm/data/mods/gen1/conditions.mjs +1 -1
  28. package/build/esm/data/mods/gen1/formats-data.mjs +1 -1
  29. package/build/esm/data/mods/gen1/index.mjs +1 -1
  30. package/build/esm/data/mods/gen1/moves.mjs +1 -1
  31. package/build/esm/data/mods/gen1/pokedex.mjs +1 -1
  32. package/build/esm/data/mods/gen1/rulesets.mjs +1 -1
  33. package/build/esm/data/mods/gen1/scripts.mjs +1 -1
  34. package/build/esm/data/mods/gen1/typechart.mjs +1 -1
  35. package/build/esm/data/mods/gen2/conditions.mjs +1 -1
  36. package/build/esm/data/mods/gen2/formats-data.mjs +1 -1
  37. package/build/esm/data/mods/gen2/index.mjs +1 -1
  38. package/build/esm/data/mods/gen2/items.mjs +1 -1
  39. package/build/esm/data/mods/gen2/learnsets.mjs +1 -1
  40. package/build/esm/data/mods/gen2/moves.mjs +1 -1
  41. package/build/esm/data/mods/gen2/pokedex.mjs +1 -1
  42. package/build/esm/data/mods/gen2/rulesets.mjs +1 -1
  43. package/build/esm/data/mods/gen2/scripts.mjs +1 -1
  44. package/build/esm/data/mods/gen2/typechart.mjs +1 -1
  45. package/build/esm/data/mods/gen3/abilities.mjs +1 -1
  46. package/build/esm/data/mods/gen3/conditions.mjs +1 -1
  47. package/build/esm/data/mods/gen3/formats-data.mjs +1 -1
  48. package/build/esm/data/mods/gen3/index.mjs +1 -1
  49. package/build/esm/data/mods/gen3/items.mjs +1 -1
  50. package/build/esm/data/mods/gen3/moves.mjs +1 -1
  51. package/build/esm/data/mods/gen3/rulesets.mjs +1 -1
  52. package/build/esm/data/mods/gen3/scripts.mjs +1 -1
  53. package/build/esm/data/mods/gen4/abilities.mjs +1 -1
  54. package/build/esm/data/mods/gen4/conditions.mjs +1 -1
  55. package/build/esm/data/mods/gen4/formats-data.mjs +1 -1
  56. package/build/esm/data/mods/gen4/index.mjs +1 -1
  57. package/build/esm/data/mods/gen4/items.mjs +1 -1
  58. package/build/esm/data/mods/gen4/moves.mjs +1 -1
  59. package/build/esm/data/mods/gen4/pokedex.mjs +1 -1
  60. package/build/esm/data/mods/gen4/rulesets.mjs +1 -1
  61. package/build/esm/data/mods/gen4/scripts.mjs +1 -1
  62. package/build/esm/data/mods/gen5/abilities.mjs +1 -1
  63. package/build/esm/data/mods/gen5/conditions.mjs +1 -1
  64. package/build/esm/data/mods/gen5/formats-data.mjs +1 -1
  65. package/build/esm/data/mods/gen5/index.mjs +1 -1
  66. package/build/esm/data/mods/gen5/items.mjs +1 -1
  67. package/build/esm/data/mods/gen5/moves.mjs +1 -1
  68. package/build/esm/data/mods/gen5/pokedex.mjs +1 -1
  69. package/build/esm/data/mods/gen5/rulesets.mjs +1 -1
  70. package/build/esm/data/mods/gen5/scripts.mjs +1 -1
  71. package/build/esm/data/mods/gen5/typechart.mjs +1 -1
  72. package/build/esm/data/mods/gen6/abilities.mjs +1 -1
  73. package/build/esm/data/mods/gen6/conditions.mjs +1 -1
  74. package/build/esm/data/mods/gen6/formats-data.mjs +1 -1
  75. package/build/esm/data/mods/gen6/index.mjs +1 -1
  76. package/build/esm/data/mods/gen6/items.mjs +1 -1
  77. package/build/esm/data/mods/gen6/learnsets.mjs +1 -1
  78. package/build/esm/data/mods/gen6/moves.mjs +1 -1
  79. package/build/esm/data/mods/gen6/pokedex.mjs +1 -1
  80. package/build/esm/data/mods/gen6/scripts.mjs +1 -1
  81. package/build/esm/data/mods/gen6/typechart.mjs +1 -1
  82. package/build/esm/data/mods/gen7/abilities.mjs +1 -1
  83. package/build/esm/data/mods/gen7/formats-data.mjs +1 -1
  84. package/build/esm/data/mods/gen7/index.mjs +1 -1
  85. package/build/esm/data/mods/gen7/items.mjs +1 -1
  86. package/build/esm/data/mods/gen7/moves.mjs +1 -1
  87. package/build/esm/data/mods/gen7/pokedex.mjs +1 -1
  88. package/build/esm/data/mods/gen7/rulesets.mjs +1 -1
  89. package/build/esm/data/mods/gen7/scripts.mjs +1 -1
  90. package/build/esm/data/mods/gen8/abilities.mjs +1 -1
  91. package/build/esm/data/mods/gen8/formats-data.mjs +1 -1
  92. package/build/esm/data/mods/gen8/index.mjs +1 -1
  93. package/build/esm/data/mods/gen8/moves.mjs +1 -1
  94. package/build/esm/data/mods/gen8/pokedex.mjs +1 -1
  95. package/build/esm/data/mods/gen8/rulesets.mjs +1 -1
  96. package/build/esm/data/mods/gen8/scripts.mjs +1 -1
  97. package/build/esm/data/moves.mjs +3 -4
  98. package/build/esm/data/moves.mjs.map +1 -1
  99. package/build/esm/data/natures.mjs +1 -1
  100. package/build/esm/data/pokedex.mjs +4 -4
  101. package/build/esm/data/pokedex.mjs.map +1 -1
  102. package/build/esm/data/rulesets.mjs +13 -50
  103. package/build/esm/data/rulesets.mjs.map +1 -1
  104. package/build/esm/data/scripts.mjs +1 -1
  105. package/build/esm/data/tags.mjs +1 -1
  106. package/build/esm/data/text/abilities.mjs +6 -5
  107. package/build/esm/data/text/abilities.mjs.map +1 -1
  108. package/build/esm/data/text/default.mjs +1 -1
  109. package/build/esm/data/text/items.mjs +1 -1
  110. package/build/esm/data/text/moves.mjs +3 -2
  111. package/build/esm/data/text/moves.mjs.map +1 -1
  112. package/build/esm/data/typechart.mjs +1 -1
  113. package/build/esm/lib/index.mjs +1 -1
  114. package/build/esm/lib/streams.mjs +1 -1
  115. package/build/esm/lib/utils.mjs +1 -1
  116. package/build/esm/sim/battle-actions.mjs +1 -1
  117. package/build/esm/sim/battle-queue.mjs +1 -1
  118. package/build/esm/sim/battle-stream.mjs +1 -1
  119. package/build/esm/sim/battle.mjs +1 -1
  120. package/build/esm/sim/dex-abilities.mjs +1 -1
  121. package/build/esm/sim/dex-conditions.mjs +1 -1
  122. package/build/esm/sim/dex-data.mjs +1 -1
  123. package/build/esm/sim/dex-formats.mjs +1 -1
  124. package/build/esm/sim/dex-items.mjs +1 -1
  125. package/build/esm/sim/dex-moves.mjs +1 -1
  126. package/build/esm/sim/dex-species.mjs +1 -1
  127. package/build/esm/sim/dex.mjs +1 -1
  128. package/build/esm/sim/exported-global-types.mjs +1 -1
  129. package/build/esm/sim/field.mjs +1 -1
  130. package/build/esm/sim/global-types.mjs +1 -1
  131. package/build/esm/sim/index.mjs +1 -1
  132. package/build/esm/sim/pokemon.mjs +1 -1
  133. package/build/esm/sim/prng.mjs +1 -1
  134. package/build/esm/sim/side.mjs +1 -1
  135. package/build/esm/sim/state.mjs +1 -1
  136. package/build/esm/sim/team-validator.mjs +2 -2
  137. package/build/esm/sim/team-validator.mjs.map +1 -1
  138. package/build/esm/sim/teams.mjs +1 -1
  139. package/build/esm/sim/tools/exhaustive-runner.mjs +1 -1
  140. package/build/esm/sim/tools/index.mjs +1 -1
  141. package/build/esm/sim/tools/random-player-ai.mjs +1 -1
  142. package/build/esm/sim/tools/runner.mjs +1 -1
  143. package/build/types/sim/exported-global-types.d.ts +1 -0
  144. package/build/types/sim/global-types.d.ts +1 -0
  145. package/package.json +2 -2
@@ -66,8 +66,8 @@ exports.Formats = [
66
66
  ],
67
67
  mod: 'gen9',
68
68
  ruleset: [
69
- 'Picked Team Size = 1', 'Max Team Size = 3', 'Min Source Gen = 9',
70
- 'Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Evasion Items Clause', 'Accuracy Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause',
69
+ 'Picked Team Size = 1', 'Max Team Size = 3',
70
+ 'Standard', 'Terastal Clause', 'Accuracy Moves Clause', '!Sleep Clause Mod',
71
71
  ],
72
72
  banlist: ['Dragonite', 'Koraidon', 'Miraidon', 'Moody', 'Focus Band', 'Focus Sash', 'King\'s Rock', 'Quick Claw', 'Acupressure', 'Hypnosis', 'Perish Song', 'Sing'],
73
73
  },
@@ -201,7 +201,7 @@ exports.Formats = [
201
201
  `&bullet; <a href="https://www.smogon.com/forums/threads/3658587/">National Dex Balanced Hackmons</a>`,
202
202
  ],
203
203
  mod: 'gen8',
204
- ruleset: ['-Nonexistent', 'Standard NatDex', 'Forme Clause', 'Sleep Moves Clause', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'CFZ Clause', '!Obtainable'],
204
+ ruleset: ['-Nonexistent', 'Standard NatDex', 'Forme Clause', 'Sleep Moves Clause', 'Ability Clause = 2', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'CFZ Clause', '!Obtainable'],
205
205
  banlist: [
206
206
  // Pokemon
207
207
  'Eternatus-Eternamax', 'Groudon-Primal', 'Rayquaza-Mega', 'Shedinja', 'Cramorant-Gorging', 'Calyrex-Shadow', 'Darmanitan-Galar-Zen',
@@ -375,11 +375,11 @@ exports.Formats = [
375
375
  `&bullet; <a href="https://www.smogon.com/forums/threads/3710568/">Almost Any Ability</a>`,
376
376
  ],
377
377
  mod: 'gen9',
378
- ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'],
378
+ ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'Sleep Moves Clause', 'Min Source Gen = 9'],
379
379
  banlist: [
380
- 'Koraidon', 'Miraidon', 'Slaking', 'Arena Trap', 'Comatose', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion',
381
- 'Imposter', 'Innards Out', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag',
382
- 'Simple', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
380
+ 'Annihilape', 'Koraidon', 'Miraidon', 'Slaking', 'Arena Trap', 'Comatose', 'Contrary', 'Gorilla Tactics', 'Huge Power',
381
+ 'Illusion', 'Imposter', 'Innards Out', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Pure Power',
382
+ 'Shadow Tag', 'Simple', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
383
383
  ],
384
384
  },
385
385
  {
@@ -405,7 +405,10 @@ exports.Formats = [
405
405
  ],
406
406
  mod: 'gen9',
407
407
  ruleset: ['-Nonexistent', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', 'Endless Battle Clause'],
408
- banlist: ['Arena Trap', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard', 'Comatose + Sleep Talk'],
408
+ banlist: [
409
+ 'Arena Trap', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Neutralizing Gas', 'Parental Bond', 'Pure Power',
410
+ 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard', 'Comatose + Sleep Talk', 'Shell Smash', 'Rage Fist',
411
+ ],
409
412
  },
410
413
  {
411
414
  name: "[Gen 9] Mix and Mega",
@@ -534,7 +537,7 @@ exports.Formats = [
534
537
  ],
535
538
  mod: 'gen8',
536
539
  searchShow: false,
537
- ruleset: ['Standard OMs', '2 Ability Clause', 'Sleep Clause Mod'],
540
+ ruleset: ['Standard OMs', 'Ability Clause = 2', 'Sleep Clause Mod'],
538
541
  banlist: ['Corsola-Galar', 'Sneasel', 'Type: Null', 'Arena Trap', 'Ice Scales', 'Moody', 'King\'s Rock', 'Baton Pass'],
539
542
  restricted: ['Chansey', 'Lunala', 'Shedinja', 'Solgaleo', 'Gorilla Tactics', 'Huge Power', 'Pure Power', 'Shadow Tag'],
540
543
  onValidateTeam(team) {
@@ -684,7 +687,7 @@ exports.Formats = [
684
687
  ],
685
688
  mod: 'gen8',
686
689
  searchShow: false,
687
- ruleset: ['Standard OMs', '2 Ability Clause', 'Sleep Moves Clause'],
690
+ ruleset: ['Standard OMs', 'Ability Clause = 2', 'Sleep Moves Clause'],
688
691
  banlist: [
689
692
  'Blacephalon', 'Blaziken', 'Butterfree', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chansey', 'Combusken', 'Cresselia', 'Darmanitan-Galar', 'Dialga',
690
693
  'Dracovish', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia',
@@ -781,7 +784,7 @@ exports.Formats = [
781
784
  return null;
782
785
  },
783
786
  onValidateTeam(team, f, teamHas) {
784
- if (this.ruleTable.has('2abilityclause')) {
787
+ if (this.ruleTable.has('abilityclause')) {
785
788
  const abilityTable = new Map();
786
789
  const base = {
787
790
  airlock: 'cloudnine',
@@ -801,16 +804,17 @@ exports.Formats = [
801
804
  teravolt: 'moldbreaker',
802
805
  turboblaze: 'moldbreaker',
803
806
  };
807
+ const num = parseInt(this.ruleTable.valueRules.get('abilityclause'));
804
808
  for (const set of team) {
805
809
  let ability = this.toID(set.ability.split('0')[0]);
806
810
  if (!ability)
807
811
  continue;
808
812
  if (ability in base)
809
813
  ability = base[ability];
810
- if ((abilityTable.get(ability) || 0) >= 2) {
814
+ if ((abilityTable.get(ability) || 0) >= num) {
811
815
  return [
812
- `You are limited to two of each ability by 2 Ability Clause.`,
813
- `(You have more than two ${this.dex.abilities.get(ability).name} variants)`,
816
+ `You are limited to ${num} of each ability by ${num} Ability Clause.`,
817
+ `(You have more than ${num} ${this.dex.abilities.get(ability).name} variants)`,
814
818
  ];
815
819
  }
816
820
  abilityTable.set(ability, (abilityTable.get(ability) || 0) + 1);
@@ -905,7 +909,7 @@ exports.Formats = [
905
909
  ],
906
910
  mod: 'gen8',
907
911
  searchShow: false,
908
- ruleset: ['Standard OMs', '2 Ability Clause', 'Sleep Moves Clause'],
912
+ ruleset: ['Standard OMs', 'Ability Clause = 2', 'Sleep Moves Clause'],
909
913
  banlist: [
910
914
  'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus',
911
915
  'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White',
@@ -949,7 +953,7 @@ exports.Formats = [
949
953
  return problems;
950
954
  },
951
955
  onValidateTeam(team) {
952
- if (!this.ruleTable.has('2abilityclause'))
956
+ if (!this.ruleTable.has('abilityclause'))
953
957
  return;
954
958
  const abilityTable = new Map();
955
959
  const base = {
@@ -970,6 +974,7 @@ exports.Formats = [
970
974
  teravolt: 'moldbreaker',
971
975
  turboblaze: 'moldbreaker',
972
976
  };
977
+ const num = parseInt(this.ruleTable.valueRules.get('abilityclause'));
973
978
  const abilities = [];
974
979
  for (const set of team) {
975
980
  abilities.push([set.ability, set.item].map((abil) => {
@@ -986,10 +991,10 @@ exports.Formats = [
986
991
  abilityTable.set(item.id, (abilityTable.get(item.id) || 0) + 1);
987
992
  }
988
993
  for (const [abilityid, size] of abilityTable) {
989
- if (size > 2) {
994
+ if (size > num) {
990
995
  return [
991
- `You are limited to two of each ability by 2 Ability Clause.`,
992
- `(You have more than two ${this.dex.abilities.get(abilityid).name} variants)`,
996
+ `You are limited to ${num} of each ability by ${num} Ability Clause.`,
997
+ `(You have more than ${num} ${this.dex.abilities.get(abilityid).name} variants)`,
993
998
  ];
994
999
  }
995
1000
  }
@@ -1695,7 +1700,7 @@ exports.Formats = [
1695
1700
  ],
1696
1701
  mod: 'gen8',
1697
1702
  searchShow: false,
1698
- ruleset: ['Standard OMs', '!Obtainable Abilities', '2 Ability Clause', 'Sleep Moves Clause'],
1703
+ ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 2', 'Sleep Moves Clause'],
1699
1704
  banlist: [
1700
1705
  'Archeops', 'Blacephalon', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Genesect',
1701
1706
  'Gengar', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia',
@@ -1859,7 +1864,7 @@ exports.Formats = [
1859
1864
  `&bullet; <a href="https://www.smogon.com/forums/posts/8407209/">USM Balanced Hackmons</a>`,
1860
1865
  ],
1861
1866
  mod: 'gen7',
1862
- ruleset: ['-Nonexistent', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Forme Clause', 'CFZ Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Endless Battle Clause'],
1867
+ ruleset: ['-Nonexistent', 'Ability Clause = 2', 'OHKO Clause', 'Evasion Moves Clause', 'Forme Clause', 'CFZ Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Endless Battle Clause'],
1863
1868
  banlist: [
1864
1869
  'Groudon-Primal', 'Rayquaza-Mega', 'Gengarite', 'Comatose + Sleep Talk', 'Chatter',
1865
1870
  'Arena Trap', 'Contrary', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Moody', 'Parental Bond', 'Protean', 'Psychic Surge', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard',
@@ -1954,7 +1959,7 @@ exports.Formats = [
1954
1959
  ],
1955
1960
  mod: 'gen6',
1956
1961
  searchShow: false,
1957
- ruleset: ['[Gen 6] OU', '2 Ability Clause', 'AAA Restricted Abilities', '!Obtainable Abilities'],
1962
+ ruleset: ['[Gen 6] OU', 'Ability Clause = 2', 'AAA Restricted Abilities', '!Obtainable Abilities'],
1958
1963
  banlist: ['Archeops', 'Bisharp', 'Chatot', 'Dragonite', 'Keldeo', 'Kyurem-Black', 'Mamoswine', 'Regigigas', 'Shedinja', 'Slaking', 'Smeargle', 'Snorlax', 'Suicune', 'Terrakion', 'Weavile', 'Dynamic Punch', 'Zap Cannon'],
1959
1964
  unbanlist: ['Aegislash', 'Blaziken', 'Deoxys-Defense', 'Deoxys-Speed', 'Genesect', 'Greninja', 'Landorus'],
1960
1965
  restricted: ['Arena Trap', 'Contrary', 'Fur Coat', 'Huge Power', 'Illusion', 'Imposter', 'Parental Bond', 'Protean', 'Pure Power', 'Simple', 'Speed Boost', 'Wonder Guard'],