@pkmn/sim 0.5.8 → 0.5.11

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 (50) hide show
  1. package/build/config/formats.js +390 -238
  2. package/build/config/formats.js.map +1 -1
  3. package/build/data/aliases.js +1 -2
  4. package/build/data/aliases.js.map +1 -1
  5. package/build/data/formats-data.js +3 -3
  6. package/build/data/formats-data.js.map +1 -1
  7. package/build/data/learnsets.js +5 -6
  8. package/build/data/learnsets.js.map +1 -1
  9. package/build/data/mods/gen3/formats-data.js +1 -1
  10. package/build/data/mods/gen3/formats-data.js.map +1 -1
  11. package/build/data/mods/gen7/formats-data.js +1 -1
  12. package/build/data/mods/gen7/formats-data.js.map +1 -1
  13. package/build/data/mods/gen7/pokedex.js +1 -0
  14. package/build/data/mods/gen7/pokedex.js.map +1 -1
  15. package/build/data/pokedex.js +2 -2
  16. package/build/data/rulesets.js +0 -139
  17. package/build/data/rulesets.js.map +1 -1
  18. package/build/data/tags.js +4 -4
  19. package/build/data/tags.js.map +1 -1
  20. package/build/lib/index.js +5 -1
  21. package/build/lib/index.js.map +1 -1
  22. package/build/lib/streams.js +5 -1
  23. package/build/lib/streams.js.map +1 -1
  24. package/build/sim/battle-actions.js +0 -6
  25. package/build/sim/battle-actions.js.map +1 -1
  26. package/build/sim/battle-queue.js +1 -3
  27. package/build/sim/battle-queue.js.map +1 -1
  28. package/build/sim/dex.js +5 -1
  29. package/build/sim/dex.js.map +1 -1
  30. package/build/sim/index.js +5 -1
  31. package/build/sim/index.js.map +1 -1
  32. package/build/sim/teams.js +5 -1
  33. package/build/sim/teams.js.map +1 -1
  34. package/build/sim/tools/index.js +5 -1
  35. package/build/sim/tools/index.js.map +1 -1
  36. package/build/sim/tools/runner.js +5 -1
  37. package/build/sim/tools/runner.js.map +1 -1
  38. package/config/formats.ts +376 -237
  39. package/data/aliases.ts +1 -2
  40. package/data/formats-data.ts +3 -3
  41. package/data/learnsets.ts +5 -6
  42. package/data/mods/gen3/formats-data.ts +1 -1
  43. package/data/mods/gen7/formats-data.ts +1 -1
  44. package/data/mods/gen7/pokedex.ts +1 -0
  45. package/data/pokedex.ts +2 -2
  46. package/data/rulesets.ts +0 -125
  47. package/data/tags.ts +4 -4
  48. package/package.json +2 -2
  49. package/sim/battle-actions.ts +0 -7
  50. package/sim/battle-queue.ts +1 -3
@@ -161,6 +161,7 @@ exports.Pokedex = {
161
161
  },
162
162
  pyroak: {
163
163
  inherit: true,
164
+ baseStats: { hp: 120, atk: 70, def: 105, spa: 95, spd: 90, spe: 60 },
164
165
  abilities: { 0: "Rock Head", 1: "Battle Armor", H: "White Smoke" },
165
166
  },
