@pkmn/sim 0.9.27 → 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 +51 -51
- package/build/cjs/config/formats.js.map +1 -1
- package/build/cjs/data/abilities.js +83 -84
- 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 +6 -6
- 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/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/moves.js +31 -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/formats-data.js +1 -1
- 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/moves.js +1 -1
- package/build/cjs/data/mods/gen8/moves.js.map +1 -1
- package/build/cjs/data/moves.js +15 -9
- 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 +2 -0
- package/build/cjs/lib/utils.js +1 -1
- package/build/cjs/lib/utils.js.map +1 -1
- package/build/cjs/sim/battle-actions.js +25 -36
- 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 +185 -60
- 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 +61 -46
- package/build/cjs/sim/pokemon.js.map +1 -1
- package/build/cjs/sim/prng.d.ts +7 -4
- package/build/cjs/sim/prng.js +67 -16
- 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/team-validator.js +16 -17
- package/build/cjs/sim/team-validator.js.map +1 -1
- package/build/cjs/sim/tools/exhaustive-runner.js +3 -4
- package/build/cjs/sim/tools/exhaustive-runner.js.map +1 -1
- package/build/cjs/sim/tools/random-player-ai.js +1 -1
- package/build/cjs/sim/tools/random-player-ai.js.map +1 -1
- package/build/cjs/sim/tools/runner.js +2 -3
- package/build/cjs/sim/tools/runner.js.map +1 -1
- package/build/esm/config/formats.mjs +51 -51
- package/build/esm/config/formats.mjs.map +1 -1
- package/build/esm/data/abilities.mjs +83 -84
- 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 +6 -6
- 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/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/moves.mjs +31 -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/formats-data.mjs +1 -1
- 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/moves.mjs +1 -1
- package/build/esm/data/mods/gen8/moves.mjs.map +1 -1
- package/build/esm/data/moves.mjs +15 -9
- 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 +2 -0
- package/build/esm/lib/utils.mjs +1 -1
- package/build/esm/lib/utils.mjs.map +1 -1
- package/build/esm/sim/battle-actions.mjs +25 -36
- 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 +184 -59
- 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 +61 -46
- package/build/esm/sim/pokemon.mjs.map +1 -1
- package/build/esm/sim/prng.d.mts +7 -4
- package/build/esm/sim/prng.mjs +34 -16
- 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/team-validator.mjs +10 -11
- package/build/esm/sim/team-validator.mjs.map +1 -1
- package/build/esm/sim/tools/exhaustive-runner.mjs +3 -4
- package/build/esm/sim/tools/exhaustive-runner.mjs.map +1 -1
- package/build/esm/sim/tools/random-player-ai.mjs +1 -1
- package/build/esm/sim/tools/random-player-ai.mjs.map +1 -1
- package/build/esm/sim/tools/runner.mjs +2 -3
- package/build/esm/sim/tools/runner.mjs.map +1 -1
- package/package.json +2 -2
package/build/cjs/data/items.js
CHANGED
|
@@ -201,7 +201,7 @@ exports.Items = {
|
|
|
201
201
|
onDamagingHit(damage, target, source, move) {
|
|
202
202
|
this.add('-enditem', target, 'Air Balloon');
|
|
203
203
|
target.item = '';
|
|
204
|
-
target.itemState
|
|
204
|
+
this.clearEffectState(target.itemState);
|
|
205
205
|
this.runEvent('AfterUseItem', target, null, null, this.dex.items.get('airballoon'));
|
|
206
206
|
},
|
|
207
207
|
onAfterSubDamage(damage, target, source, effect) {
|
|
@@ -209,7 +209,7 @@ exports.Items = {
|
|
|
209
209
|
if (effect.effectType === 'Move') {
|
|
210
210
|
this.add('-enditem', target, 'Air Balloon');
|
|
211
211
|
target.item = '';
|
|
212
|
-
target.itemState
|
|
212
|
+
this.clearEffectState(target.itemState);
|
|
213
213
|
this.runEvent('AfterUseItem', target, null, null, this.dex.items.get('airballoon'));
|
|
214
214
|
}
|
|
215
215
|
},
|
|
@@ -585,20 +585,19 @@ exports.Items = {
|
|
|
585
585
|
blueorb: {
|
|
586
586
|
name: "Blue Orb",
|
|
587
587
|
spritenum: 41,
|
|
588
|
+
onSwitchInPriority: -1,
|
|
588
589
|
onSwitchIn(pokemon) {
|
|
589
|
-
if (pokemon.isActive && pokemon.baseSpecies.name === 'Kyogre') {
|
|
590
|
-
|
|
590
|
+
if (pokemon.isActive && pokemon.baseSpecies.name === 'Kyogre' && !pokemon.transformed) {
|
|
591
|
+
pokemon.formeChange('Kyogre-Primal', this.effect, true);
|
|
591
592
|
}
|
|
592
593
|
},
|
|
593
|
-
onPrimal(pokemon) {
|
|
594
|
-
pokemon.formeChange('Kyogre-Primal', this.effect, true);
|
|
595
|
-
},
|
|
596
594
|
onTakeItem(item, source) {
|
|
597
595
|
if (source.baseSpecies.baseSpecies === 'Kyogre')
|
|
598
596
|
return false;
|
|
599
597
|
return true;
|
|
600
598
|
},
|
|
601
599
|
itemUser: ["Kyogre"],
|
|
600
|
+
isPrimalOrb: true,
|
|
602
601
|
num: 535,
|
|
603
602
|
gen: 6,
|
|
604
603
|
isNonstandard: "Past",
|
|
@@ -632,14 +631,14 @@ exports.Items = {
|
|
|
632
631
|
fling: {
|
|
633
632
|
basePower: 30,
|
|
634
633
|
},
|
|
635
|
-
|
|
634
|
+
onSwitchInPriority: -2,
|
|
635
|
+
onStart(pokemon) {
|
|
636
636
|
this.effectState.started = true;
|
|
637
|
+
this.effect.onUpdate.call(this, pokemon);
|
|
637
638
|
},
|
|
638
639
|
onUpdate(pokemon) {
|
|
639
640
|
if (!this.effectState.started || pokemon.transformed)
|
|
640
641
|
return;
|
|
641
|
-
if (this.queue.peek(true)?.choice === 'runSwitch')
|
|
642
|
-
return;
|
|
643
642
|
if (pokemon.hasAbility('protosynthesis') && !this.field.isWeather('sunnyday') && pokemon.useItem()) {
|
|
644
643
|
pokemon.addVolatile('protosynthesis');
|
|
645
644
|
}
|
|
@@ -1680,6 +1679,7 @@ exports.Items = {
|
|
|
1680
1679
|
fling: {
|
|
1681
1680
|
basePower: 10,
|
|
1682
1681
|
},
|
|
1682
|
+
onSwitchInPriority: -1,
|
|
1683
1683
|
onStart(pokemon) {
|
|
1684
1684
|
if (!pokemon.ignoringItem() && this.field.isTerrain('electricterrain')) {
|
|
1685
1685
|
pokemon.useItem();
|
|
@@ -2377,6 +2377,7 @@ exports.Items = {
|
|
|
2377
2377
|
fling: {
|
|
2378
2378
|
basePower: 10,
|
|
2379
2379
|
},
|
|
2380
|
+
onSwitchInPriority: -1,
|
|
2380
2381
|
onStart(pokemon) {
|
|
2381
2382
|
if (!pokemon.ignoringItem() && this.field.isTerrain('grassyterrain')) {
|
|
2382
2383
|
pokemon.useItem();
|
|
@@ -3893,20 +3894,40 @@ exports.Items = {
|
|
|
3893
3894
|
onFoeAfterBoost(boost, target, source, effect) {
|
|
3894
3895
|
if (effect?.name === 'Opportunist' || effect?.name === 'Mirror Herb')
|
|
3895
3896
|
return;
|
|
3896
|
-
|
|
3897
|
-
|
|
3897
|
+
if (!this.effectState.boosts)
|
|
3898
|
+
this.effectState.boosts = {};
|
|
3899
|
+
const boostPlus = this.effectState.boosts;
|
|
3898
3900
|
let i;
|
|
3899
3901
|
for (i in boost) {
|
|
3900
3902
|
if (boost[i] > 0) {
|
|
3901
|
-
boostPlus[i] = boost[i];
|
|
3902
|
-
|
|
3903
|
+
boostPlus[i] = (boostPlus[i] || 0) + boost[i];
|
|
3904
|
+
this.effectState.ready = true;
|
|
3903
3905
|
}
|
|
3904
3906
|
}
|
|
3905
|
-
|
|
3907
|
+
},
|
|
3908
|
+
onAnySwitchInPriority: -3,
|
|
3909
|
+
onAnySwitchIn() {
|
|
3910
|
+
if (!this.effectState.ready || !this.effectState.boosts)
|
|
3906
3911
|
return;
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3912
|
+
this.effectState.target.useItem();
|
|
3913
|
+
},
|
|
3914
|
+
onAnyAfterMove() {
|
|
3915
|
+
if (!this.effectState.ready || !this.effectState.boosts)
|
|
3916
|
+
return;
|
|
3917
|
+
this.effectState.target.useItem();
|
|
3918
|
+
},
|
|
3919
|
+
onResidualOrder: 29,
|
|
3920
|
+
onResidual(pokemon) {
|
|
3921
|
+
if (!this.effectState.ready || !this.effectState.boosts)
|
|
3922
|
+
return;
|
|
3923
|
+
this.effectState.target.useItem();
|
|
3924
|
+
},
|
|
3925
|
+
onUse(pokemon) {
|
|
3926
|
+
this.boost(this.effectState.boosts, pokemon);
|
|
3927
|
+
},
|
|
3928
|
+
onEnd() {
|
|
3929
|
+
delete this.effectState.boosts;
|
|
3930
|
+
delete this.effectState.ready;
|
|
3910
3931
|
},
|
|
3911
3932
|
num: 1883,
|
|
3912
3933
|
gen: 9,
|
|
@@ -3917,6 +3938,7 @@ exports.Items = {
|
|
|
3917
3938
|
fling: {
|
|
3918
3939
|
basePower: 10,
|
|
3919
3940
|
},
|
|
3941
|
+
onSwitchInPriority: -1,
|
|
3920
3942
|
onStart(pokemon) {
|
|
3921
3943
|
if (!pokemon.ignoringItem() && this.field.isTerrain('mistyterrain')) {
|
|
3922
3944
|
pokemon.useItem();
|
|
@@ -4620,6 +4642,7 @@ exports.Items = {
|
|
|
4620
4642
|
fling: {
|
|
4621
4643
|
basePower: 10,
|
|
4622
4644
|
},
|
|
4645
|
+
onSwitchInPriority: -1,
|
|
4623
4646
|
onStart(pokemon) {
|
|
4624
4647
|
if (!pokemon.ignoringItem() && this.field.isTerrain('psychicterrain')) {
|
|
4625
4648
|
pokemon.useItem();
|
|
@@ -4849,20 +4872,19 @@ exports.Items = {
|
|
|
4849
4872
|
redorb: {
|
|
4850
4873
|
name: "Red Orb",
|
|
4851
4874
|
spritenum: 390,
|
|
4875
|
+
onSwitchInPriority: -1,
|
|
4852
4876
|
onSwitchIn(pokemon) {
|
|
4853
|
-
if (pokemon.isActive && pokemon.baseSpecies.name === 'Groudon') {
|
|
4854
|
-
|
|
4877
|
+
if (pokemon.isActive && pokemon.baseSpecies.name === 'Groudon' && !pokemon.transformed) {
|
|
4878
|
+
pokemon.formeChange('Groudon-Primal', this.effect, true);
|
|
4855
4879
|
}
|
|
4856
4880
|
},
|
|
4857
|
-
onPrimal(pokemon) {
|
|
4858
|
-
pokemon.formeChange('Groudon-Primal', this.effect, true);
|
|
4859
|
-
},
|
|
4860
4881
|
onTakeItem(item, source) {
|
|
4861
4882
|
if (source.baseSpecies.baseSpecies === 'Groudon')
|
|
4862
4883
|
return false;
|
|
4863
4884
|
return true;
|
|
4864
4885
|
},
|
|
4865
4886
|
itemUser: ["Groudon"],
|
|
4887
|
+
isPrimalOrb: true,
|
|
4866
4888
|
num: 534,
|
|
4867
4889
|
gen: 6,
|
|
4868
4890
|
isNonstandard: "Past",
|
|
@@ -4997,6 +5019,7 @@ exports.Items = {
|
|
|
4997
5019
|
fling: {
|
|
4998
5020
|
basePower: 100,
|
|
4999
5021
|
},
|
|
5022
|
+
onSwitchInPriority: -1,
|
|
5000
5023
|
onStart(pokemon) {
|
|
5001
5024
|
if (!pokemon.ignoringItem() && this.field.getPseudoWeather('trickroom')) {
|
|
5002
5025
|
pokemon.useItem();
|
|
@@ -7291,6 +7314,13 @@ exports.Items = {
|
|
|
7291
7314
|
}
|
|
7292
7315
|
},
|
|
7293
7316
|
},
|
|
7317
|
+
onAnySwitchInPriority: -2,
|
|
7318
|
+
onAnySwitchIn() {
|
|
7319
|
+
this.effect.onUpdate.call(this, this.effectState.target);
|
|
7320
|
+
},
|
|
7321
|
+
onStart(pokemon) {
|
|
7322
|
+
this.effect.onUpdate.call(this, pokemon);
|
|
7323
|
+
},
|
|
7294
7324
|
onUpdate(pokemon) {
|
|
7295
7325
|
let activate = false;
|
|
7296
7326
|
const boosts = {};
|
|
@@ -7450,7 +7480,7 @@ exports.Items = {
|
|
|
7450
7480
|
basePower: 80,
|
|
7451
7481
|
type: "Poison",
|
|
7452
7482
|
},
|
|
7453
|
-
onResidualOrder:
|
|
7483
|
+
onResidualOrder: 10,
|
|
7454
7484
|
onResidual(pokemon) {
|
|
7455
7485
|
if (pokemon.hp <= pokemon.maxhp / 2) {
|
|
7456
7486
|
pokemon.eatItem();
|
|
@@ -7517,7 +7547,7 @@ exports.Items = {
|
|
|
7517
7547
|
basePower: 80,
|
|
7518
7548
|
type: "Psychic",
|
|
7519
7549
|
},
|
|
7520
|
-
onResidualOrder:
|
|
7550
|
+
onResidualOrder: 10,
|
|
7521
7551
|
onResidual(pokemon) {
|
|
7522
7552
|
if (pokemon.hp <= pokemon.maxhp / 2) {
|
|
7523
7553
|
pokemon.eatItem();
|