mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-04-19 09:07:24 -05:00
This adds some new `data/text/` files, which are the new home for item/move/ability descriptions, as well as in-game messages, in one place for ease of translation.
78 lines
1.7 KiB
TypeScript
78 lines
1.7 KiB
TypeScript
export const Abilities: {[k: string]: ModdedAbilityData} = {
|
|
anticipation: {
|
|
inherit: true,
|
|
onStart(pokemon) {
|
|
for (const target of pokemon.side.foe.active) {
|
|
if (!target || target.fainted) continue;
|
|
for (const moveSlot of target.moveSlots) {
|
|
const move = this.dex.getMove(moveSlot.move);
|
|
if (move.category !== 'Status' && (
|
|
this.dex.getImmunity(move.type, pokemon) && this.dex.getEffectiveness(move.type, pokemon) > 0 ||
|
|
move.ohko
|
|
)) {
|
|
this.add('-ability', pokemon, 'Anticipation');
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
frisk: {
|
|
inherit: true,
|
|
onStart(pokemon) {
|
|
const target = pokemon.side.foe.randomActive();
|
|
if (target?.item) {
|
|
this.add('-item', target, target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon);
|
|
}
|
|
},
|
|
},
|
|
infiltrator: {
|
|
inherit: true,
|
|
rating: 1.5,
|
|
},
|
|
keeneye: {
|
|
inherit: true,
|
|
onModifyMove() {},
|
|
},
|
|
oblivious: {
|
|
inherit: true,
|
|
onUpdate(pokemon) {
|
|
if (pokemon.volatiles['attract']) {
|
|
pokemon.removeVolatile('attract');
|
|
this.add('-end', pokemon, 'move: Attract', '[from] ability: Oblivious');
|
|
}
|
|
},
|
|
onTryHit(pokemon, target, move) {
|
|
if (move.id === 'captivate') {
|
|
this.add('-immune', pokemon, '[from] Oblivious');
|
|
return null;
|
|
}
|
|
},
|
|
rating: 0.5,
|
|
},
|
|
overcoat: {
|
|
inherit: true,
|
|
onTryHit() {},
|
|
rating: 0.5,
|
|
},
|
|
sapsipper: {
|
|
inherit: true,
|
|
onAllyTryHitSide() {},
|
|
},
|
|
serenegrace: {
|
|
inherit: true,
|
|
onModifyMove(move) {
|
|
if (move.secondaries && move.id !== 'secretpower') {
|
|
this.debug('doubling secondary chance');
|
|
for (const secondary of move.secondaries) {
|
|
if (secondary.chance) secondary.chance *= 2;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
soundproof: {
|
|
inherit: true,
|
|
onAllyTryHitSide() {},
|
|
},
|
|
};
|