@pkmn/sim 0.9.31 → 0.9.33

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 (97) hide show
  1. package/build/cjs/config/formats.js +170 -187
  2. package/build/cjs/config/formats.js.map +1 -1
  3. package/build/cjs/data/abilities.js +7 -0
  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 +73 -71
  8. package/build/cjs/data/formats-data.js.map +1 -1
  9. package/build/cjs/data/learnsets.js +0 -1
  10. package/build/cjs/data/learnsets.js.map +1 -1
  11. package/build/cjs/data/legality.js +32 -3
  12. package/build/cjs/data/legality.js.map +1 -1
  13. package/build/cjs/data/mods/gen1/conditions.js +61 -10
  14. package/build/cjs/data/mods/gen1/conditions.js.map +1 -1
  15. package/build/cjs/data/mods/gen1/formats-data.js +5 -5
  16. package/build/cjs/data/mods/gen1/formats-data.js.map +1 -1
  17. package/build/cjs/data/mods/gen1/moves.js +0 -56
  18. package/build/cjs/data/mods/gen1/moves.js.map +1 -1
  19. package/build/cjs/data/mods/gen1/scripts.js +22 -31
  20. package/build/cjs/data/mods/gen1/scripts.js.map +1 -1
  21. package/build/cjs/data/mods/gen6/moves.js +1 -0
  22. package/build/cjs/data/mods/gen6/moves.js.map +1 -1
  23. package/build/cjs/data/mods/gen7/moves.js +3 -0
  24. package/build/cjs/data/mods/gen7/moves.js.map +1 -1
  25. package/build/cjs/data/mods/gen8/abilities.js +0 -7
  26. package/build/cjs/data/mods/gen8/abilities.js.map +1 -1
  27. package/build/cjs/data/moves.js +26 -11
  28. package/build/cjs/data/moves.js.map +1 -1
  29. package/build/cjs/data/pokedex.js +1 -1
  30. package/build/cjs/data/rulesets.js +81 -63
  31. package/build/cjs/data/rulesets.js.map +1 -1
  32. package/build/cjs/data/text/moves.js +2 -3
  33. package/build/cjs/data/text/moves.js.map +1 -1
  34. package/build/cjs/sim/battle-actions.js +7 -4
  35. package/build/cjs/sim/battle-actions.js.map +1 -1
  36. package/build/cjs/sim/battle.js +40 -0
  37. package/build/cjs/sim/battle.js.map +1 -1
  38. package/build/cjs/sim/dex-conditions.d.ts +2 -2
  39. package/build/cjs/sim/dex-conditions.js +1 -1
  40. package/build/cjs/sim/dex-conditions.js.map +1 -1
  41. package/build/cjs/sim/exported-global-types.d.ts +1 -2
  42. package/build/cjs/sim/global-types.d.ts +1 -2
  43. package/build/cjs/sim/pokemon.d.ts +2 -0
  44. package/build/cjs/sim/pokemon.js +8 -7
  45. package/build/cjs/sim/pokemon.js.map +1 -1
  46. package/build/cjs/sim/side.d.ts +7 -2
  47. package/build/cjs/sim/side.js +55 -39
  48. package/build/cjs/sim/side.js.map +1 -1
  49. package/build/esm/config/formats.mjs +170 -187
  50. package/build/esm/config/formats.mjs.map +1 -1
  51. package/build/esm/data/abilities.mjs +7 -0
  52. package/build/esm/data/abilities.mjs.map +1 -1
  53. package/build/esm/data/aliases.mjs +2 -2
  54. package/build/esm/data/aliases.mjs.map +1 -1
  55. package/build/esm/data/formats-data.mjs +73 -71
  56. package/build/esm/data/formats-data.mjs.map +1 -1
  57. package/build/esm/data/learnsets.mjs +0 -1
  58. package/build/esm/data/learnsets.mjs.map +1 -1
  59. package/build/esm/data/legality.mjs +32 -3
  60. package/build/esm/data/legality.mjs.map +1 -1
  61. package/build/esm/data/mods/gen1/conditions.mjs +61 -10
  62. package/build/esm/data/mods/gen1/conditions.mjs.map +1 -1
  63. package/build/esm/data/mods/gen1/formats-data.mjs +5 -5
  64. package/build/esm/data/mods/gen1/formats-data.mjs.map +1 -1
  65. package/build/esm/data/mods/gen1/moves.mjs +0 -56
  66. package/build/esm/data/mods/gen1/moves.mjs.map +1 -1
  67. package/build/esm/data/mods/gen1/scripts.mjs +22 -31
  68. package/build/esm/data/mods/gen1/scripts.mjs.map +1 -1
  69. package/build/esm/data/mods/gen6/moves.mjs +1 -0
  70. package/build/esm/data/mods/gen6/moves.mjs.map +1 -1
  71. package/build/esm/data/mods/gen7/moves.mjs +3 -0
  72. package/build/esm/data/mods/gen7/moves.mjs.map +1 -1
  73. package/build/esm/data/mods/gen8/abilities.mjs +0 -7
  74. package/build/esm/data/mods/gen8/abilities.mjs.map +1 -1
  75. package/build/esm/data/moves.mjs +26 -11
  76. package/build/esm/data/moves.mjs.map +1 -1
  77. package/build/esm/data/pokedex.mjs +1 -1
  78. package/build/esm/data/rulesets.mjs +81 -63
  79. package/build/esm/data/rulesets.mjs.map +1 -1
  80. package/build/esm/data/text/moves.mjs +2 -3
  81. package/build/esm/data/text/moves.mjs.map +1 -1
  82. package/build/esm/sim/battle-actions.mjs +7 -4
  83. package/build/esm/sim/battle-actions.mjs.map +1 -1
  84. package/build/esm/sim/battle.mjs +40 -0
  85. package/build/esm/sim/battle.mjs.map +1 -1
  86. package/build/esm/sim/dex-conditions.d.mts +2 -2
  87. package/build/esm/sim/dex-conditions.mjs +1 -1
  88. package/build/esm/sim/dex-conditions.mjs.map +1 -1
  89. package/build/esm/sim/exported-global-types.d.mts +1 -2
  90. package/build/esm/sim/global-types.d.mts +1 -2
  91. package/build/esm/sim/pokemon.d.mts +2 -0
  92. package/build/esm/sim/pokemon.mjs +8 -7
  93. package/build/esm/sim/pokemon.mjs.map +1 -1
  94. package/build/esm/sim/side.d.mts +7 -2
  95. package/build/esm/sim/side.mjs +55 -39
  96. package/build/esm/sim/side.mjs.map +1 -1
  97. package/package.json +1 -1
