@pkmn/sim 0.9.32 → 0.9.34

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 (105) hide show
  1. package/build/cjs/config/formats.js +156 -124
  2. package/build/cjs/config/formats.js.map +1 -1
  3. package/build/cjs/data/abilities.js +22 -11
  4. package/build/cjs/data/abilities.js.map +1 -1
  5. package/build/cjs/data/aliases.js +2 -2
  6. package/build/cjs/data/aliases.js.map +1 -1
  7. package/build/cjs/data/formats-data.js +68 -68
  8. package/build/cjs/data/formats-data.js.map +1 -1
  9. package/build/cjs/data/items.js +1 -1
  10. package/build/cjs/data/items.js.map +1 -1
  11. package/build/cjs/data/learnsets.js +124 -68
  12. package/build/cjs/data/learnsets.js.map +1 -1
  13. package/build/cjs/data/legality.js +32 -3
  14. package/build/cjs/data/legality.js.map +1 -1
  15. package/build/cjs/data/mods/gen1/conditions.js +2 -1
  16. package/build/cjs/data/mods/gen1/conditions.js.map +1 -1
  17. package/build/cjs/data/mods/gen1/formats-data.js +3 -3
  18. package/build/cjs/data/mods/gen1/formats-data.js.map +1 -1
  19. package/build/cjs/data/mods/gen2/conditions.js +1 -1
  20. package/build/cjs/data/mods/gen2/conditions.js.map +1 -1
  21. package/build/cjs/data/mods/gen2/scripts.js +6 -8
  22. package/build/cjs/data/mods/gen2/scripts.js.map +1 -1
  23. package/build/cjs/data/mods/gen3/rulesets.js +1 -1
  24. package/build/cjs/data/mods/gen3/rulesets.js.map +1 -1
  25. package/build/cjs/data/mods/gen5/conditions.js +1 -0
  26. package/build/cjs/data/mods/gen5/conditions.js.map +1 -1
  27. package/build/cjs/data/mods/gen7/moves.js +1 -3
  28. package/build/cjs/data/mods/gen7/moves.js.map +1 -1
  29. package/build/cjs/data/mods/gen8/abilities.js +0 -7
  30. package/build/cjs/data/mods/gen8/abilities.js.map +1 -1
  31. package/build/cjs/data/moves.js +15 -12
  32. package/build/cjs/data/moves.js.map +1 -1
  33. package/build/cjs/data/text/abilities.js +16 -0
  34. package/build/cjs/data/text/abilities.js.map +1 -1
  35. package/build/cjs/data/text/items.js +1 -0
  36. package/build/cjs/data/text/items.js.map +1 -1
  37. package/build/cjs/data/text/moves.js +29 -11
  38. package/build/cjs/data/text/moves.js.map +1 -1
  39. package/build/cjs/sim/battle-actions.js +1 -0
  40. package/build/cjs/sim/battle-actions.js.map +1 -1
  41. package/build/cjs/sim/battle.js +5 -0
  42. package/build/cjs/sim/battle.js.map +1 -1
  43. package/build/cjs/sim/dex-moves.d.ts +1 -5
  44. package/build/cjs/sim/dex-moves.js.map +1 -1
  45. package/build/cjs/sim/exported-global-types.d.ts +0 -1
  46. package/build/cjs/sim/global-types.d.ts +0 -1
  47. package/build/cjs/sim/side.js +5 -1
  48. package/build/cjs/sim/side.js.map +1 -1
  49. package/build/cjs/sim/state.js +2 -2
  50. package/build/cjs/sim/team-validator.d.ts +1 -1
  51. package/build/cjs/sim/team-validator.js +3 -3
  52. package/build/cjs/sim/team-validator.js.map +1 -1
  53. package/build/esm/config/formats.mjs +156 -124
  54. package/build/esm/config/formats.mjs.map +1 -1
  55. package/build/esm/data/abilities.mjs +22 -11
  56. package/build/esm/data/abilities.mjs.map +1 -1
  57. package/build/esm/data/aliases.mjs +2 -2
  58. package/build/esm/data/aliases.mjs.map +1 -1
  59. package/build/esm/data/formats-data.mjs +68 -68
  60. package/build/esm/data/formats-data.mjs.map +1 -1
  61. package/build/esm/data/items.mjs +1 -1
  62. package/build/esm/data/items.mjs.map +1 -1
  63. package/build/esm/data/learnsets.mjs +124 -68
  64. package/build/esm/data/learnsets.mjs.map +1 -1
  65. package/build/esm/data/legality.mjs +32 -3
  66. package/build/esm/data/legality.mjs.map +1 -1
  67. package/build/esm/data/mods/gen1/conditions.mjs +2 -1
  68. package/build/esm/data/mods/gen1/conditions.mjs.map +1 -1
  69. package/build/esm/data/mods/gen1/formats-data.mjs +3 -3
  70. package/build/esm/data/mods/gen1/formats-data.mjs.map +1 -1
  71. package/build/esm/data/mods/gen2/conditions.mjs +1 -1
  72. package/build/esm/data/mods/gen2/conditions.mjs.map +1 -1
  73. package/build/esm/data/mods/gen2/scripts.mjs +6 -8
  74. package/build/esm/data/mods/gen2/scripts.mjs.map +1 -1
  75. package/build/esm/data/mods/gen3/rulesets.mjs +1 -1
  76. package/build/esm/data/mods/gen3/rulesets.mjs.map +1 -1
  77. package/build/esm/data/mods/gen5/conditions.mjs +1 -0
  78. package/build/esm/data/mods/gen5/conditions.mjs.map +1 -1
  79. package/build/esm/data/mods/gen7/moves.mjs +1 -3
  80. package/build/esm/data/mods/gen7/moves.mjs.map +1 -1
  81. package/build/esm/data/mods/gen8/abilities.mjs +0 -7
  82. package/build/esm/data/mods/gen8/abilities.mjs.map +1 -1
  83. package/build/esm/data/moves.mjs +15 -12
  84. package/build/esm/data/moves.mjs.map +1 -1
  85. package/build/esm/data/text/abilities.mjs +16 -0
  86. package/build/esm/data/text/abilities.mjs.map +1 -1
  87. package/build/esm/data/text/items.mjs +1 -0
  88. package/build/esm/data/text/items.mjs.map +1 -1
  89. package/build/esm/data/text/moves.mjs +29 -11
  90. package/build/esm/data/text/moves.mjs.map +1 -1
  91. package/build/esm/sim/battle-actions.mjs +1 -0
  92. package/build/esm/sim/battle-actions.mjs.map +1 -1
  93. package/build/esm/sim/battle.mjs +5 -0
  94. package/build/esm/sim/battle.mjs.map +1 -1
  95. package/build/esm/sim/dex-moves.d.mts +1 -5
  96. package/build/esm/sim/dex-moves.mjs.map +1 -1
  97. package/build/esm/sim/exported-global-types.d.mts +0 -1
  98. package/build/esm/sim/global-types.d.mts +0 -1
  99. package/build/esm/sim/side.mjs +5 -1
  100. package/build/esm/sim/side.mjs.map +1 -1
  101. package/build/esm/sim/state.mjs +2 -2
  102. package/build/esm/sim/team-validator.d.mts +1 -1
  103. package/build/esm/sim/team-validator.mjs +3 -3
  104. package/build/esm/sim/team-validator.mjs.map +1 -1
  105. package/package.json +1 -1
