Spaces:
Running
Running
; | |
var __defProp = Object.defineProperty; | |
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | |
var __getOwnPropNames = Object.getOwnPropertyNames; | |
var __hasOwnProp = Object.prototype.hasOwnProperty; | |
var __export = (target, all) => { | |
for (var name in all) | |
__defProp(target, name, { get: all[name], enumerable: true }); | |
}; | |
var __copyProps = (to, from, except, desc) => { | |
if (from && typeof from === "object" || typeof from === "function") { | |
for (let key of __getOwnPropNames(from)) | |
if (!__hasOwnProp.call(to, key) && key !== except) | |
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | |
} | |
return to; | |
}; | |
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | |
var abilities_exports = {}; | |
__export(abilities_exports, { | |
Abilities: () => Abilities | |
}); | |
module.exports = __toCommonJS(abilities_exports); | |
const Abilities = { | |
anticipation: { | |
inherit: true, | |
onStart(pokemon) { | |
for (const target of pokemon.foes()) { | |
for (const moveSlot of target.moveSlots) { | |
const move = this.dex.moves.get(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.randomFoe(); | |
if (target?.item) { | |
this.add("-item", "", target.getItem().name, "[from] ability: Frisk", `[of] ${pokemon}`); | |
} | |
} | |
}, | |
infiltrator: { | |
inherit: true, | |
rating: 1.5 | |
}, | |
keeneye: { | |
inherit: true, | |
onModifyMove() { | |
} | |
}, | |
magicbounce: { | |
inherit: true, | |
onAllyTryHitSide(target, source, move) { | |
if (target.isAlly(source) || move.hasBounced || !move.flags["reflectable"]) { | |
return; | |
} | |
const newMove = this.dex.getActiveMove(move.id); | |
newMove.hasBounced = true; | |
newMove.pranksterBoosted = false; | |
this.actions.useMove(newMove, this.effectState.target, { target: source }); | |
return null; | |
} | |
}, | |
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() { | |
}, | |
flags: {}, | |
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() { | |
} | |
} | |
}; | |
//# sourceMappingURL=abilities.js.map | |