@pkmn/sim 0.9.26 → 0.9.28
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.
- package/build/cjs/config/formats.js +79 -86
- package/build/cjs/config/formats.js.map +1 -1
- package/build/cjs/data/abilities.js +100 -116
- package/build/cjs/data/abilities.js.map +1 -1
- package/build/cjs/data/aliases.js +3 -2
- package/build/cjs/data/aliases.js.map +1 -1
- package/build/cjs/data/conditions.js +3 -3
- package/build/cjs/data/conditions.js.map +1 -1
- package/build/cjs/data/formats-data.js +12 -12
- package/build/cjs/data/formats-data.js.map +1 -1
- package/build/cjs/data/items.js +55 -25
- package/build/cjs/data/items.js.map +1 -1
- package/build/cjs/data/legality.js +275 -23
- package/build/cjs/data/legality.js.map +1 -1
- package/build/cjs/data/mods/gen1/moves.js.map +1 -1
- package/build/cjs/data/mods/gen1/scripts.js +2 -0
- package/build/cjs/data/mods/gen1/scripts.js.map +1 -1
- package/build/cjs/data/mods/gen2/moves.js +1 -1
- package/build/cjs/data/mods/gen2/moves.js.map +1 -1
- package/build/cjs/data/mods/gen3/abilities.js +0 -2
- package/build/cjs/data/mods/gen3/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen3/moves.js.map +1 -1
- package/build/cjs/data/mods/gen4/abilities.js +1 -1
- package/build/cjs/data/mods/gen4/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen4/formats-data.js +1 -1
- package/build/cjs/data/mods/gen4/formats-data.js.map +1 -1
- package/build/cjs/data/mods/gen4/moves.js +88 -0
- package/build/cjs/data/mods/gen4/moves.js.map +1 -1
- package/build/cjs/data/mods/gen4/scripts.js +26 -0
- package/build/cjs/data/mods/gen4/scripts.js.map +1 -1
- package/build/cjs/data/mods/gen5/conditions.js +1 -2
- package/build/cjs/data/mods/gen5/conditions.js.map +1 -1
- package/build/cjs/data/mods/gen5/formats-data.js +2 -2
- package/build/cjs/data/mods/gen5/formats-data.js.map +1 -1
- package/build/cjs/data/mods/gen6/moves.js.map +1 -1
- package/build/cjs/data/mods/gen8/abilities.js +0 -2
- package/build/cjs/data/mods/gen8/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen8/moves.js +1 -1
- package/build/cjs/data/mods/gen8/moves.js.map +1 -1
- package/build/cjs/data/moves.js +22 -18
- package/build/cjs/data/moves.js.map +1 -1
- package/build/cjs/data/pokemongo.js +1 -1
- package/build/cjs/data/text/moves.js +1 -1
- package/build/cjs/data/text/moves.js.map +1 -1
- package/build/cjs/lib/utils.d.ts +8 -0
- package/build/cjs/lib/utils.js +21 -2
- package/build/cjs/lib/utils.js.map +1 -1
- package/build/cjs/sim/battle-actions.js +30 -39
- package/build/cjs/sim/battle-actions.js.map +1 -1
- package/build/cjs/sim/battle-queue.d.ts +1 -1
- package/build/cjs/sim/battle-queue.js +0 -2
- package/build/cjs/sim/battle-queue.js.map +1 -1
- package/build/cjs/sim/battle-stream.js +2 -3
- package/build/cjs/sim/battle-stream.js.map +1 -1
- package/build/cjs/sim/battle.d.ts +13 -7
- package/build/cjs/sim/battle.js +197 -70
- package/build/cjs/sim/battle.js.map +1 -1
- package/build/cjs/sim/dex-abilities.d.ts +0 -1
- package/build/cjs/sim/dex-abilities.js +2 -2
- package/build/cjs/sim/dex-abilities.js.map +1 -1
- package/build/cjs/sim/dex-conditions.d.ts +11 -3
- package/build/cjs/sim/dex-conditions.js +2 -2
- package/build/cjs/sim/dex-conditions.js.map +1 -1
- package/build/cjs/sim/dex-data.js +7 -7
- package/build/cjs/sim/dex-data.js.map +1 -1
- package/build/cjs/sim/dex-formats.d.ts +2 -1
- package/build/cjs/sim/dex-formats.js.map +1 -1
- package/build/cjs/sim/dex-items.d.ts +3 -1
- package/build/cjs/sim/dex-items.js +3 -2
- package/build/cjs/sim/dex-items.js.map +1 -1
- package/build/cjs/sim/dex-moves.js +4 -4
- package/build/cjs/sim/dex-moves.js.map +1 -1
- package/build/cjs/sim/exported-global-types.d.ts +6 -0
- package/build/cjs/sim/field.js +9 -9
- package/build/cjs/sim/field.js.map +1 -1
- package/build/cjs/sim/global-types.d.ts +6 -0
- package/build/cjs/sim/pokemon.d.ts +8 -4
- package/build/cjs/sim/pokemon.js +62 -47
- package/build/cjs/sim/pokemon.js.map +1 -1
- package/build/cjs/sim/prng.d.ts +57 -18
- package/build/cjs/sim/prng.js +171 -38
- package/build/cjs/sim/prng.js.map +1 -1
- package/build/cjs/sim/side.js +9 -6
- package/build/cjs/sim/side.js.map +1 -1
- package/build/cjs/sim/state.js +1 -1
- package/build/cjs/sim/state.js.map +1 -1
- package/build/cjs/sim/team-validator.js +16 -17
- package/build/cjs/sim/team-validator.js.map +1 -1
- package/build/cjs/sim/tools/exhaustive-runner.js +11 -12
- package/build/cjs/sim/tools/exhaustive-runner.js.map +1 -1
- package/build/cjs/sim/tools/random-player-ai.js +5 -5
- package/build/cjs/sim/tools/random-player-ai.js.map +1 -1
- package/build/cjs/sim/tools/runner.js +7 -8
- package/build/cjs/sim/tools/runner.js.map +1 -1
- package/build/esm/config/formats.mjs +79 -86
- package/build/esm/config/formats.mjs.map +1 -1
- package/build/esm/data/abilities.mjs +100 -116
- package/build/esm/data/abilities.mjs.map +1 -1
- package/build/esm/data/aliases.mjs +3 -2
- package/build/esm/data/aliases.mjs.map +1 -1
- package/build/esm/data/conditions.mjs +3 -3
- package/build/esm/data/conditions.mjs.map +1 -1
- package/build/esm/data/formats-data.mjs +12 -12
- package/build/esm/data/formats-data.mjs.map +1 -1
- package/build/esm/data/items.mjs +55 -25
- package/build/esm/data/items.mjs.map +1 -1
- package/build/esm/data/legality.mjs +275 -23
- package/build/esm/data/legality.mjs.map +1 -1
- package/build/esm/data/mods/gen1/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen1/scripts.mjs +2 -0
- package/build/esm/data/mods/gen1/scripts.mjs.map +1 -1
- package/build/esm/data/mods/gen2/moves.mjs +1 -1
- package/build/esm/data/mods/gen2/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen3/abilities.mjs +0 -2
- package/build/esm/data/mods/gen3/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen3/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen4/abilities.mjs +1 -1
- package/build/esm/data/mods/gen4/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen4/formats-data.mjs +1 -1
- package/build/esm/data/mods/gen4/formats-data.mjs.map +1 -1
- package/build/esm/data/mods/gen4/moves.mjs +88 -0
- package/build/esm/data/mods/gen4/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen4/scripts.mjs +26 -0
- package/build/esm/data/mods/gen4/scripts.mjs.map +1 -1
- package/build/esm/data/mods/gen5/conditions.mjs +1 -2
- package/build/esm/data/mods/gen5/conditions.mjs.map +1 -1
- package/build/esm/data/mods/gen5/formats-data.mjs +2 -2
- package/build/esm/data/mods/gen5/formats-data.mjs.map +1 -1
- package/build/esm/data/mods/gen6/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen8/abilities.mjs +0 -2
- package/build/esm/data/mods/gen8/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen8/moves.mjs +1 -1
- package/build/esm/data/mods/gen8/moves.mjs.map +1 -1
- package/build/esm/data/moves.mjs +22 -18
- package/build/esm/data/moves.mjs.map +1 -1
- package/build/esm/data/pokemongo.mjs +1 -1
- package/build/esm/data/text/moves.mjs +1 -1
- package/build/esm/data/text/moves.mjs.map +1 -1
- package/build/esm/lib/utils.d.mts +8 -0
- package/build/esm/lib/utils.mjs +18 -2
- package/build/esm/lib/utils.mjs.map +1 -1
- package/build/esm/sim/battle-actions.mjs +30 -39
- package/build/esm/sim/battle-actions.mjs.map +1 -1
- package/build/esm/sim/battle-queue.d.mts +1 -1
- package/build/esm/sim/battle-queue.mjs +0 -2
- package/build/esm/sim/battle-queue.mjs.map +1 -1
- package/build/esm/sim/battle-stream.mjs +2 -3
- package/build/esm/sim/battle-stream.mjs.map +1 -1
- package/build/esm/sim/battle.d.mts +13 -7
- package/build/esm/sim/battle.mjs +196 -69
- package/build/esm/sim/battle.mjs.map +1 -1
- package/build/esm/sim/dex-abilities.d.mts +0 -1
- package/build/esm/sim/dex-abilities.mjs +1 -1
- package/build/esm/sim/dex-abilities.mjs.map +1 -1
- package/build/esm/sim/dex-conditions.d.mts +11 -3
- package/build/esm/sim/dex-conditions.mjs +1 -1
- package/build/esm/sim/dex-conditions.mjs.map +1 -1
- package/build/esm/sim/dex-data.mjs +1 -1
- package/build/esm/sim/dex-data.mjs.map +1 -1
- package/build/esm/sim/dex-formats.d.mts +2 -1
- package/build/esm/sim/dex-formats.mjs.map +1 -1
- package/build/esm/sim/dex-items.d.mts +3 -1
- package/build/esm/sim/dex-items.mjs +2 -1
- package/build/esm/sim/dex-items.mjs.map +1 -1
- package/build/esm/sim/dex-moves.mjs +1 -1
- package/build/esm/sim/dex-moves.mjs.map +1 -1
- package/build/esm/sim/exported-global-types.d.mts +6 -0
- package/build/esm/sim/field.mjs +9 -9
- package/build/esm/sim/field.mjs.map +1 -1
- package/build/esm/sim/global-types.d.mts +6 -0
- package/build/esm/sim/pokemon.d.mts +8 -4
- package/build/esm/sim/pokemon.mjs +62 -47
- package/build/esm/sim/pokemon.mjs.map +1 -1
- package/build/esm/sim/prng.d.mts +57 -18
- package/build/esm/sim/prng.mjs +134 -36
- package/build/esm/sim/prng.mjs.map +1 -1
- package/build/esm/sim/side.mjs +8 -5
- package/build/esm/sim/side.mjs.map +1 -1
- package/build/esm/sim/state.mjs +1 -1
- package/build/esm/sim/state.mjs.map +1 -1
- package/build/esm/sim/team-validator.mjs +10 -11
- package/build/esm/sim/team-validator.mjs.map +1 -1
- package/build/esm/sim/tools/exhaustive-runner.mjs +11 -12
- package/build/esm/sim/tools/exhaustive-runner.mjs.map +1 -1
- package/build/esm/sim/tools/random-player-ai.mjs +5 -5
- package/build/esm/sim/tools/random-player-ai.mjs.map +1 -1
- package/build/esm/sim/tools/runner.mjs +7 -8
- package/build/esm/sim/tools/runner.mjs.map +1 -1
- package/package.json +3 -2
package/build/esm/data/items.mjs
CHANGED
|
@@ -198,7 +198,7 @@ export const Items = {
|
|
|
198
198
|
onDamagingHit(damage, target, source, move) {
|
|
199
199
|
this.add('-enditem', target, 'Air Balloon');
|
|
200
200
|
target.item = '';
|
|
201
|
-
target.itemState
|
|
201
|
+
this.clearEffectState(target.itemState);
|
|
202
202
|
this.runEvent('AfterUseItem', target, null, null, this.dex.items.get('airballoon'));
|
|
203
203
|
},
|
|
204
204
|
onAfterSubDamage(damage, target, source, effect) {
|
|
@@ -206,7 +206,7 @@ export const Items = {
|
|
|
206
206
|
if (effect.effectType === 'Move') {
|
|
207
207
|
this.add('-enditem', target, 'Air Balloon');
|
|
208
208
|
target.item = '';
|
|
209
|
-
target.itemState
|
|
209
|
+
this.clearEffectState(target.itemState);
|
|
210
210
|
this.runEvent('AfterUseItem', target, null, null, this.dex.items.get('airballoon'));
|
|
211
211
|
}
|
|
212
212
|
},
|
|
@@ -582,20 +582,19 @@ export const Items = {
|
|
|
582
582
|
blueorb: {
|
|
583
583
|
name: "Blue Orb",
|
|
584
584
|
spritenum: 41,
|
|
585
|
+
onSwitchInPriority: -1,
|
|
585
586
|
onSwitchIn(pokemon) {
|
|
586
|
-
if (pokemon.isActive && pokemon.baseSpecies.name === 'Kyogre') {
|
|
587
|
-
|
|
587
|
+
if (pokemon.isActive && pokemon.baseSpecies.name === 'Kyogre' && !pokemon.transformed) {
|
|
588
|
+
pokemon.formeChange('Kyogre-Primal', this.effect, true);
|
|
588
589
|
}
|
|
589
590
|
},
|
|
590
|
-
onPrimal(pokemon) {
|
|
591
|
-
pokemon.formeChange('Kyogre-Primal', this.effect, true);
|
|
592
|
-
},
|
|
593
591
|
onTakeItem(item, source) {
|
|
594
592
|
if (source.baseSpecies.baseSpecies === 'Kyogre')
|
|
595
593
|
return false;
|
|
596
594
|
return true;
|
|
597
595
|
},
|
|
598
596
|
itemUser: ["Kyogre"],
|
|
597
|
+
isPrimalOrb: true,
|
|
599
598
|
num: 535,
|
|
600
599
|
gen: 6,
|
|
601
600
|
isNonstandard: "Past",
|
|
@@ -629,14 +628,14 @@ export const Items = {
|
|
|
629
628
|
fling: {
|
|
630
629
|
basePower: 30,
|
|
631
630
|
},
|
|
632
|
-
|
|
631
|
+
onSwitchInPriority: -2,
|
|
632
|
+
onStart(pokemon) {
|
|
633
633
|
this.effectState.started = true;
|
|
634
|
+
this.effect.onUpdate.call(this, pokemon);
|
|
634
635
|
},
|
|
635
636
|
onUpdate(pokemon) {
|
|
636
637
|
if (!this.effectState.started || pokemon.transformed)
|
|
637
638
|
return;
|
|
638
|
-
if (this.queue.peek(true)?.choice === 'runSwitch')
|
|
639
|
-
return;
|
|
640
639
|
if (pokemon.hasAbility('protosynthesis') && !this.field.isWeather('sunnyday') && pokemon.useItem()) {
|
|
641
640
|
pokemon.addVolatile('protosynthesis');
|
|
642
641
|
}
|
|
@@ -1677,6 +1676,7 @@ export const Items = {
|
|
|
1677
1676
|
fling: {
|
|
1678
1677
|
basePower: 10,
|
|
1679
1678
|
},
|
|
1679
|
+
onSwitchInPriority: -1,
|
|
1680
1680
|
onStart(pokemon) {
|
|
1681
1681
|
if (!pokemon.ignoringItem() && this.field.isTerrain('electricterrain')) {
|
|
1682
1682
|
pokemon.useItem();
|
|
@@ -2374,6 +2374,7 @@ export const Items = {
|
|
|
2374
2374
|
fling: {
|
|
2375
2375
|
basePower: 10,
|
|
2376
2376
|
},
|
|
2377
|
+
onSwitchInPriority: -1,
|
|
2377
2378
|
onStart(pokemon) {
|
|
2378
2379
|
if (!pokemon.ignoringItem() && this.field.isTerrain('grassyterrain')) {
|
|
2379
2380
|
pokemon.useItem();
|
|
@@ -3890,20 +3891,40 @@ export const Items = {
|
|
|
3890
3891
|
onFoeAfterBoost(boost, target, source, effect) {
|
|
3891
3892
|
if (effect?.name === 'Opportunist' || effect?.name === 'Mirror Herb')
|
|
3892
3893
|
return;
|
|
3893
|
-
|
|
3894
|
-
|
|
3894
|
+
if (!this.effectState.boosts)
|
|
3895
|
+
this.effectState.boosts = {};
|
|
3896
|
+
const boostPlus = this.effectState.boosts;
|
|
3895
3897
|
let i;
|
|
3896
3898
|
for (i in boost) {
|
|
3897
3899
|
if (boost[i] > 0) {
|
|
3898
|
-
boostPlus[i] = boost[i];
|
|
3899
|
-
|
|
3900
|
+
boostPlus[i] = (boostPlus[i] || 0) + boost[i];
|
|
3901
|
+
this.effectState.ready = true;
|
|
3900
3902
|
}
|
|
3901
3903
|
}
|
|
3902
|
-
|
|
3904
|
+
},
|
|
3905
|
+
onAnySwitchInPriority: -3,
|
|
3906
|
+
onAnySwitchIn() {
|
|
3907
|
+
if (!this.effectState.ready || !this.effectState.boosts)
|
|
3903
3908
|
return;
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3909
|
+
this.effectState.target.useItem();
|
|
3910
|
+
},
|
|
3911
|
+
onAnyAfterMove() {
|
|
3912
|
+
if (!this.effectState.ready || !this.effectState.boosts)
|
|
3913
|
+
return;
|
|
3914
|
+
this.effectState.target.useItem();
|
|
3915
|
+
},
|
|
3916
|
+
onResidualOrder: 29,
|
|
3917
|
+
onResidual(pokemon) {
|
|
3918
|
+
if (!this.effectState.ready || !this.effectState.boosts)
|
|
3919
|
+
return;
|
|
3920
|
+
this.effectState.target.useItem();
|
|
3921
|
+
},
|
|
3922
|
+
onUse(pokemon) {
|
|
3923
|
+
this.boost(this.effectState.boosts, pokemon);
|
|
3924
|
+
},
|
|
3925
|
+
onEnd() {
|
|
3926
|
+
delete this.effectState.boosts;
|
|
3927
|
+
delete this.effectState.ready;
|
|
3907
3928
|
},
|
|
3908
3929
|
num: 1883,
|
|
3909
3930
|
gen: 9,
|
|
@@ -3914,6 +3935,7 @@ export const Items = {
|
|
|
3914
3935
|
fling: {
|
|
3915
3936
|
basePower: 10,
|
|
3916
3937
|
},
|
|
3938
|
+
onSwitchInPriority: -1,
|
|
3917
3939
|
onStart(pokemon) {
|
|
3918
3940
|
if (!pokemon.ignoringItem() && this.field.isTerrain('mistyterrain')) {
|
|
3919
3941
|
pokemon.useItem();
|
|
@@ -4617,6 +4639,7 @@ export const Items = {
|
|
|
4617
4639
|
fling: {
|
|
4618
4640
|
basePower: 10,
|
|
4619
4641
|
},
|
|
4642
|
+
onSwitchInPriority: -1,
|
|
4620
4643
|
onStart(pokemon) {
|
|
4621
4644
|
if (!pokemon.ignoringItem() && this.field.isTerrain('psychicterrain')) {
|
|
4622
4645
|
pokemon.useItem();
|
|
@@ -4846,20 +4869,19 @@ export const Items = {
|
|
|
4846
4869
|
redorb: {
|
|
4847
4870
|
name: "Red Orb",
|
|
4848
4871
|
spritenum: 390,
|
|
4872
|
+
onSwitchInPriority: -1,
|
|
4849
4873
|
onSwitchIn(pokemon) {
|
|
4850
|
-
if (pokemon.isActive && pokemon.baseSpecies.name === 'Groudon') {
|
|
4851
|
-
|
|
4874
|
+
if (pokemon.isActive && pokemon.baseSpecies.name === 'Groudon' && !pokemon.transformed) {
|
|
4875
|
+
pokemon.formeChange('Groudon-Primal', this.effect, true);
|
|
4852
4876
|
}
|
|
4853
4877
|
},
|
|
4854
|
-
onPrimal(pokemon) {
|
|
4855
|
-
pokemon.formeChange('Groudon-Primal', this.effect, true);
|
|
4856
|
-
},
|
|
4857
4878
|
onTakeItem(item, source) {
|
|
4858
4879
|
if (source.baseSpecies.baseSpecies === 'Groudon')
|
|
4859
4880
|
return false;
|
|
4860
4881
|
return true;
|
|
4861
4882
|
},
|
|
4862
4883
|
itemUser: ["Groudon"],
|
|
4884
|
+
isPrimalOrb: true,
|
|
4863
4885
|
num: 534,
|
|
4864
4886
|
gen: 6,
|
|
4865
4887
|
isNonstandard: "Past",
|
|
@@ -4994,6 +5016,7 @@ export const Items = {
|
|
|
4994
5016
|
fling: {
|
|
4995
5017
|
basePower: 100,
|
|
4996
5018
|
},
|
|
5019
|
+
onSwitchInPriority: -1,
|
|
4997
5020
|
onStart(pokemon) {
|
|
4998
5021
|
if (!pokemon.ignoringItem() && this.field.getPseudoWeather('trickroom')) {
|
|
4999
5022
|
pokemon.useItem();
|
|
@@ -7288,6 +7311,13 @@ export const Items = {
|
|
|
7288
7311
|
}
|
|
7289
7312
|
},
|
|
7290
7313
|
},
|
|
7314
|
+
onAnySwitchInPriority: -2,
|
|
7315
|
+
onAnySwitchIn() {
|
|
7316
|
+
this.effect.onUpdate.call(this, this.effectState.target);
|
|
7317
|
+
},
|
|
7318
|
+
onStart(pokemon) {
|
|
7319
|
+
this.effect.onUpdate.call(this, pokemon);
|
|
7320
|
+
},
|
|
7291
7321
|
onUpdate(pokemon) {
|
|
7292
7322
|
let activate = false;
|
|
7293
7323
|
const boosts = {};
|
|
@@ -7447,7 +7477,7 @@ export const Items = {
|
|
|
7447
7477
|
basePower: 80,
|
|
7448
7478
|
type: "Poison",
|
|
7449
7479
|
},
|
|
7450
|
-
onResidualOrder:
|
|
7480
|
+
onResidualOrder: 10,
|
|
7451
7481
|
onResidual(pokemon) {
|
|
7452
7482
|
if (pokemon.hp <= pokemon.maxhp / 2) {
|
|
7453
7483
|
pokemon.eatItem();
|
|
@@ -7514,7 +7544,7 @@ export const Items = {
|
|
|
7514
7544
|
basePower: 80,
|
|
7515
7545
|
type: "Psychic",
|
|
7516
7546
|
},
|
|
7517
|
-
onResidualOrder:
|
|
7547
|
+
onResidualOrder: 10,
|
|
7518
7548
|
onResidual(pokemon) {
|
|
7519
7549
|
if (pokemon.hp <= pokemon.maxhp / 2) {
|
|
7520
7550
|
pokemon.eatItem();
|