@pkmn/sim 0.7.2 → 0.7.3

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/cjs/config/formats.js +4 -3
  2. package/build/cjs/config/formats.js.map +1 -1
  3. package/build/cjs/data/formats-data.js +26 -14
  4. package/build/cjs/data/formats-data.js.map +1 -1
  5. package/build/cjs/data/mods/gen1/moves.js +9 -1
  6. package/build/cjs/data/mods/gen1/moves.js.map +1 -1
  7. package/build/cjs/data/mods/gen1/scripts.js +15 -1
  8. package/build/cjs/data/mods/gen1/scripts.js.map +1 -1
  9. package/build/cjs/data/mods/gen8/formats-data.js +17 -1
  10. package/build/cjs/data/mods/gen8/formats-data.js.map +1 -1
  11. package/build/cjs/data/mods/gen8/pokedex.js +1 -1
  12. package/build/cjs/data/mods/gen8/pokedex.js.map +1 -1
  13. package/build/cjs/data/moves.js +30 -20
  14. package/build/cjs/data/moves.js.map +1 -1
  15. package/build/cjs/data/pokedex.js +3 -3
  16. package/build/cjs/data/pokedex.js.map +1 -1
  17. package/build/cjs/data/text/moves.js +8 -3
  18. package/build/cjs/data/text/moves.js.map +1 -1
  19. package/build/cjs/sim/battle-actions.js +11 -10
  20. package/build/cjs/sim/battle-actions.js.map +1 -1
  21. package/build/cjs/sim/dex-moves.js +2 -1
  22. package/build/cjs/sim/dex-moves.js.map +1 -1
  23. package/build/cjs/sim/pokemon.js +20 -4
  24. package/build/cjs/sim/pokemon.js.map +1 -1
  25. package/build/esm/config/formats.mjs +4 -3
  26. package/build/esm/config/formats.mjs.map +1 -1
  27. package/build/esm/data/formats-data.mjs +26 -14
  28. package/build/esm/data/formats-data.mjs.map +1 -1
  29. package/build/esm/data/mods/gen1/moves.mjs +9 -1
  30. package/build/esm/data/mods/gen1/moves.mjs.map +1 -1
  31. package/build/esm/data/mods/gen1/scripts.mjs +15 -1
  32. package/build/esm/data/mods/gen1/scripts.mjs.map +1 -1
  33. package/build/esm/data/mods/gen8/formats-data.mjs +17 -1
  34. package/build/esm/data/mods/gen8/formats-data.mjs.map +1 -1
  35. package/build/esm/data/mods/gen8/pokedex.mjs +1 -1
  36. package/build/esm/data/mods/gen8/pokedex.mjs.map +1 -1
  37. package/build/esm/data/moves.mjs +30 -20
  38. package/build/esm/data/moves.mjs.map +1 -1
  39. package/build/esm/data/pokedex.mjs +3 -3
  40. package/build/esm/data/pokedex.mjs.map +1 -1
  41. package/build/esm/data/text/moves.mjs +8 -3
  42. package/build/esm/data/text/moves.mjs.map +1 -1
  43. package/build/esm/sim/battle-actions.mjs +11 -10
  44. package/build/esm/sim/battle-actions.mjs.map +1 -1
  45. package/build/esm/sim/dex-moves.mjs +2 -1
  46. package/build/esm/sim/dex-moves.mjs.map +1 -1
  47. package/build/esm/sim/pokemon.mjs +20 -4
  48. package/build/esm/sim/pokemon.mjs.map +1 -1
  49. package/build/types/sim/pokemon.d.ts +1 -3
  50. package/package.json +1 -1
@@ -58,7 +58,7 @@ exports.Pokedex = {
58
58
  },
59
59
  decidueyehisui: {
60
60
  inherit: true,
61
- abilities: { 0: "Overgrow", H: "Scrappy" },
61
+ abilities: { 0: "Overgrow", H: "Long Reach" },
62
62
  },