@@ -376,6 +376,13 @@ export const Abilities = {
376
376
  source.abilityState.battleBondTriggered = true;
377
377
  }
378
378
  },
379
+ onModifyMovePriority: -1,
380
+ onModifyMove(move, attacker) {
381
+ if (move.id === 'watershuriken' && attacker.species.name === 'Greninja-Ash' &&
382
+ !attacker.transformed) {
383
+ move.multihit = 3;
384
+ }
385
+ },
379
386
  flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 },
380
387
  name: "Battle Bond",
381
388
  rating: 3.5,
@@ -2531,19 +2538,23 @@ export const Abilities = {
2531
2538
  },
2532
2539
  magician: {
2533
2540
  onAfterMoveSecondarySelf(source, target, move) {
2534
- if (!move || !target || source.switchFlag === true)
2541
+ if (!move || source.switchFlag === true || !move.hitTargets || source.item || source.volatiles['gem'] ||
2542
+ move.id === 'fling' || move.category === 'Status')
2535
2543
  return;
2536
- if (target !== source && move.category !== 'Status') {
2537
- if (source.item || source.volatiles['gem'] || move.id === 'fling')
2538
- return;
2539
- const yourItem = target.takeItem(source);
2540
- if (!yourItem)
2541
- return;
2542
- if (!source.setItem(yourItem)) {
2543
- target.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
2544
+ const hitTargets = move.hitTargets;
2545
+ this.speedSort(hitTargets);
2546
+ for (const pokemon of hitTargets) {
2547
+ if (pokemon !== source) {
2548
+ const yourItem = pokemon.takeItem(source);
2549
+ if (!yourItem)
2550
+ continue;
2551
+ if (!source.setItem(yourItem)) {
2552
+ pokemon.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
2553
+ continue;
2554
+ }
2555
+ this.add('-item', source, yourItem, '[from] ability: Magician', `[of] ${pokemon}`);
2544
2556
  return;
2545
2557
  }
2546
- this.add('-item', source, yourItem, '[from] ability: Magician', `[of] ${target}`);
2547
2558
  }
2548
2559
  },
2549
2560
  flags: {},
@@ -4334,7 +4345,7 @@ export const Abilities = {
4334
4345
  shielddust: {
4335
4346
  onModifySecondaries(secondaries) {
4336
4347
  this.debug('Shield Dust prevent secondary');
4337
- return secondaries.filter(effect => !!(effect.self || effect.dustproof));
4348
+ return secondaries.filter(effect => !!effect.self);
4338
4349
  },
4339
4350
  flags: { breakable: 1 },
4340
4351
  name: "Shield Dust",