@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
@@ -379,6 +379,13 @@ exports.Abilities = {
379
379
  source.abilityState.battleBondTriggered = true;
380
380
  }
381
381
  },
382
+ onModifyMovePriority: -1,
383
+ onModifyMove(move, attacker) {
384
+ if (move.id === 'watershuriken' && attacker.species.name === 'Greninja-Ash' &&
385
+ !attacker.transformed) {
386
+ move.multihit = 3;
387
+ }
388
+ },
382
389
  flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 },
383
390
  name: "Battle Bond",
384
391
  rating: 3.5,
@@ -2534,19 +2541,23 @@ exports.Abilities = {
2534
2541
  },
2535
2542
  magician: {
2536
2543
  onAfterMoveSecondarySelf(source, target, move) {
2537
- if (!move || !target || source.switchFlag === true)
2544
+ if (!move || source.switchFlag === true || !move.hitTargets || source.item || source.volatiles['gem'] ||
2545
+ move.id === 'fling' || move.category === 'Status')
2538
2546
  return;
2539
- if (target !== source && move.category !== 'Status') {
2540
- if (source.item || source.volatiles['gem'] || move.id === 'fling')
2541
- return;
2542
- const yourItem = target.takeItem(source);
2543
- if (!yourItem)
2544
- return;
2545
- if (!source.setItem(yourItem)) {
2546
- target.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
2547
+ const hitTargets = move.hitTargets;
2548
+ this.speedSort(hitTargets);
2549
+ for (const pokemon of hitTargets) {
2550
+ if (pokemon !== source) {
2551
+ const yourItem = pokemon.takeItem(source);
2552
+ if (!yourItem)
2553
+ continue;
2554
+ if (!source.setItem(yourItem)) {
2555
+ pokemon.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
2556
+ continue;
2557
+ }
2558
+ this.add('-item', source, yourItem, '[from] ability: Magician', `[of] ${pokemon}`);
2547
2559
  return;
2548
2560
  }
2549
- this.add('-item', source, yourItem, '[from] ability: Magician', `[of] ${target}`);
2550
2561
  }
2551
2562
  },
2552
2563
  flags: {},
@@ -4337,7 +4348,7 @@ exports.Abilities = {
4337
4348
  shielddust: {
4338
4349
  onModifySecondaries(secondaries) {
4339
4350
  this.debug('Shield Dust prevent secondary');
4340
- return secondaries.filter(effect => !!(effect.self || effect.dustproof));
4351
+ return secondaries.filter(effect => !!effect.self);
4341
4352
  },
4342
4353
  flags: { breakable: 1 },
4343
4354
  name: "Shield Dust",