@pkmn/sim 0.9.30 → 0.9.31
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 +58 -43
- package/build/cjs/config/formats.js.map +1 -1
- package/build/cjs/data/abilities.js +41 -41
- package/build/cjs/data/abilities.js.map +1 -1
- package/build/cjs/data/aliases.js +2 -2
- package/build/cjs/data/aliases.js.map +1 -1
- package/build/cjs/data/conditions.js +20 -20
- package/build/cjs/data/conditions.js.map +1 -1
- package/build/cjs/data/formats-data.js +1 -1
- package/build/cjs/data/items.js +5 -5
- package/build/cjs/data/items.js.map +1 -1
- package/build/cjs/data/mods/gen1/conditions.js +1 -2
- package/build/cjs/data/mods/gen1/conditions.js.map +1 -1
- package/build/cjs/data/mods/gen1/moves.js +2 -2
- package/build/cjs/data/mods/gen1/moves.js.map +1 -1
- package/build/cjs/data/mods/gen1/pokedex.js.map +1 -1
- package/build/cjs/data/mods/gen1/scripts.js +6 -6
- package/build/cjs/data/mods/gen1/scripts.js.map +1 -1
- package/build/cjs/data/mods/gen2/conditions.js +2 -2
- package/build/cjs/data/mods/gen2/conditions.js.map +1 -1
- package/build/cjs/data/mods/gen2/moves.js +3 -3
- package/build/cjs/data/mods/gen2/moves.js.map +1 -1
- package/build/cjs/data/mods/gen2/rulesets.js.map +1 -1
- package/build/cjs/data/mods/gen2/scripts.js +2 -2
- package/build/cjs/data/mods/gen2/scripts.js.map +1 -1
- package/build/cjs/data/mods/gen3/abilities.js +1 -1
- package/build/cjs/data/mods/gen3/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen3/conditions.js +1 -1
- package/build/cjs/data/mods/gen3/conditions.js.map +1 -1
- package/build/cjs/data/mods/gen3/moves.js +5 -5
- package/build/cjs/data/mods/gen3/moves.js.map +1 -1
- package/build/cjs/data/mods/gen3/scripts.js +2 -2
- package/build/cjs/data/mods/gen3/scripts.js.map +1 -1
- package/build/cjs/data/mods/gen4/abilities.js +4 -4
- package/build/cjs/data/mods/gen4/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen4/conditions.js +1 -1
- package/build/cjs/data/mods/gen4/conditions.js.map +1 -1
- package/build/cjs/data/mods/gen4/items.js +2 -2
- package/build/cjs/data/mods/gen4/items.js.map +1 -1
- package/build/cjs/data/mods/gen4/moves.js +22 -22
- package/build/cjs/data/mods/gen4/moves.js.map +1 -1
- package/build/cjs/data/mods/gen4/scripts.js +1 -1
- package/build/cjs/data/mods/gen4/scripts.js.map +1 -1
- package/build/cjs/data/mods/gen5/abilities.js +1 -1
- package/build/cjs/data/mods/gen5/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen5/conditions.js +2 -2
- package/build/cjs/data/mods/gen5/conditions.js.map +1 -1
- package/build/cjs/data/mods/gen5/moves.js +6 -6
- package/build/cjs/data/mods/gen5/moves.js.map +1 -1
- package/build/cjs/data/mods/gen5/pokedex.js.map +1 -1
- package/build/cjs/data/mods/gen6/abilities.js +2 -2
- package/build/cjs/data/mods/gen6/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen6/moves.js +1 -1
- package/build/cjs/data/mods/gen6/moves.js.map +1 -1
- package/build/cjs/data/mods/gen6/pokedex.js.map +1 -1
- package/build/cjs/data/mods/gen7/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen7/moves.js +8 -8
- package/build/cjs/data/mods/gen7/moves.js.map +1 -1
- package/build/cjs/data/mods/gen7/pokedex.js.map +1 -1
- package/build/cjs/data/mods/gen8/abilities.js.map +1 -1
- package/build/cjs/data/mods/gen8/moves.js.map +1 -1
- package/build/cjs/data/mods/gen8/pokedex.js.map +1 -1
- package/build/cjs/data/moves.js +105 -103
- package/build/cjs/data/moves.js.map +1 -1
- package/build/cjs/data/pokedex.js.map +1 -1
- package/build/cjs/data/pokemongo.js.map +1 -1
- package/build/cjs/data/rulesets.js +0 -1
- package/build/cjs/data/rulesets.js.map +1 -1
- package/build/cjs/data/tags.js.map +1 -1
- package/build/cjs/data/text/abilities.js.map +1 -1
- package/build/cjs/data/text/default.js.map +1 -1
- package/build/cjs/data/text/items.js.map +1 -1
- package/build/cjs/data/text/moves.js.map +1 -1
- package/build/cjs/data/typechart.js.map +1 -1
- package/build/cjs/lib/utils.d.ts +5 -5
- package/build/cjs/lib/utils.js +21 -11
- package/build/cjs/lib/utils.js.map +1 -1
- package/build/cjs/sim/battle-actions.js +8 -8
- package/build/cjs/sim/battle-actions.js.map +1 -1
- package/build/cjs/sim/battle-queue.js +0 -1
- package/build/cjs/sim/battle-queue.js.map +1 -1
- package/build/cjs/sim/battle-stream.d.ts +3 -2
- package/build/cjs/sim/battle-stream.js +1 -1
- package/build/cjs/sim/battle-stream.js.map +1 -1
- package/build/cjs/sim/battle.d.ts +8 -8
- package/build/cjs/sim/battle.js +41 -44
- package/build/cjs/sim/battle.js.map +1 -1
- package/build/cjs/sim/dex-abilities.js.map +1 -1
- 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 +1 -1
- package/build/cjs/sim/dex-data.js.map +1 -1
- package/build/cjs/sim/dex-formats.d.ts +1 -0
- package/build/cjs/sim/dex-formats.js +95 -37
- package/build/cjs/sim/dex-formats.js.map +1 -1
- package/build/cjs/sim/dex-items.js.map +1 -1
- package/build/cjs/sim/dex-moves.js +2 -3
- package/build/cjs/sim/dex-moves.js.map +1 -1
- package/build/cjs/sim/exported-global-types.d.ts +1 -9
- package/build/cjs/sim/field.d.ts +1 -1
- package/build/cjs/sim/field.js +3 -3
- package/build/cjs/sim/field.js.map +1 -1
- package/build/cjs/sim/global-types.d.ts +1 -9
- package/build/cjs/sim/pokemon.d.ts +14 -25
- package/build/cjs/sim/pokemon.js +21 -22
- package/build/cjs/sim/pokemon.js.map +1 -1
- package/build/cjs/sim/side.d.ts +105 -11
- package/build/cjs/sim/side.js +6 -6
- package/build/cjs/sim/side.js.map +1 -1
- package/build/cjs/sim/state.d.ts +1 -1
- package/build/cjs/sim/state.js +3 -3
- package/build/cjs/sim/state.js.map +1 -1
- package/build/cjs/sim/team-validator.d.ts +2 -1
- package/build/cjs/sim/team-validator.js +37 -27
- package/build/cjs/sim/team-validator.js.map +1 -1
- package/build/cjs/sim/tools/random-player-ai.d.ts +4 -3
- package/build/cjs/sim/tools/random-player-ai.js +6 -7
- package/build/cjs/sim/tools/random-player-ai.js.map +1 -1
- package/build/cjs/sim/tools/runner.d.ts +2 -2
- package/build/cjs/sim/tools/runner.js +1 -1
- package/build/cjs/sim/tools/runner.js.map +1 -1
- package/build/esm/config/formats.mjs +58 -43
- package/build/esm/config/formats.mjs.map +1 -1
- package/build/esm/data/abilities.mjs +41 -41
- package/build/esm/data/abilities.mjs.map +1 -1
- package/build/esm/data/aliases.mjs +2 -2
- package/build/esm/data/aliases.mjs.map +1 -1
- package/build/esm/data/conditions.mjs +20 -20
- package/build/esm/data/conditions.mjs.map +1 -1
- package/build/esm/data/formats-data.mjs +1 -1
- package/build/esm/data/items.mjs +5 -5
- package/build/esm/data/items.mjs.map +1 -1
- package/build/esm/data/mods/gen1/conditions.mjs +1 -2
- package/build/esm/data/mods/gen1/conditions.mjs.map +1 -1
- package/build/esm/data/mods/gen1/moves.mjs +2 -2
- package/build/esm/data/mods/gen1/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen1/pokedex.mjs.map +1 -1
- package/build/esm/data/mods/gen1/scripts.mjs +6 -6
- package/build/esm/data/mods/gen1/scripts.mjs.map +1 -1
- package/build/esm/data/mods/gen2/conditions.mjs +2 -2
- package/build/esm/data/mods/gen2/conditions.mjs.map +1 -1
- package/build/esm/data/mods/gen2/moves.mjs +3 -3
- package/build/esm/data/mods/gen2/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen2/rulesets.mjs.map +1 -1
- package/build/esm/data/mods/gen2/scripts.mjs +2 -2
- package/build/esm/data/mods/gen2/scripts.mjs.map +1 -1
- package/build/esm/data/mods/gen3/abilities.mjs +1 -1
- package/build/esm/data/mods/gen3/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen3/conditions.mjs +1 -1
- package/build/esm/data/mods/gen3/conditions.mjs.map +1 -1
- package/build/esm/data/mods/gen3/moves.mjs +5 -5
- package/build/esm/data/mods/gen3/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen3/scripts.mjs +2 -2
- package/build/esm/data/mods/gen3/scripts.mjs.map +1 -1
- package/build/esm/data/mods/gen4/abilities.mjs +4 -4
- package/build/esm/data/mods/gen4/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen4/conditions.mjs +1 -1
- package/build/esm/data/mods/gen4/conditions.mjs.map +1 -1
- package/build/esm/data/mods/gen4/items.mjs +2 -2
- package/build/esm/data/mods/gen4/items.mjs.map +1 -1
- package/build/esm/data/mods/gen4/moves.mjs +22 -22
- package/build/esm/data/mods/gen4/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen4/scripts.mjs +1 -1
- package/build/esm/data/mods/gen4/scripts.mjs.map +1 -1
- package/build/esm/data/mods/gen5/abilities.mjs +1 -1
- package/build/esm/data/mods/gen5/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen5/conditions.mjs +2 -2
- package/build/esm/data/mods/gen5/conditions.mjs.map +1 -1
- package/build/esm/data/mods/gen5/moves.mjs +6 -6
- package/build/esm/data/mods/gen5/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen5/pokedex.mjs.map +1 -1
- package/build/esm/data/mods/gen6/abilities.mjs +2 -2
- package/build/esm/data/mods/gen6/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen6/moves.mjs +1 -1
- package/build/esm/data/mods/gen6/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen6/pokedex.mjs.map +1 -1
- package/build/esm/data/mods/gen7/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen7/moves.mjs +8 -8
- package/build/esm/data/mods/gen7/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen7/pokedex.mjs.map +1 -1
- package/build/esm/data/mods/gen8/abilities.mjs.map +1 -1
- package/build/esm/data/mods/gen8/moves.mjs.map +1 -1
- package/build/esm/data/mods/gen8/pokedex.mjs.map +1 -1
- package/build/esm/data/moves.mjs +105 -103
- package/build/esm/data/moves.mjs.map +1 -1
- package/build/esm/data/pokedex.mjs.map +1 -1
- package/build/esm/data/pokemongo.mjs.map +1 -1
- package/build/esm/data/rulesets.mjs +0 -1
- package/build/esm/data/rulesets.mjs.map +1 -1
- package/build/esm/data/tags.mjs.map +1 -1
- package/build/esm/data/text/abilities.mjs.map +1 -1
- package/build/esm/data/text/default.mjs.map +1 -1
- package/build/esm/data/text/items.mjs.map +1 -1
- package/build/esm/data/text/moves.mjs.map +1 -1
- package/build/esm/data/typechart.mjs.map +1 -1
- package/build/esm/lib/utils.d.mts +5 -5
- package/build/esm/lib/utils.mjs +21 -11
- package/build/esm/lib/utils.mjs.map +1 -1
- package/build/esm/sim/battle-actions.mjs +8 -8
- package/build/esm/sim/battle-actions.mjs.map +1 -1
- package/build/esm/sim/battle-queue.mjs +0 -1
- package/build/esm/sim/battle-queue.mjs.map +1 -1
- package/build/esm/sim/battle-stream.d.mts +3 -2
- package/build/esm/sim/battle-stream.mjs +1 -1
- package/build/esm/sim/battle-stream.mjs.map +1 -1
- package/build/esm/sim/battle.d.mts +8 -8
- package/build/esm/sim/battle.mjs +41 -44
- package/build/esm/sim/battle.mjs.map +1 -1
- package/build/esm/sim/dex-abilities.mjs.map +1 -1
- package/build/esm/sim/dex-conditions.mjs +2 -2
- 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 +1 -0
- package/build/esm/sim/dex-formats.mjs +95 -37
- package/build/esm/sim/dex-formats.mjs.map +1 -1
- package/build/esm/sim/dex-items.mjs.map +1 -1
- package/build/esm/sim/dex-moves.mjs +2 -3
- package/build/esm/sim/dex-moves.mjs.map +1 -1
- package/build/esm/sim/exported-global-types.d.mts +1 -9
- package/build/esm/sim/field.d.mts +1 -1
- package/build/esm/sim/field.mjs +3 -3
- package/build/esm/sim/field.mjs.map +1 -1
- package/build/esm/sim/global-types.d.mts +1 -9
- package/build/esm/sim/pokemon.d.mts +14 -25
- package/build/esm/sim/pokemon.mjs +21 -22
- package/build/esm/sim/pokemon.mjs.map +1 -1
- package/build/esm/sim/side.d.mts +105 -11
- package/build/esm/sim/side.mjs +6 -6
- package/build/esm/sim/side.mjs.map +1 -1
- package/build/esm/sim/state.d.mts +1 -1
- package/build/esm/sim/state.mjs +3 -3
- package/build/esm/sim/state.mjs.map +1 -1
- package/build/esm/sim/team-validator.d.mts +2 -1
- package/build/esm/sim/team-validator.mjs +37 -27
- package/build/esm/sim/team-validator.mjs.map +1 -1
- package/build/esm/sim/tools/random-player-ai.d.mts +4 -3
- package/build/esm/sim/tools/random-player-ai.mjs +6 -7
- package/build/esm/sim/tools/random-player-ai.mjs.map +1 -1
- package/build/esm/sim/tools/runner.d.mts +2 -2
- package/build/esm/sim/tools/runner.mjs +1 -1
- package/build/esm/sim/tools/runner.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -231,7 +231,7 @@ export const Abilities = {
|
|
|
231
231
|
const armorTailHolder = this.effectState.target;
|
|
232
232
|
if ((source.isAlly(armorTailHolder) || move.target === 'all') && move.priority > 0.1) {
|
|
233
233
|
this.attrLastMove('[still]');
|
|
234
|
-
this.add('cant', armorTailHolder, 'ability: Armor Tail', move,
|
|
234
|
+
this.add('cant', armorTailHolder, 'ability: Armor Tail', move, `[of] ${target}`);
|
|
235
235
|
return false;
|
|
236
236
|
}
|
|
237
237
|
},
|
|
@@ -245,7 +245,7 @@ export const Abilities = {
|
|
|
245
245
|
if (['attract', 'disable', 'encore', 'healblock', 'taunt', 'torment'].includes(status.id)) {
|
|
246
246
|
if (effect.effectType === 'Move') {
|
|
247
247
|
const effectHolder = this.effectState.target;
|
|
248
|
-
this.add('-block', target, 'ability: Aroma Veil',
|
|
248
|
+
this.add('-block', target, 'ability: Aroma Veil', `[of] ${effectHolder}`);
|
|
249
249
|
}
|
|
250
250
|
return null;
|
|
251
251
|
}
|
|
@@ -459,7 +459,7 @@ export const Abilities = {
|
|
|
459
459
|
if (boost.def && boost.def < 0) {
|
|
460
460
|
delete boost.def;
|
|
461
461
|
if (!effect.secondaries && effect.id !== 'octolock') {
|
|
462
|
-
this.add("-fail", target, "unboost", "Defense", "[from] ability: Big Pecks",
|
|
462
|
+
this.add("-fail", target, "unboost", "Defense", "[from] ability: Big Pecks", `[of] ${target}`);
|
|
463
463
|
}
|
|
464
464
|
}
|
|
465
465
|
},
|
|
@@ -544,7 +544,7 @@ export const Abilities = {
|
|
|
544
544
|
}
|
|
545
545
|
}
|
|
546
546
|
if (showMsg && !effect.secondaries && effect.id !== 'octolock') {
|
|
547
|
-
this.add("-fail", target, "unboost", "[from] ability: Clear Body",
|
|
547
|
+
this.add("-fail", target, "unboost", "[from] ability: Clear Body", `[of] ${target}`);
|
|
548
548
|
}
|
|
549
549
|
},
|
|
550
550
|
flags: { breakable: 1 },
|
|
@@ -642,7 +642,7 @@ export const Abilities = {
|
|
|
642
642
|
// Cancel all actions this turn for pokemon if applicable
|
|
643
643
|
this.queue.cancelAction(pokemon);
|
|
644
644
|
// Add volatiles to both pokemon
|
|
645
|
-
this.add('-activate', pokemon, 'ability: Commander',
|
|
645
|
+
this.add('-activate', pokemon, 'ability: Commander', `[of] ${ally}`);
|
|
646
646
|
pokemon.addVolatile('commanding');
|
|
647
647
|
ally.addVolatile('commanded', pokemon);
|
|
648
648
|
// Continued in conditions.ts in the volatiles
|
|
@@ -800,7 +800,7 @@ export const Abilities = {
|
|
|
800
800
|
onStart(pokemon) {
|
|
801
801
|
for (const ally of pokemon.adjacentAllies()) {
|
|
802
802
|
ally.clearBoosts();
|
|
803
|
-
this.add('-clearboost', ally, '[from] ability: Curious Medicine',
|
|
803
|
+
this.add('-clearboost', ally, '[from] ability: Curious Medicine', `[of] ${pokemon}`);
|
|
804
804
|
}
|
|
805
805
|
},
|
|
806
806
|
flags: {},
|
|
@@ -840,7 +840,7 @@ export const Abilities = {
|
|
|
840
840
|
onAnyTryMove(target, source, effect) {
|
|
841
841
|
if (['explosion', 'mindblown', 'mistyexplosion', 'selfdestruct'].includes(effect.id)) {
|
|
842
842
|
this.attrLastMove('[still]');
|
|
843
|
-
this.add('cant', this.effectState.target, 'ability: Damp', effect,
|
|
843
|
+
this.add('cant', this.effectState.target, 'ability: Damp', effect, `[of] ${target}`);
|
|
844
844
|
return false;
|
|
845
845
|
}
|
|
846
846
|
},
|
|
@@ -903,7 +903,7 @@ export const Abilities = {
|
|
|
903
903
|
const dazzlingHolder = this.effectState.target;
|
|
904
904
|
if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) {
|
|
905
905
|
this.attrLastMove('[still]');
|
|
906
|
-
this.add('cant', dazzlingHolder, 'ability: Dazzling', move,
|
|
906
|
+
this.add('cant', dazzlingHolder, 'ability: Dazzling', move, `[of] ${target}`);
|
|
907
907
|
return false;
|
|
908
908
|
}
|
|
909
909
|
},
|
|
@@ -1431,7 +1431,7 @@ export const Abilities = {
|
|
|
1431
1431
|
}
|
|
1432
1432
|
if (showMsg && !effect.secondaries) {
|
|
1433
1433
|
const effectHolder = this.effectState.target;
|
|
1434
|
-
this.add('-block', target, 'ability: Flower Veil',
|
|
1434
|
+
this.add('-block', target, 'ability: Flower Veil', `[of] ${effectHolder}`);
|
|
1435
1435
|
}
|
|
1436
1436
|
},
|
|
1437
1437
|
onAllySetStatus(status, target, source, effect) {
|
|
@@ -1439,7 +1439,7 @@ export const Abilities = {
|
|
|
1439
1439
|
this.debug('interrupting setStatus with Flower Veil');
|
|
1440
1440
|
if (effect.name === 'Synchronize' || (effect.effectType === 'Move' && !effect.secondaries)) {
|
|
1441
1441
|
const effectHolder = this.effectState.target;
|
|
1442
|
-
this.add('-block', target, 'ability: Flower Veil',
|
|
1442
|
+
this.add('-block', target, 'ability: Flower Veil', `[of] ${effectHolder}`);
|
|
1443
1443
|
}
|
|
1444
1444
|
return null;
|
|
1445
1445
|
}
|
|
@@ -1448,7 +1448,7 @@ export const Abilities = {
|
|
|
1448
1448
|
if (target.hasType('Grass') && status.id === 'yawn') {
|
|
1449
1449
|
this.debug('Flower Veil blocking yawn');
|
|
1450
1450
|
const effectHolder = this.effectState.target;
|
|
1451
|
-
this.add('-block', target, 'ability: Flower Veil',
|
|
1451
|
+
this.add('-block', target, 'ability: Flower Veil', `[of] ${effectHolder}`);
|
|
1452
1452
|
return null;
|
|
1453
1453
|
}
|
|
1454
1454
|
},
|
|
@@ -1538,7 +1538,7 @@ export const Abilities = {
|
|
|
1538
1538
|
if (!warnMoves.length)
|
|
1539
1539
|
return;
|
|
1540
1540
|
const [warnMoveName, warnTarget] = this.sample(warnMoves);
|
|
1541
|
-
this.add('-activate', pokemon, 'ability: Forewarn', warnMoveName,
|
|
1541
|
+
this.add('-activate', pokemon, 'ability: Forewarn', warnMoveName, `[of] ${warnTarget}`);
|
|
1542
1542
|
},
|
|
1543
1543
|
flags: {},
|
|
1544
1544
|
name: "Forewarn",
|
|
@@ -1561,7 +1561,7 @@ export const Abilities = {
|
|
|
1561
1561
|
onStart(pokemon) {
|
|
1562
1562
|
for (const target of pokemon.foes()) {
|
|
1563
1563
|
if (target.item) {
|
|
1564
|
-
this.add('-item', target, target.getItem().name, '[from] ability: Frisk',
|
|
1564
|
+
this.add('-item', target, target.getItem().name, '[from] ability: Frisk', `[of] ${pokemon}`);
|
|
1565
1565
|
}
|
|
1566
1566
|
}
|
|
1567
1567
|
},
|
|
@@ -1583,7 +1583,7 @@ export const Abilities = {
|
|
|
1583
1583
|
}
|
|
1584
1584
|
}
|
|
1585
1585
|
if (showMsg && !effect.secondaries && effect.id !== 'octolock') {
|
|
1586
|
-
this.add("-fail", target, "unboost", "[from] ability: Full Metal Body",
|
|
1586
|
+
this.add("-fail", target, "unboost", "[from] ability: Full Metal Body", `[of] ${target}`);
|
|
1587
1587
|
}
|
|
1588
1588
|
},
|
|
1589
1589
|
flags: {},
|
|
@@ -1971,7 +1971,7 @@ export const Abilities = {
|
|
|
1971
1971
|
if (boost.atk && boost.atk < 0) {
|
|
1972
1972
|
delete boost.atk;
|
|
1973
1973
|
if (!effect.secondaries) {
|
|
1974
|
-
this.add("-fail", target, "unboost", "Attack", "[from] ability: Hyper Cutter",
|
|
1974
|
+
this.add("-fail", target, "unboost", "Attack", "[from] ability: Hyper Cutter", `[of] ${target}`);
|
|
1975
1975
|
}
|
|
1976
1976
|
}
|
|
1977
1977
|
},
|
|
@@ -2078,7 +2078,7 @@ export const Abilities = {
|
|
|
2078
2078
|
if (boost.accuracy && boost.accuracy < 0) {
|
|
2079
2079
|
delete boost.accuracy;
|
|
2080
2080
|
if (!effect.secondaries) {
|
|
2081
|
-
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Illuminate",
|
|
2081
|
+
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Illuminate", `[of] ${target}`);
|
|
2082
2082
|
}
|
|
2083
2083
|
}
|
|
2084
2084
|
},
|
|
@@ -2196,7 +2196,7 @@ export const Abilities = {
|
|
|
2196
2196
|
onTryBoost(boost, target, source, effect) {
|
|
2197
2197
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
2198
2198
|
delete boost.atk;
|
|
2199
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Inner Focus',
|
|
2199
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Inner Focus', `[of] ${target}`);
|
|
2200
2200
|
}
|
|
2201
2201
|
},
|
|
2202
2202
|
flags: { breakable: 1 },
|
|
@@ -2306,7 +2306,7 @@ export const Abilities = {
|
|
|
2306
2306
|
if (boost.accuracy && boost.accuracy < 0) {
|
|
2307
2307
|
delete boost.accuracy;
|
|
2308
2308
|
if (!effect.secondaries) {
|
|
2309
|
-
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Keen Eye",
|
|
2309
|
+
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Keen Eye", `[of] ${target}`);
|
|
2310
2310
|
}
|
|
2311
2311
|
}
|
|
2312
2312
|
},
|
|
@@ -2442,7 +2442,7 @@ export const Abilities = {
|
|
|
2442
2442
|
if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) {
|
|
2443
2443
|
const oldAbility = source.setAbility('lingeringaroma', target);
|
|
2444
2444
|
if (oldAbility) {
|
|
2445
|
-
this.add('-activate', target, 'ability: Lingering Aroma', this.dex.abilities.get(oldAbility).name,
|
|
2445
|
+
this.add('-activate', target, 'ability: Lingering Aroma', this.dex.abilities.get(oldAbility).name, `[of] ${source}`);
|
|
2446
2446
|
}
|
|
2447
2447
|
}
|
|
2448
2448
|
},
|
|
@@ -2453,7 +2453,7 @@ export const Abilities = {
|
|
|
2453
2453
|
},
|
|
2454
2454
|
liquidooze: {
|
|
2455
2455
|
onSourceTryHeal(damage, target, source, effect) {
|
|
2456
|
-
this.debug(
|
|
2456
|
+
this.debug(`Heal is occurring: ${target} <- ${source} :: ${effect.id}`);
|
|
2457
2457
|
const canOoze = ['drain', 'leechseed', 'strengthsap'];
|
|
2458
2458
|
if (canOoze.includes(effect.id)) {
|
|
2459
2459
|
this.damage(damage);
|
|
@@ -2543,7 +2543,7 @@ export const Abilities = {
|
|
|
2543
2543
|
target.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
|
|
2544
2544
|
return;
|
|
2545
2545
|
}
|
|
2546
|
-
this.add('-item', source, yourItem, '[from] ability: Magician',
|
|
2546
|
+
this.add('-item', source, yourItem, '[from] ability: Magician', `[of] ${target}`);
|
|
2547
2547
|
}
|
|
2548
2548
|
},
|
|
2549
2549
|
flags: {},
|
|
@@ -2669,7 +2669,7 @@ export const Abilities = {
|
|
|
2669
2669
|
if (boost.accuracy && boost.accuracy < 0) {
|
|
2670
2670
|
delete boost.accuracy;
|
|
2671
2671
|
if (!effect.secondaries) {
|
|
2672
|
-
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Mind's Eye",
|
|
2672
|
+
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Mind's Eye", `[of] ${target}`);
|
|
2673
2673
|
}
|
|
2674
2674
|
}
|
|
2675
2675
|
},
|
|
@@ -2837,7 +2837,7 @@ export const Abilities = {
|
|
|
2837
2837
|
if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) {
|
|
2838
2838
|
const oldAbility = source.setAbility('mummy', target);
|
|
2839
2839
|
if (oldAbility) {
|
|
2840
|
-
this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(oldAbility).name,
|
|
2840
|
+
this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(oldAbility).name, `[of] ${source}`);
|
|
2841
2841
|
}
|
|
2842
2842
|
}
|
|
2843
2843
|
},
|
|
@@ -2920,7 +2920,7 @@ export const Abilities = {
|
|
|
2920
2920
|
else {
|
|
2921
2921
|
// It's not possible to know what pokemon were cured
|
|
2922
2922
|
// Unlike a -hint, this is real information that battlers need, so we use a -message
|
|
2923
|
-
this.add('-message',
|
|
2923
|
+
this.add('-message', `(${cureList.length} of ${pokemon.side.name}'s pokemon ${cureList.length === 1 ? "was" : "were"} cured by Natural Cure.)`);
|
|
2924
2924
|
for (const pkmn of cureList) {
|
|
2925
2925
|
pkmn.showCure = false;
|
|
2926
2926
|
}
|
|
@@ -3089,7 +3089,7 @@ export const Abilities = {
|
|
|
3089
3089
|
onTryBoost(boost, target, source, effect) {
|
|
3090
3090
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
3091
3091
|
delete boost.atk;
|
|
3092
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Oblivious',
|
|
3092
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Oblivious', `[of] ${target}`);
|
|
3093
3093
|
}
|
|
3094
3094
|
},
|
|
3095
3095
|
flags: { breakable: 1 },
|
|
@@ -3216,7 +3216,7 @@ export const Abilities = {
|
|
|
3216
3216
|
onTryBoost(boost, target, source, effect) {
|
|
3217
3217
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
3218
3218
|
delete boost.atk;
|
|
3219
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Own Tempo',
|
|
3219
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Own Tempo', `[of] ${target}`);
|
|
3220
3220
|
}
|
|
3221
3221
|
},
|
|
3222
3222
|
flags: { breakable: 1 },
|
|
@@ -3275,7 +3275,7 @@ export const Abilities = {
|
|
|
3275
3275
|
return;
|
|
3276
3276
|
if (effect?.status) {
|
|
3277
3277
|
const effectHolder = this.effectState.target;
|
|
3278
|
-
this.add('-block', target, 'ability: Pastel Veil',
|
|
3278
|
+
this.add('-block', target, 'ability: Pastel Veil', `[of] ${effectHolder}`);
|
|
3279
3279
|
}
|
|
3280
3280
|
return false;
|
|
3281
3281
|
},
|
|
@@ -3311,8 +3311,8 @@ export const Abilities = {
|
|
|
3311
3311
|
source.item = yourItem.id;
|
|
3312
3312
|
return;
|
|
3313
3313
|
}
|
|
3314
|
-
this.add('-enditem', source, yourItem, '[silent]', '[from] ability: Pickpocket',
|
|
3315
|
-
this.add('-item', target, yourItem, '[from] ability: Pickpocket',
|
|
3314
|
+
this.add('-enditem', source, yourItem, '[silent]', '[from] ability: Pickpocket', `[of] ${source}`);
|
|
3315
|
+
this.add('-item', target, yourItem, '[from] ability: Pickpocket', `[of] ${source}`);
|
|
3316
3316
|
}
|
|
3317
3317
|
},
|
|
3318
3318
|
flags: {},
|
|
@@ -3461,7 +3461,7 @@ export const Abilities = {
|
|
|
3461
3461
|
if (ability.flags['noreceiver'] || ability.id === 'noability')
|
|
3462
3462
|
return;
|
|
3463
3463
|
if (this.effectState.target.setAbility(ability)) {
|
|
3464
|
-
this.add('-ability', this.effectState.target, ability, '[from] ability: Power of Alchemy',
|
|
3464
|
+
this.add('-ability', this.effectState.target, ability, '[from] ability: Power of Alchemy', `[of] ${target}`);
|
|
3465
3465
|
}
|
|
3466
3466
|
},
|
|
3467
3467
|
flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },
|
|
@@ -3803,7 +3803,7 @@ export const Abilities = {
|
|
|
3803
3803
|
const dazzlingHolder = this.effectState.target;
|
|
3804
3804
|
if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) {
|
|
3805
3805
|
this.attrLastMove('[still]');
|
|
3806
|
-
this.add('cant', dazzlingHolder, 'ability: Queenly Majesty', move,
|
|
3806
|
+
this.add('cant', dazzlingHolder, 'ability: Queenly Majesty', move, `[of] ${target}`);
|
|
3807
3807
|
return false;
|
|
3808
3808
|
}
|
|
3809
3809
|
},
|
|
@@ -3873,7 +3873,7 @@ export const Abilities = {
|
|
|
3873
3873
|
if (ability.flags['noreceiver'] || ability.id === 'noability')
|
|
3874
3874
|
return;
|
|
3875
3875
|
if (this.effectState.target.setAbility(ability)) {
|
|
3876
|
-
this.add('-ability', this.effectState.target, ability, '[from] ability: Receiver',
|
|
3876
|
+
this.add('-ability', this.effectState.target, ability, '[from] ability: Receiver', `[of] ${target}`);
|
|
3877
3877
|
}
|
|
3878
3878
|
},
|
|
3879
3879
|
flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },
|
|
@@ -4187,7 +4187,7 @@ export const Abilities = {
|
|
|
4187
4187
|
onTryBoost(boost, target, source, effect) {
|
|
4188
4188
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
4189
4189
|
delete boost.atk;
|
|
4190
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Scrappy',
|
|
4190
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Scrappy', `[of] ${target}`);
|
|
4191
4191
|
}
|
|
4192
4192
|
},
|
|
4193
4193
|
flags: {},
|
|
@@ -4905,7 +4905,7 @@ export const Abilities = {
|
|
|
4905
4905
|
if (status.id === 'slp') {
|
|
4906
4906
|
this.debug('Sweet Veil interrupts sleep');
|
|
4907
4907
|
const effectHolder = this.effectState.target;
|
|
4908
|
-
this.add('-block', target, 'ability: Sweet Veil',
|
|
4908
|
+
this.add('-block', target, 'ability: Sweet Veil', `[of] ${effectHolder}`);
|
|
4909
4909
|
return null;
|
|
4910
4910
|
}
|
|
4911
4911
|
},
|
|
@@ -4913,7 +4913,7 @@ export const Abilities = {
|
|
|
4913
4913
|
if (status.id === 'yawn') {
|
|
4914
4914
|
this.debug('Sweet Veil blocking yawn');
|
|
4915
4915
|
const effectHolder = this.effectState.target;
|
|
4916
|
-
this.add('-block', target, 'ability: Sweet Veil',
|
|
4916
|
+
this.add('-block', target, 'ability: Sweet Veil', `[of] ${effectHolder}`);
|
|
4917
4917
|
return null;
|
|
4918
4918
|
}
|
|
4919
4919
|
},
|
|
@@ -4946,7 +4946,7 @@ export const Abilities = {
|
|
|
4946
4946
|
source.item = myItem.id;
|
|
4947
4947
|
return;
|
|
4948
4948
|
}
|
|
4949
|
-
this.add('-activate', source, 'ability: Symbiosis', myItem,
|
|
4949
|
+
this.add('-activate', source, 'ability: Symbiosis', myItem, `[of] ${pokemon}`);
|
|
4950
4950
|
},
|
|
4951
4951
|
flags: {},
|
|
4952
4952
|
name: "Symbiosis",
|
|
@@ -5046,7 +5046,7 @@ export const Abilities = {
|
|
|
5046
5046
|
onBasePowerPriority: 30,
|
|
5047
5047
|
onBasePower(basePower, attacker, defender, move) {
|
|
5048
5048
|
const basePowerAfterMultiplier = this.modify(basePower, this.event.modifier);
|
|
5049
|
-
this.debug(
|
|
5049
|
+
this.debug(`Base Power: ${basePowerAfterMultiplier}`);
|
|
5050
5050
|
if (basePowerAfterMultiplier <= 60) {
|
|
5051
5051
|
this.debug('Technician boost');
|
|
5052
5052
|
return this.chainModify(1.5);
|
|
@@ -5286,7 +5286,7 @@ export const Abilities = {
|
|
|
5286
5286
|
const target = this.sample(possibleTargets);
|
|
5287
5287
|
const ability = target.getAbility();
|
|
5288
5288
|
if (pokemon.setAbility(ability)) {
|
|
5289
|
-
this.add('-ability', pokemon, ability, '[from] ability: Trace',
|
|
5289
|
+
this.add('-ability', pokemon, ability, '[from] ability: Trace', `[of] ${target}`);
|
|
5290
5290
|
}
|
|
5291
5291
|
},
|
|
5292
5292
|
flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },
|
|
@@ -5518,10 +5518,10 @@ export const Abilities = {
|
|
|
5518
5518
|
if (!sourceAbility)
|
|
5519
5519
|
return;
|
|
5520
5520
|
if (target.isAlly(source)) {
|
|
5521
|
-
this.add('-activate', target, 'Skill Swap', '', '',
|
|
5521
|
+
this.add('-activate', target, 'Skill Swap', '', '', `[of] ${source}`);
|
|
5522
5522
|
}
|
|
5523
5523
|
else {
|
|
5524
|
-
this.add('-activate', target, 'ability: Wandering Spirit', this.dex.abilities.get(sourceAbility).name, 'Wandering Spirit',
|
|
5524
|
+
this.add('-activate', target, 'ability: Wandering Spirit', this.dex.abilities.get(sourceAbility).name, 'Wandering Spirit', `[of] ${source}`);
|
|
5525
5525
|
}
|
|
5526
5526
|
target.setAbility(sourceAbility);
|
|
5527
5527
|
}
|
|
@@ -5656,7 +5656,7 @@ export const Abilities = {
|
|
|
5656
5656
|
}
|
|
5657
5657
|
}
|
|
5658
5658
|
if (showMsg && !effect.secondaries && effect.id !== 'octolock') {
|
|
5659
|
-
this.add("-fail", target, "unboost", "[from] ability: White Smoke",
|
|
5659
|
+
this.add("-fail", target, "unboost", "[from] ability: White Smoke", `[of] ${target}`);
|
|
5660
5660
|
}
|
|
5661
5661
|
},
|
|
5662
5662
|
flags: { breakable: 1 },
|