@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
|
@@ -234,7 +234,7 @@ exports.Abilities = {
|
|
|
234
234
|
const armorTailHolder = this.effectState.target;
|
|
235
235
|
if ((source.isAlly(armorTailHolder) || move.target === 'all') && move.priority > 0.1) {
|
|
236
236
|
this.attrLastMove('[still]');
|
|
237
|
-
this.add('cant', armorTailHolder, 'ability: Armor Tail', move,
|
|
237
|
+
this.add('cant', armorTailHolder, 'ability: Armor Tail', move, `[of] ${target}`);
|
|
238
238
|
return false;
|
|
239
239
|
}
|
|
240
240
|
},
|
|
@@ -248,7 +248,7 @@ exports.Abilities = {
|
|
|
248
248
|
if (['attract', 'disable', 'encore', 'healblock', 'taunt', 'torment'].includes(status.id)) {
|
|
249
249
|
if (effect.effectType === 'Move') {
|
|
250
250
|
const effectHolder = this.effectState.target;
|
|
251
|
-
this.add('-block', target, 'ability: Aroma Veil',
|
|
251
|
+
this.add('-block', target, 'ability: Aroma Veil', `[of] ${effectHolder}`);
|
|
252
252
|
}
|
|
253
253
|
return null;
|
|
254
254
|
}
|
|
@@ -462,7 +462,7 @@ exports.Abilities = {
|
|
|
462
462
|
if (boost.def && boost.def < 0) {
|
|
463
463
|
delete boost.def;
|
|
464
464
|
if (!effect.secondaries && effect.id !== 'octolock') {
|
|
465
|
-
this.add("-fail", target, "unboost", "Defense", "[from] ability: Big Pecks",
|
|
465
|
+
this.add("-fail", target, "unboost", "Defense", "[from] ability: Big Pecks", `[of] ${target}`);
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
468
|
},
|
|
@@ -547,7 +547,7 @@ exports.Abilities = {
|
|
|
547
547
|
}
|
|
548
548
|
}
|
|
549
549
|
if (showMsg && !effect.secondaries && effect.id !== 'octolock') {
|
|
550
|
-
this.add("-fail", target, "unboost", "[from] ability: Clear Body",
|
|
550
|
+
this.add("-fail", target, "unboost", "[from] ability: Clear Body", `[of] ${target}`);
|
|
551
551
|
}
|
|
552
552
|
},
|
|
553
553
|
flags: { breakable: 1 },
|
|
@@ -645,7 +645,7 @@ exports.Abilities = {
|
|
|
645
645
|
// Cancel all actions this turn for pokemon if applicable
|
|
646
646
|
this.queue.cancelAction(pokemon);
|
|
647
647
|
// Add volatiles to both pokemon
|
|
648
|
-
this.add('-activate', pokemon, 'ability: Commander',
|
|
648
|
+
this.add('-activate', pokemon, 'ability: Commander', `[of] ${ally}`);
|
|
649
649
|
pokemon.addVolatile('commanding');
|
|
650
650
|
ally.addVolatile('commanded', pokemon);
|
|
651
651
|
// Continued in conditions.ts in the volatiles
|
|
@@ -803,7 +803,7 @@ exports.Abilities = {
|
|
|
803
803
|
onStart(pokemon) {
|
|
804
804
|
for (const ally of pokemon.adjacentAllies()) {
|
|
805
805
|
ally.clearBoosts();
|
|
806
|
-
this.add('-clearboost', ally, '[from] ability: Curious Medicine',
|
|
806
|
+
this.add('-clearboost', ally, '[from] ability: Curious Medicine', `[of] ${pokemon}`);
|
|
807
807
|
}
|
|
808
808
|
},
|
|
809
809
|
flags: {},
|
|
@@ -843,7 +843,7 @@ exports.Abilities = {
|
|
|
843
843
|
onAnyTryMove(target, source, effect) {
|
|
844
844
|
if (['explosion', 'mindblown', 'mistyexplosion', 'selfdestruct'].includes(effect.id)) {
|
|
845
845
|
this.attrLastMove('[still]');
|
|
846
|
-
this.add('cant', this.effectState.target, 'ability: Damp', effect,
|
|
846
|
+
this.add('cant', this.effectState.target, 'ability: Damp', effect, `[of] ${target}`);
|
|
847
847
|
return false;
|
|
848
848
|
}
|
|
849
849
|
},
|
|
@@ -906,7 +906,7 @@ exports.Abilities = {
|
|
|
906
906
|
const dazzlingHolder = this.effectState.target;
|
|
907
907
|
if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) {
|
|
908
908
|
this.attrLastMove('[still]');
|
|
909
|
-
this.add('cant', dazzlingHolder, 'ability: Dazzling', move,
|
|
909
|
+
this.add('cant', dazzlingHolder, 'ability: Dazzling', move, `[of] ${target}`);
|
|
910
910
|
return false;
|
|
911
911
|
}
|
|
912
912
|
},
|
|
@@ -1434,7 +1434,7 @@ exports.Abilities = {
|
|
|
1434
1434
|
}
|
|
1435
1435
|
if (showMsg && !effect.secondaries) {
|
|
1436
1436
|
const effectHolder = this.effectState.target;
|
|
1437
|
-
this.add('-block', target, 'ability: Flower Veil',
|
|
1437
|
+
this.add('-block', target, 'ability: Flower Veil', `[of] ${effectHolder}`);
|
|
1438
1438
|
}
|
|
1439
1439
|
},
|
|
1440
1440
|
onAllySetStatus(status, target, source, effect) {
|
|
@@ -1442,7 +1442,7 @@ exports.Abilities = {
|
|
|
1442
1442
|
this.debug('interrupting setStatus with Flower Veil');
|
|
1443
1443
|
if (effect.name === 'Synchronize' || (effect.effectType === 'Move' && !effect.secondaries)) {
|
|
1444
1444
|
const effectHolder = this.effectState.target;
|
|
1445
|
-
this.add('-block', target, 'ability: Flower Veil',
|
|
1445
|
+
this.add('-block', target, 'ability: Flower Veil', `[of] ${effectHolder}`);
|
|
1446
1446
|
}
|
|
1447
1447
|
return null;
|
|
1448
1448
|
}
|
|
@@ -1451,7 +1451,7 @@ exports.Abilities = {
|
|
|
1451
1451
|
if (target.hasType('Grass') && status.id === 'yawn') {
|
|
1452
1452
|
this.debug('Flower Veil blocking yawn');
|
|
1453
1453
|
const effectHolder = this.effectState.target;
|
|
1454
|
-
this.add('-block', target, 'ability: Flower Veil',
|
|
1454
|
+
this.add('-block', target, 'ability: Flower Veil', `[of] ${effectHolder}`);
|
|
1455
1455
|
return null;
|
|
1456
1456
|
}
|
|
1457
1457
|
},
|
|
@@ -1541,7 +1541,7 @@ exports.Abilities = {
|
|
|
1541
1541
|
if (!warnMoves.length)
|
|
1542
1542
|
return;
|
|
1543
1543
|
const [warnMoveName, warnTarget] = this.sample(warnMoves);
|
|
1544
|
-
this.add('-activate', pokemon, 'ability: Forewarn', warnMoveName,
|
|
1544
|
+
this.add('-activate', pokemon, 'ability: Forewarn', warnMoveName, `[of] ${warnTarget}`);
|
|
1545
1545
|
},
|
|
1546
1546
|
flags: {},
|
|
1547
1547
|
name: "Forewarn",
|
|
@@ -1564,7 +1564,7 @@ exports.Abilities = {
|
|
|
1564
1564
|
onStart(pokemon) {
|
|
1565
1565
|
for (const target of pokemon.foes()) {
|
|
1566
1566
|
if (target.item) {
|
|
1567
|
-
this.add('-item', target, target.getItem().name, '[from] ability: Frisk',
|
|
1567
|
+
this.add('-item', target, target.getItem().name, '[from] ability: Frisk', `[of] ${pokemon}`);
|
|
1568
1568
|
}
|
|
1569
1569
|
}
|
|
1570
1570
|
},
|
|
@@ -1586,7 +1586,7 @@ exports.Abilities = {
|
|
|
1586
1586
|
}
|
|
1587
1587
|
}
|
|
1588
1588
|
if (showMsg && !effect.secondaries && effect.id !== 'octolock') {
|
|
1589
|
-
this.add("-fail", target, "unboost", "[from] ability: Full Metal Body",
|
|
1589
|
+
this.add("-fail", target, "unboost", "[from] ability: Full Metal Body", `[of] ${target}`);
|
|
1590
1590
|
}
|
|
1591
1591
|
},
|
|
1592
1592
|
flags: {},
|
|
@@ -1974,7 +1974,7 @@ exports.Abilities = {
|
|
|
1974
1974
|
if (boost.atk && boost.atk < 0) {
|
|
1975
1975
|
delete boost.atk;
|
|
1976
1976
|
if (!effect.secondaries) {
|
|
1977
|
-
this.add("-fail", target, "unboost", "Attack", "[from] ability: Hyper Cutter",
|
|
1977
|
+
this.add("-fail", target, "unboost", "Attack", "[from] ability: Hyper Cutter", `[of] ${target}`);
|
|
1978
1978
|
}
|
|
1979
1979
|
}
|
|
1980
1980
|
},
|
|
@@ -2081,7 +2081,7 @@ exports.Abilities = {
|
|
|
2081
2081
|
if (boost.accuracy && boost.accuracy < 0) {
|
|
2082
2082
|
delete boost.accuracy;
|
|
2083
2083
|
if (!effect.secondaries) {
|
|
2084
|
-
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Illuminate",
|
|
2084
|
+
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Illuminate", `[of] ${target}`);
|
|
2085
2085
|
}
|
|
2086
2086
|
}
|
|
2087
2087
|
},
|
|
@@ -2199,7 +2199,7 @@ exports.Abilities = {
|
|
|
2199
2199
|
onTryBoost(boost, target, source, effect) {
|
|
2200
2200
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
2201
2201
|
delete boost.atk;
|
|
2202
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Inner Focus',
|
|
2202
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Inner Focus', `[of] ${target}`);
|
|
2203
2203
|
}
|
|
2204
2204
|
},
|
|
2205
2205
|
flags: { breakable: 1 },
|
|
@@ -2309,7 +2309,7 @@ exports.Abilities = {
|
|
|
2309
2309
|
if (boost.accuracy && boost.accuracy < 0) {
|
|
2310
2310
|
delete boost.accuracy;
|
|
2311
2311
|
if (!effect.secondaries) {
|
|
2312
|
-
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Keen Eye",
|
|
2312
|
+
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Keen Eye", `[of] ${target}`);
|
|
2313
2313
|
}
|
|
2314
2314
|
}
|
|
2315
2315
|
},
|
|
@@ -2445,7 +2445,7 @@ exports.Abilities = {
|
|
|
2445
2445
|
if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) {
|
|
2446
2446
|
const oldAbility = source.setAbility('lingeringaroma', target);
|
|
2447
2447
|
if (oldAbility) {
|
|
2448
|
-
this.add('-activate', target, 'ability: Lingering Aroma', this.dex.abilities.get(oldAbility).name,
|
|
2448
|
+
this.add('-activate', target, 'ability: Lingering Aroma', this.dex.abilities.get(oldAbility).name, `[of] ${source}`);
|
|
2449
2449
|
}
|
|
2450
2450
|
}
|
|
2451
2451
|
},
|
|
@@ -2456,7 +2456,7 @@ exports.Abilities = {
|
|
|
2456
2456
|
},
|
|
2457
2457
|
liquidooze: {
|
|
2458
2458
|
onSourceTryHeal(damage, target, source, effect) {
|
|
2459
|
-
this.debug(
|
|
2459
|
+
this.debug(`Heal is occurring: ${target} <- ${source} :: ${effect.id}`);
|
|
2460
2460
|
const canOoze = ['drain', 'leechseed', 'strengthsap'];
|
|
2461
2461
|
if (canOoze.includes(effect.id)) {
|
|
2462
2462
|
this.damage(damage);
|
|
@@ -2546,7 +2546,7 @@ exports.Abilities = {
|
|
|
2546
2546
|
target.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
|
|
2547
2547
|
return;
|
|
2548
2548
|
}
|
|
2549
|
-
this.add('-item', source, yourItem, '[from] ability: Magician',
|
|
2549
|
+
this.add('-item', source, yourItem, '[from] ability: Magician', `[of] ${target}`);
|
|
2550
2550
|
}
|
|
2551
2551
|
},
|
|
2552
2552
|
flags: {},
|
|
@@ -2672,7 +2672,7 @@ exports.Abilities = {
|
|
|
2672
2672
|
if (boost.accuracy && boost.accuracy < 0) {
|
|
2673
2673
|
delete boost.accuracy;
|
|
2674
2674
|
if (!effect.secondaries) {
|
|
2675
|
-
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Mind's Eye",
|
|
2675
|
+
this.add("-fail", target, "unboost", "accuracy", "[from] ability: Mind's Eye", `[of] ${target}`);
|
|
2676
2676
|
}
|
|
2677
2677
|
}
|
|
2678
2678
|
},
|
|
@@ -2840,7 +2840,7 @@ exports.Abilities = {
|
|
|
2840
2840
|
if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) {
|
|
2841
2841
|
const oldAbility = source.setAbility('mummy', target);
|
|
2842
2842
|
if (oldAbility) {
|
|
2843
|
-
this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(oldAbility).name,
|
|
2843
|
+
this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(oldAbility).name, `[of] ${source}`);
|
|
2844
2844
|
}
|
|
2845
2845
|
}
|
|
2846
2846
|
},
|
|
@@ -2923,7 +2923,7 @@ exports.Abilities = {
|
|
|
2923
2923
|
else {
|
|
2924
2924
|
// It's not possible to know what pokemon were cured
|
|
2925
2925
|
// Unlike a -hint, this is real information that battlers need, so we use a -message
|
|
2926
|
-
this.add('-message',
|
|
2926
|
+
this.add('-message', `(${cureList.length} of ${pokemon.side.name}'s pokemon ${cureList.length === 1 ? "was" : "were"} cured by Natural Cure.)`);
|
|
2927
2927
|
for (const pkmn of cureList) {
|
|
2928
2928
|
pkmn.showCure = false;
|
|
2929
2929
|
}
|
|
@@ -3092,7 +3092,7 @@ exports.Abilities = {
|
|
|
3092
3092
|
onTryBoost(boost, target, source, effect) {
|
|
3093
3093
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
3094
3094
|
delete boost.atk;
|
|
3095
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Oblivious',
|
|
3095
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Oblivious', `[of] ${target}`);
|
|
3096
3096
|
}
|
|
3097
3097
|
},
|
|
3098
3098
|
flags: { breakable: 1 },
|
|
@@ -3219,7 +3219,7 @@ exports.Abilities = {
|
|
|
3219
3219
|
onTryBoost(boost, target, source, effect) {
|
|
3220
3220
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
3221
3221
|
delete boost.atk;
|
|
3222
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Own Tempo',
|
|
3222
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Own Tempo', `[of] ${target}`);
|
|
3223
3223
|
}
|
|
3224
3224
|
},
|
|
3225
3225
|
flags: { breakable: 1 },
|
|
@@ -3278,7 +3278,7 @@ exports.Abilities = {
|
|
|
3278
3278
|
return;
|
|
3279
3279
|
if (effect?.status) {
|
|
3280
3280
|
const effectHolder = this.effectState.target;
|
|
3281
|
-
this.add('-block', target, 'ability: Pastel Veil',
|
|
3281
|
+
this.add('-block', target, 'ability: Pastel Veil', `[of] ${effectHolder}`);
|
|
3282
3282
|
}
|
|
3283
3283
|
return false;
|
|
3284
3284
|
},
|
|
@@ -3314,8 +3314,8 @@ exports.Abilities = {
|
|
|
3314
3314
|
source.item = yourItem.id;
|
|
3315
3315
|
return;
|
|
3316
3316
|
}
|
|
3317
|
-
this.add('-enditem', source, yourItem, '[silent]', '[from] ability: Pickpocket',
|
|
3318
|
-
this.add('-item', target, yourItem, '[from] ability: Pickpocket',
|
|
3317
|
+
this.add('-enditem', source, yourItem, '[silent]', '[from] ability: Pickpocket', `[of] ${source}`);
|
|
3318
|
+
this.add('-item', target, yourItem, '[from] ability: Pickpocket', `[of] ${source}`);
|
|
3319
3319
|
}
|
|
3320
3320
|
},
|
|
3321
3321
|
flags: {},
|
|
@@ -3464,7 +3464,7 @@ exports.Abilities = {
|
|
|
3464
3464
|
if (ability.flags['noreceiver'] || ability.id === 'noability')
|
|
3465
3465
|
return;
|
|
3466
3466
|
if (this.effectState.target.setAbility(ability)) {
|
|
3467
|
-
this.add('-ability', this.effectState.target, ability, '[from] ability: Power of Alchemy',
|
|
3467
|
+
this.add('-ability', this.effectState.target, ability, '[from] ability: Power of Alchemy', `[of] ${target}`);
|
|
3468
3468
|
}
|
|
3469
3469
|
},
|
|
3470
3470
|
flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },
|
|
@@ -3806,7 +3806,7 @@ exports.Abilities = {
|
|
|
3806
3806
|
const dazzlingHolder = this.effectState.target;
|
|
3807
3807
|
if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) {
|
|
3808
3808
|
this.attrLastMove('[still]');
|
|
3809
|
-
this.add('cant', dazzlingHolder, 'ability: Queenly Majesty', move,
|
|
3809
|
+
this.add('cant', dazzlingHolder, 'ability: Queenly Majesty', move, `[of] ${target}`);
|
|
3810
3810
|
return false;
|
|
3811
3811
|
}
|
|
3812
3812
|
},
|
|
@@ -3876,7 +3876,7 @@ exports.Abilities = {
|
|
|
3876
3876
|
if (ability.flags['noreceiver'] || ability.id === 'noability')
|
|
3877
3877
|
return;
|
|
3878
3878
|
if (this.effectState.target.setAbility(ability)) {
|
|
3879
|
-
this.add('-ability', this.effectState.target, ability, '[from] ability: Receiver',
|
|
3879
|
+
this.add('-ability', this.effectState.target, ability, '[from] ability: Receiver', `[of] ${target}`);
|
|
3880
3880
|
}
|
|
3881
3881
|
},
|
|
3882
3882
|
flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },
|
|
@@ -4190,7 +4190,7 @@ exports.Abilities = {
|
|
|
4190
4190
|
onTryBoost(boost, target, source, effect) {
|
|
4191
4191
|
if (effect.name === 'Intimidate' && boost.atk) {
|
|
4192
4192
|
delete boost.atk;
|
|
4193
|
-
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Scrappy',
|
|
4193
|
+
this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Scrappy', `[of] ${target}`);
|
|
4194
4194
|
}
|
|
4195
4195
|
},
|
|
4196
4196
|
flags: {},
|
|
@@ -4908,7 +4908,7 @@ exports.Abilities = {
|
|
|
4908
4908
|
if (status.id === 'slp') {
|
|
4909
4909
|
this.debug('Sweet Veil interrupts sleep');
|
|
4910
4910
|
const effectHolder = this.effectState.target;
|
|
4911
|
-
this.add('-block', target, 'ability: Sweet Veil',
|
|
4911
|
+
this.add('-block', target, 'ability: Sweet Veil', `[of] ${effectHolder}`);
|
|
4912
4912
|
return null;
|
|
4913
4913
|
}
|
|
4914
4914
|
},
|
|
@@ -4916,7 +4916,7 @@ exports.Abilities = {
|
|
|
4916
4916
|
if (status.id === 'yawn') {
|
|
4917
4917
|
this.debug('Sweet Veil blocking yawn');
|
|
4918
4918
|
const effectHolder = this.effectState.target;
|
|
4919
|
-
this.add('-block', target, 'ability: Sweet Veil',
|
|
4919
|
+
this.add('-block', target, 'ability: Sweet Veil', `[of] ${effectHolder}`);
|
|
4920
4920
|
return null;
|
|
4921
4921
|
}
|
|
4922
4922
|
},
|
|
@@ -4949,7 +4949,7 @@ exports.Abilities = {
|
|
|
4949
4949
|
source.item = myItem.id;
|
|
4950
4950
|
return;
|
|
4951
4951
|
}
|
|
4952
|
-
this.add('-activate', source, 'ability: Symbiosis', myItem,
|
|
4952
|
+
this.add('-activate', source, 'ability: Symbiosis', myItem, `[of] ${pokemon}`);
|
|
4953
4953
|
},
|
|
4954
4954
|
flags: {},
|
|
4955
4955
|
name: "Symbiosis",
|
|
@@ -5049,7 +5049,7 @@ exports.Abilities = {
|
|
|
5049
5049
|
onBasePowerPriority: 30,
|
|
5050
5050
|
onBasePower(basePower, attacker, defender, move) {
|
|
5051
5051
|
const basePowerAfterMultiplier = this.modify(basePower, this.event.modifier);
|
|
5052
|
-
this.debug(
|
|
5052
|
+
this.debug(`Base Power: ${basePowerAfterMultiplier}`);
|
|
5053
5053
|
if (basePowerAfterMultiplier <= 60) {
|
|
5054
5054
|
this.debug('Technician boost');
|
|
5055
5055
|
return this.chainModify(1.5);
|
|
@@ -5289,7 +5289,7 @@ exports.Abilities = {
|
|
|
5289
5289
|
const target = this.sample(possibleTargets);
|
|
5290
5290
|
const ability = target.getAbility();
|
|
5291
5291
|
if (pokemon.setAbility(ability)) {
|
|
5292
|
-
this.add('-ability', pokemon, ability, '[from] ability: Trace',
|
|
5292
|
+
this.add('-ability', pokemon, ability, '[from] ability: Trace', `[of] ${target}`);
|
|
5293
5293
|
}
|
|
5294
5294
|
},
|
|
5295
5295
|
flags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },
|
|
@@ -5521,10 +5521,10 @@ exports.Abilities = {
|
|
|
5521
5521
|
if (!sourceAbility)
|
|
5522
5522
|
return;
|
|
5523
5523
|
if (target.isAlly(source)) {
|
|
5524
|
-
this.add('-activate', target, 'Skill Swap', '', '',
|
|
5524
|
+
this.add('-activate', target, 'Skill Swap', '', '', `[of] ${source}`);
|
|
5525
5525
|
}
|
|
5526
5526
|
else {
|
|
5527
|
-
this.add('-activate', target, 'ability: Wandering Spirit', this.dex.abilities.get(sourceAbility).name, 'Wandering Spirit',
|
|
5527
|
+
this.add('-activate', target, 'ability: Wandering Spirit', this.dex.abilities.get(sourceAbility).name, 'Wandering Spirit', `[of] ${source}`);
|
|
5528
5528
|
}
|
|
5529
5529
|
target.setAbility(sourceAbility);
|
|
5530
5530
|
}
|
|
@@ -5659,7 +5659,7 @@ exports.Abilities = {
|
|
|
5659
5659
|
}
|
|
5660
5660
|
}
|
|
5661
5661
|
if (showMsg && !effect.secondaries && effect.id !== 'octolock') {
|
|
5662
|
-
this.add("-fail", target, "unboost", "[from] ability: White Smoke",
|
|
5662
|
+
this.add("-fail", target, "unboost", "[from] ability: White Smoke", `[of] ${target}`);
|
|
5663
5663
|
}
|
|
5664
5664
|
},
|
|
5665
5665
|
flags: { breakable: 1 },
|