@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
@@ -2513,11 +2513,21 @@ export const Moves = {
2513
2513
  pp: 10,
2514
2514
  priority: 0,
2515
2515
  flags: {},
2516
- // TODO show prepare message before the "POKEMON used MOVE!" message
2517
- // This happens even before sleep shows its "POKEMON is fast asleep." message
2516
+ priorityChargeCallback(source) {
2517
+ source.addVolatile('chillyreception');
2518
+ },
2518
2519
  weather: 'snowscape',
2519
2520
  selfSwitch: true,
2520
2521
  secondary: null,
2522
+ condition: {
2523
+ duration: 1,
2524
+ onBeforeMovePriority: 100,
2525
+ onBeforeMove(source, target, move) {
2526
+ if (move.id !== 'chillyreception')
2527
+ return;
2528
+ this.add('-prepare', source, 'Chilly Reception', '[premajor]');
2529
+ },
2530
+ },
2521
2531
  target: "all",
2522
2532
  type: "Ice",
2523
2533
  },
@@ -3208,6 +3218,7 @@ export const Moves = {
3208
3218
  const targetSide = sides[(i + offset) % 4]; // the next side in rotation
3209
3219
  for (const id in sourceSideConditions) {
3210
3220
  targetSide.sideConditions[id] = sourceSideConditions[id];
3221
+ targetSide.sideConditions[id].target = targetSide;
3211
3222
  const effectName = this.dex.conditions.get(id).name;
3212
3223
  let layers = sourceSideConditions[id].layers || 1;
3213
3224
  for (; layers > 0; layers--)
@@ -3236,9 +3247,11 @@ export const Moves = {
3236
3247
  }
3237
3248
  for (const id in sourceTemp) {
3238
3249
  targetSideConditions[id] = sourceTemp[id];
3250
+ targetSideConditions[id].target = source.side.foe;
3239
3251
  }
3240
3252
  for (const id in targetTemp) {
3241
3253
  sourceSideConditions[id] = targetTemp[id];
3254
+ sourceSideConditions[id].target = source.side;
3242
3255
  }
3243
3256
  this.add('-swapsideconditions');
3244
3257
  }
@@ -4737,6 +4750,7 @@ export const Moves = {
4737
4750
  flags: { nonsky: 1, metronome: 1 },
4738
4751
  terrain: 'electricterrain',
4739
4752
  condition: {
4753
+ effectType: 'Terrain',
4740
4754
  duration: 5,
4741
4755
  durationCallback(source, effect) {
4742
4756
  if (source?.hasItem('terrainextender')) {
@@ -8083,6 +8097,7 @@ export const Moves = {
8083
8097
  flags: { nonsky: 1, metronome: 1 },
8084
8098
  terrain: 'grassyterrain',
8085
8099
  condition: {
8100
+ effectType: 'Terrain',
8086
8101
  duration: 5,
8087
8102
  durationCallback(source, effect) {
8088
8103
  if (source?.hasItem('terrainextender')) {
@@ -8745,8 +8760,14 @@ export const Moves = {
8745
8760
  this.add('-end', pokemon, 'move: Heal Block');
8746
8761
  },
8747
8762
  onTryHeal(damage, target, source, effect) {
8748
- if ((effect?.id === 'zpower') || this.effectState.isZ)
8763
+ if (effect && (effect.id === 'zpower' || effect.isZ))
8749
8764
  return damage;
8765
+ if (source && target !== source && target.hp !== target.maxhp && effect.name === "Pollen Puff") {
8766
+ this.attrLastMove('[still]');
8767
+ // FIXME: Wrong error message, correct one not supported yet
8768
+ this.add('cant', source, 'move: Heal Block', effect);
8769
+ return null;
8770
+ }
8750
8771
  return false;
8751
8772
  },
8752
8773
  onRestart(target, source, effect) {
@@ -12797,6 +12818,7 @@ export const Moves = {
12797
12818
  flags: { nonsky: 1, metronome: 1 },
12798
12819
  terrain: 'mistyterrain',
12799
12820
  condition: {
12821
+ effectType: 'Terrain',
12800
12822
  duration: 5,
12801
12823
  durationCallback(source, effect) {
12802
12824
  if (source?.hasItem('terrainextender')) {
@@ -14289,14 +14311,6 @@ export const Moves = {
14289
14311
  onHit(target, source, move) {
14290
14312
  if (source.isAlly(target)) {
14291
14313
  if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {
14292
- if (target.volatiles['healblock'] && target.hp !== target.maxhp) {
14293
- this.attrLastMove('[still]');
14294
- // Wrong error message, correct one not supported yet
14295
- this.add('cant', source, 'move: Heal Block', move);
14296
- }
14297
- else {
14298
- this.add('-immune', target);
14299
- }
14300
14314
  return this.NOT_FAIL;
14301
14315
  }
14302
14316
  }
@@ -14876,6 +14890,7 @@ export const Moves = {
14876
14890
  flags: { nonsky: 1, metronome: 1 },
14877
14891
  terrain: 'psychicterrain',
14878
14892
  condition: {
14893
+ effectType: 'Terrain',
14879
14894
  duration: 5,
14880
14895
  durationCallback(source, effect) {
14881
14896
  if (source?.hasItem('terrainextender')) {