63
63
  zacian: {
64
64
  inherit: true,
@@ -1 +1 @@
1
- {"version":3,"file":"pokedex.js","sourceRoot":"","sources":["../../../../../data/mods/gen8/pokedex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pokedex.js","sourceRoot":"","sources":["../../../../../data/mods/gen8/pokedex.ts"],"names":[],"mappings":"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"}
@@ -2375,11 +2375,10 @@ exports.Moves = {
2375
2375
  pp: 10,
2376
2376
  priority: 0,
2377
2377
  flags: {},
2378
- onTry(source) {
2379
- return !!this.canSwitch(source.side);
2380
- },
2381
- selfSwitch: true,
2378
+ // TODO show prepare message before the "POKEMON used MOVE!" message
2379
+ // This happens even before sleep shows its "POKEMON is fast asleep." message
2382
2380
  weather: 'snow',
2381
+ selfSwitch: true,
2383
2382
  secondary: null,
2384
2383
  target: "all",
2385
2384
  type: "Ice",
@@ -11194,6 +11193,9 @@ exports.Moves = {
11194
11193
  pp: 5,
11195
11194
  priority: 0,
11196
11195
  flags: { protect: 1, mirror: 1 },
11196
+ onHit() {
11197
+ this.add('-fieldactivate', 'move: Make It Rain');
11198
+ },
11197
11199
  self: {
11198
11200
  boosts: {
11199
11201
  spa: -1,
@@ -15289,6 +15291,9 @@ exports.Moves = {
15289
15291
  onHit(target, source) {
15290
15292
  if (source.species && (source.species.num === 493 || source.species.num === 773))
15291
15293
  return false;
15294
+ if (source.terastallized)
15295
+ return false;
15296
+ const oldApparentType = source.apparentType;
15292
15297
  let newBaseTypes = target.getTypes(true).filter(type => type !== '???');
15293
15298
  if (!newBaseTypes.length) {
15294
15299
  if (target.addedType) {
@@ -15302,6 +15307,8 @@ exports.Moves = {
15302
15307
  source.setType(newBaseTypes);
15303
15308
  source.addedType = target.addedType;
15304
15309
  source.knownType = target.isAlly(source) && target.knownType;
15310
+ if (!source.knownType)
15311
+ source.apparentType = oldApparentType;
15305
15312
  },
15306
15313
  secondary: null,
15307
15314
  target: "normal",
@@ -16079,11 +16086,10 @@ exports.Moves = {
16079
16086
  condition: {
16080
16087
  onStart(pokemon, source) {
16081
16088
  this.add('-start', pokemon, 'move: Salt Cure', '[of] ' + source);
16082
- this.effectState.boundDivisor = pokemon.hasType(['Water', 'Steel']) ? 4 : 8;
16083
16089
  },
16084
16090
  onResidualOrder: 13,
16085
16091
  onResidual(pokemon) {
16086
- this.damage(pokemon.baseMaxhp / this.effectState.boundDivisor);
16092
+ this.damage(pokemon.baseMaxhp / (pokemon.hasType(['Water', 'Steel']) ? 4 : 8));
16087
16093
  },
16088
16094
  onEnd(pokemon) {
16089
16095
  this.add('-end', pokemon, 'move: Salt Cure');
@@ -16645,14 +16651,18 @@ exports.Moves = {
16645
16651
  priority: 0,
16646
16652
  flags: {},
16647
16653
  volatileStatus: 'substitute',
16648
- onTryHit(target) {
16649
- if (target.volatiles['substitute'] || !this.canSwitch(target.side)) {
16650
- this.add('-fail', target, 'move: Shed Tail');
16651
- return null;
16654
+ onTryHit(source) {
16655
+ if (!this.canSwitch(source.side)) {
16656
+ this.add('-fail', source);
16657
+ return this.NOT_FAIL;
16652
16658
  }
16653
- if (target.hp <= target.maxhp / 2 || target.maxhp === 1) { // Shedinja clause
16654
- this.add('-fail', target, 'move: Shed Tail', '[weak]');
16655
- return null;
16659
+ if (source.volatiles['substitute']) {
16660
+ this.add('-fail', source, 'move: Shed Tail');
16661
+ return this.NOT_FAIL;
16662
+ }
16663
+ if (source.hp <= source.maxhp / 2 || source.maxhp === 1) { // Shedinja clause
16664
+ this.add('-fail', source, 'move: Shed Tail', '[weak]');
16665
+ return this.NOT_FAIL;
16656
16666
  }
16657
16667
  },
16658
16668
  onHit(target) {
@@ -18917,14 +18927,14 @@ exports.Moves = {
18917
18927
  priority: 0,
18918
18928
  flags: { snatch: 1, nonsky: 1 },
18919
18929
  volatileStatus: 'substitute',
18920
- onTryHit(target) {
18921
- if (target.volatiles['substitute']) {
18922
- this.add('-fail', target, 'move: Substitute');
18923
- return null;
18930
+ onTryHit(source) {
18931
+ if (source.volatiles['substitute']) {
18932
+ this.add('-fail', source, 'move: Substitute');
18933
+ return this.NOT_FAIL;
18924
18934
  }
18925
- if (target.hp <= target.maxhp / 4 || target.maxhp === 1) { // Shedinja clause
18926
- this.add('-fail', target, 'move: Substitute', '[weak]');
18927
- return null;
18935
+ if (source.hp <= source.maxhp / 4 || source.maxhp === 1) { // Shedinja clause
18936
+ this.add('-fail', source, 'move: Substitute', '[weak]');
18937
+ return this.NOT_FAIL;
18928
18938
  }
18929
18939
  },
18930
18940
  onHit(target) {