166
167
  voodoom: {
@@ -1 +1 @@
1
- {"version":3,"file":"pokedex.js","sourceRoot":"","sources":["../../../../data/mods/gen7/pokedex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pokedex.js","sourceRoot":"","sources":["../../../../data/mods/gen7/pokedex.ts"],"names":[],"mappings":"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"}
@@ -16532,7 +16532,7 @@ exports.Pokedex = {
16532
16532
  num: -6,
16533
16533
  name: "Pyroak",
16534
16534
  types: ["Fire", "Grass"],
16535
- baseStats: { hp: 120, atk: 70, def: 105, spa: 95, spd: 90, spe: 60 },
16535
+ baseStats: { hp: 120, atk: 70, def: 105, spa: 75, spd: 90, spe: 60 },
16536
16536
  abilities: { 0: "Rock Head", 1: "Battle Armor", H: "Contrary" },
16537
16537
  heightm: 2.1,
16538
16538
  weightkg: 168,
@@ -17405,7 +17405,7 @@ exports.Pokedex = {
17405
17405
  forme: "Epilogue",
17406
17406
  types: ["Poison", "Flying"],
17407
17407
  gender: "N",
17408
- baseStats: { hp: 85, atk: 110, def: 85, spa: 55, spd: 85, spe: 120 },
17408
+ baseStats: { hp: 85, atk: 102, def: 85, spa: 63, spd: 85, spe: 120 },
17409
17409
  abilities: { 0: "Tinted Lens" },
17410
17410
  heightm: 0.8,
17411
17411
  weightkg: 12.4,
@@ -1754,145 +1754,6 @@ exports.Rulesets = {
1754
1754
  return pokemon;
1755
1755
  },
1756
1756
  },
1757
- crossevolutionmod: {
1758
- effectType: "Rule",
1759
- name: "Cross Evolution Mod",
1760
- desc: "Give a Pokémon a Pokémon name of the next evolution stage as a nickname to inherit stat changes, typing, abilities, and up to 2 moves from the next stage Pokémon.",
1761
- ruleset: ['Overflow Stat Mod'],
1762
- onValidateTeam(team) {
1763
- const names = new Set();
1764
- for (const set of team) {
1765
- const name = set.name;
1766
- if (names.has(this.dex.toID(name))) {
1767
- return [
1768
- `Your Pok\u00e9mon must have different nicknames.`,
1769
- `(You have more than one Pok\u00e9mon named '${name}')`,
1770
- ];
1771
- }
1772
- names.add(this.dex.toID(name));
1773
- }
1774
- if (!names.size) {
1775
- return [
1776
- `${this.format.name} works using nicknames; your team has 0 nicknamed Pok\u00e9mon.`,
1777
- `(If this was intentional, add a nickname to one Pok\u00e9mon that isn't the name of a Pok\u00e9mon species.)`,
1778
- ];
1779
- }
1780
- },
1781
- checkCanLearn(move, species, lsetData, set) {
1782
- // @ts-ignore
1783
- if (!set.sp?.exists || !set.crossSpecies?.exists) {
1784
- return this.checkCanLearn(move, species, lsetData, set);
1785
- }
1786
- // @ts-ignore
1787
- const problem = this.checkCanLearn(move, set.sp);
1788
- if (!problem)
1789
- return null;
1790
- // @ts-ignore
1791
- if (!set.crossMovesLeft)
1792
- return problem;
1793
- // @ts-ignore
1794
- if (this.checkCanLearn(move, set.crossSpecies))
1795
- return problem;
1796
- // @ts-ignore
1797
- set.crossMovesLeft--;
1798
- return null;
1799
- },
1800
- validateSet(set, teamHas) {
1801
- const crossSpecies = this.dex.species.get(set.name);
1802
- const onChangeSet = this.dex.formats.get('Pokemon').onChangeSet;
1803
- let problems = onChangeSet?.call(this, set, this.format) || null;
1804
- if (Array.isArray(problems) && problems.length)
1805
- return problems;
1806
- const crossNonstandard = !this.ruleTable.has('standardnatdex') && crossSpecies.isNonstandard === 'Past';
1807
- const crossIsCap = !this.ruleTable.has('+pokemontag:cap') && crossSpecies.isNonstandard === 'CAP';
1808
- if (!crossSpecies.exists || crossNonstandard || crossIsCap)
1809
- return this.validateSet(set, teamHas);
1810
- const species = this.dex.species.get(set.species);
1811
- const check = this.checkSpecies(set, species, species, {});
1812
- if (check)
1813
- return [check];
1814
- const nonstandard = !this.ruleTable.has('standardnatdex') && species.isNonstandard === 'Past';
1815
- const isCap = !this.ruleTable.has('+pokemontag:cap') && species.isNonstandard === 'CAP';
1816
- if (!species.exists || nonstandard || isCap || species === crossSpecies)
1817
- return this.validateSet(set, teamHas);
1818
- if (!species.nfe)
1819
- return [`${species.name} cannot cross evolve because it doesn't evolve.`];
1820
- const crossIsUnreleased = (crossSpecies.tier === "Unreleased" && crossSpecies.isNonstandard === "Unobtainable");
1821
- if (crossSpecies.battleOnly || crossIsUnreleased || !crossSpecies.prevo) {
1822
- return [`${species.name} cannot cross evolve into ${crossSpecies.name} because it isn't an evolution.`];
1823
- }
1824
- if (this.ruleTable.isRestrictedSpecies(crossSpecies)) {
1825
- return [`${species.name} cannot cross evolve into ${crossSpecies.name} because it is banned.`];
1826
- }
1827
- const crossPrevoSpecies = this.dex.species.get(crossSpecies.prevo);
1828
- if (!crossPrevoSpecies.prevo !== !species.prevo) {
1829
- return [
1830
- `${species.name} cannot cross evolve into ${crossSpecies.name} because they are not consecutive evolution stages.`,
1831
- ];
1832
- }
1833
- const ability = this.dex.abilities.get(set.ability);
1834
- if (!this.ruleTable.isRestricted(`ability:${ability.id}`) || Object.values(species.abilities).includes(ability.name)) {
1835
- set.species = crossSpecies.name;
1836
- }
1837
- // @ts-ignore
1838
- set.sp = species;
1839
- // @ts-ignore
1840
- set.crossSpecies = crossSpecies;
1841
- // @ts-ignore
1842
- set.crossMovesLeft = 2;
1843
- problems = this.validateSet(set, teamHas);
1844
- set.name = crossSpecies.name;
1845
- set.species = species.name;
1846
- return problems;
1847
- },
1848
- onModifySpecies(species, target, source, effect) {
1849
- if (!target)
1850
- return; // chat
1851
- if (effect && ['imposter', 'transform'].includes(effect.id))
1852
- return;
1853
- if (target.set.name === target.set.species)
1854
- return;
1855
- const crossSpecies = this.dex.species.get(target.set.name);
1856
- if (!crossSpecies.exists)
1857
- return;
1858
- if (species.battleOnly || !species.nfe)
1859
- return;
1860
- const crossIsUnreleased = (crossSpecies.tier === "Unreleased" && crossSpecies.isNonstandard === "Unobtainable");
1861
- if (crossSpecies.battleOnly || crossIsUnreleased || !crossSpecies.prevo)
1862
- return;
1863
- const crossPrevoSpecies = this.dex.species.get(crossSpecies.prevo);
1864
- if (!crossPrevoSpecies.prevo !== !species.prevo)
1865
- return;
1866
- const mixedSpecies = this.dex.deepClone(species);
1867
- mixedSpecies.baseSpecies = mixedSpecies.name = `${species.name}-${crossSpecies.name}`;
1868
- mixedSpecies.weightkg =
1869
- Math.max(0.1, +(species.weightkg + crossSpecies.weightkg - crossPrevoSpecies.weightkg)).toFixed(1);
1870
- mixedSpecies.nfe = false;
1871
- mixedSpecies.evos = [];
1872
- mixedSpecies.eggGroups = crossSpecies.eggGroups;
1873
- mixedSpecies.abilities = crossSpecies.abilities;
1874
- mixedSpecies.bst = 0;
1875
- let i;
1876
- for (i in species.baseStats) {
1877
- const statChange = crossSpecies.baseStats[i] - crossPrevoSpecies.baseStats[i];
1878
- mixedSpecies.baseStats[i] = this.clampIntRange(species.baseStats[i] + statChange, 1, 255);
1879
- mixedSpecies.bst += mixedSpecies.baseStats[i];
1880
- }
1881
- if (crossSpecies.types[0] !== crossPrevoSpecies.types[0])
1882
- mixedSpecies.types[0] = crossSpecies.types[0];
1883
- if (crossSpecies.types[1] !== crossPrevoSpecies.types[1]) {
1884
- mixedSpecies.types[1] = crossSpecies.types[1] || crossSpecies.types[0];
1885
- }
1886
- if (mixedSpecies.types[0] === mixedSpecies.types[1])
1887
- mixedSpecies.types = [mixedSpecies.types[0]];
1888
- return mixedSpecies;
1889
- },
1890
- onBegin() {
1891
- for (const pokemon of this.getAllPokemon()) {
1892
- pokemon.baseSpecies = pokemon.species;
1893
- }
1894
- },
1895
- },
1896
1757
  revelationmonsmod: {
1897
1758
  effectType: "Rule",
1898
1759
  name: "Revelationmons Mod",