@@ -2516,11 +2516,21 @@ exports.Moves = {
2516
2516
  pp: 10,
2517
2517
  priority: 0,
2518
2518
  flags: {},
2519
- // TODO show prepare message before the "POKEMON used MOVE!" message
2520
- // This happens even before sleep shows its "POKEMON is fast asleep." message
2519
+ priorityChargeCallback(source) {
2520
+ source.addVolatile('chillyreception');
2521
+ },
2521
2522
  weather: 'snowscape',
2522
2523
  selfSwitch: true,
2523
2524
  secondary: null,
2525
+ condition: {
2526
+ duration: 1,
2527
+ onBeforeMovePriority: 100,
2528
+ onBeforeMove(source, target, move) {
2529
+ if (move.id !== 'chillyreception')
2530
+ return;
2531
+ this.add('-prepare', source, 'Chilly Reception', '[premajor]');
2532
+ },
2533
+ },
2524
2534
  target: "all",
2525
2535
  type: "Ice",
2526
2536
  },
@@ -3211,6 +3221,7 @@ exports.Moves = {
3211
3221
  const targetSide = sides[(i + offset) % 4]; // the next side in rotation
3212
3222
  for (const id in sourceSideConditions) {
3213
3223
  targetSide.sideConditions[id] = sourceSideConditions[id];
3224
+ targetSide.sideConditions[id].target = targetSide;
3214
3225
  const effectName = this.dex.conditions.get(id).name;
3215
3226
  let layers = sourceSideConditions[id].layers || 1;
3216
3227
  for (; layers > 0; layers--)
@@ -3239,9 +3250,11 @@ exports.Moves = {
3239
3250
  }
3240
3251
  for (const id in sourceTemp) {
3241
3252
  targetSideConditions[id] = sourceTemp[id];
3253
+ targetSideConditions[id].target = source.side.foe;
3242
3254
  }
3243
3255
  for (const id in targetTemp) {
3244
3256
  sourceSideConditions[id] = targetTemp[id];
3257
+ sourceSideConditions[id].target = source.side;
3245
3258
  }
3246
3259
  this.add('-swapsideconditions');
3247
3260
  }
@@ -4740,6 +4753,7 @@ exports.Moves = {
4740
4753
  flags: { nonsky: 1, metronome: 1 },
4741
4754
  terrain: 'electricterrain',
4742
4755
  condition: {
4756
+ effectType: 'Terrain',
4743
4757
  duration: 5,
4744
4758
  durationCallback(source, effect) {
4745
4759
  if (source?.hasItem('terrainextender')) {
@@ -8086,6 +8100,7 @@ exports.Moves = {
8086
8100
  flags: { nonsky: 1, metronome: 1 },
8087
8101
  terrain: 'grassyterrain',
8088
8102
  condition: {
8103
+ effectType: 'Terrain',
8089
8104
  duration: 5,
8090
8105
  durationCallback(source, effect) {
8091
8106
  if (source?.hasItem('terrainextender')) {
@@ -8748,8 +8763,14 @@ exports.Moves = {
8748
8763
  this.add('-end', pokemon, 'move: Heal Block');
8749
8764
  },
8750
8765
  onTryHeal(damage, target, source, effect) {
8751
- if ((effect?.id === 'zpower') || this.effectState.isZ)
8766
+ if (effect && (effect.id === 'zpower' || effect.isZ))
8752
8767
  return damage;
8768
+ if (source && target !== source && target.hp !== target.maxhp && effect.name === "Pollen Puff") {
8769
+ this.attrLastMove('[still]');
8770
+ // FIXME: Wrong error message, correct one not supported yet
8771
+ this.add('cant', source, 'move: Heal Block', effect);
8772
+ return null;
8773
+ }
8753
8774
  return false;
8754
8775
  },
8755
8776
  onRestart(target, source, effect) {
@@ -12800,6 +12821,7 @@ exports.Moves = {
12800
12821
  flags: { nonsky: 1, metronome: 1 },
12801
12822
  terrain: 'mistyterrain',
12802
12823
  condition: {
12824
+ effectType: 'Terrain',
12803
12825
  duration: 5,
12804
12826
  durationCallback(source, effect) {
12805
12827
  if (source?.hasItem('terrainextender')) {
@@ -14292,14 +14314,6 @@ exports.Moves = {
14292
14314
  onHit(target, source, move) {
14293
14315
  if (source.isAlly(target)) {
14294
14316
  if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {
14295
- if (target.volatiles['healblock'] && target.hp !== target.maxhp) {
14296
- this.attrLastMove('[still]');
14297
- // Wrong error message, correct one not supported yet
14298
- this.add('cant', source, 'move: Heal Block', move);
14299
- }
14300
- else {
14301
- this.add('-immune', target);
14302
- }
14303
14317
  return this.NOT_FAIL;
14304
14318
  }
14305
14319
  }
@@ -14879,6 +14893,7 @@ exports.Moves = {
14879
14893
  flags: { nonsky: 1, metronome: 1 },
14880
14894
  terrain: 'psychicterrain',
14881
14895
  condition: {
14896
+ effectType: 'Terrain',
14882
14897
  duration: 5,
14883
14898
  durationCallback(source, effect) {
14884
14899
  if (source?.hasItem('terrainextender')) {