Spaces:
Paused
Paused
| ; | |
| 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 moves_exports = {}; | |
| __export(moves_exports, { | |
| Moves: () => Moves | |
| }); | |
| module.exports = __toCommonJS(moves_exports); | |
| const Moves = { | |
| allyswitch: { | |
| inherit: true, | |
| priority: 1 | |
| }, | |
| assist: { | |
| inherit: true, | |
| flags: { noassist: 1, failcopycat: 1, nosleeptalk: 1 } | |
| }, | |
| copycat: { | |
| inherit: true, | |
| flags: { noassist: 1, failcopycat: 1, nosleeptalk: 1 } | |
| }, | |
| darkvoid: { | |
| inherit: true, | |
| accuracy: 80, | |
| onTry() { | |
| } | |
| }, | |
| destinybond: { | |
| inherit: true, | |
| onPrepareHit(pokemon) { | |
| pokemon.removeVolatile("destinybond"); | |
| } | |
| }, | |
| diamondstorm: { | |
| inherit: true, | |
| self: null, | |
| secondary: { | |
| chance: 50, | |
| self: { | |
| boosts: { | |
| def: 1 | |
| } | |
| } | |
| } | |
| }, | |
| encore: { | |
| inherit: true, | |
| condition: { | |
| duration: 3, | |
| onStart(target) { | |
| const moveIndex = target.lastMove ? target.moves.indexOf(target.lastMove.id) : -1; | |
| if (!target.lastMove || target.lastMove.flags["failencore"] || !target.moveSlots[moveIndex] || target.moveSlots[moveIndex].pp <= 0) { | |
| return false; | |
| } | |
| this.effectState.move = target.lastMove.id; | |
| this.add("-start", target, "Encore"); | |
| if (!this.queue.willMove(target)) { | |
| this.effectState.duration++; | |
| } | |
| }, | |
| onOverrideAction(pokemon, target, move) { | |
| if (move.id !== this.effectState.move) | |
| return this.effectState.move; | |
| }, | |
| onResidualOrder: 16, | |
| onResidual(target) { | |
| const lockedMoveIndex = target.moves.indexOf(this.effectState.move); | |
| if (lockedMoveIndex >= 0 && target.moveSlots[lockedMoveIndex].pp <= 0) { | |
| target.removeVolatile("encore"); | |
| } | |
| }, | |
| onEnd(target) { | |
| this.add("-end", target, "Encore"); | |
| }, | |
| onDisableMove(pokemon) { | |
| if (!this.effectState.move || !pokemon.hasMove(this.effectState.move)) { | |
| return; | |
| } | |
| for (const moveSlot of pokemon.moveSlots) { | |
| if (moveSlot.id !== this.effectState.move) { | |
| pokemon.disableMove(moveSlot.id); | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| fellstinger: { | |
| inherit: true, | |
| basePower: 30, | |
| onAfterMoveSecondarySelf(pokemon, target, move) { | |
| if (!target || target.fainted || target.hp <= 0) | |
| this.boost({ atk: 2 }, pokemon, pokemon, move); | |
| } | |
| }, | |
| flyingpress: { | |
| inherit: true, | |
| basePower: 80 | |
| }, | |
| leechlife: { | |
| inherit: true, | |
| basePower: 20, | |
| pp: 15 | |
| }, | |
| mefirst: { | |
| inherit: true, | |
| flags: { protect: 1, bypasssub: 1, noassist: 1, failcopycat: 1, failmefirst: 1, nosleeptalk: 1 } | |
| }, | |
| minimize: { | |
| inherit: true, | |
| condition: { | |
| noCopy: true, | |
| onSourceModifyDamage(damage, source, target, move) { | |
| const boostedMoves = [ | |
| "stomp", | |
| "steamroller", | |
| "bodyslam", | |
| "flyingpress", | |
| "dragonrush", | |
| "phantomforce", | |
| "heatcrash", | |
| "shadowforce" | |
| ]; | |
| if (boostedMoves.includes(move.id)) { | |
| return this.chainModify(2); | |
| } | |
| }, | |
| onAccuracy(accuracy, target, source, move) { | |
| const boostedMoves = [ | |
| "stomp", | |
| "steamroller", | |
| "bodyslam", | |
| "flyingpress", | |
| "dragonrush", | |
| "phantomforce", | |
| "heatcrash", | |
| "shadowforce" | |
| ]; | |
| if (boostedMoves.includes(move.id)) { | |
| return true; | |
| } | |
| return accuracy; | |
| } | |
| } | |
| }, | |
| metronome: { | |
| inherit: true, | |
| flags: { noassist: 1, failcopycat: 1, nosleeptalk: 1 } | |
| }, | |
| mistyterrain: { | |
| inherit: true, | |
| condition: { | |
| duration: 5, | |
| durationCallback(source, effect) { | |
| if (source?.hasItem("terrainextender")) { | |
| return 8; | |
| } | |
| return 5; | |
| }, | |
| onSetStatus(status, target, source, effect) { | |
| if (!target.isGrounded() || target.isSemiInvulnerable()) | |
| return; | |
| if (effect && (effect.status || effect.id === "yawn")) { | |
| this.add("-activate", target, "move: Misty Terrain"); | |
| } | |
| return false; | |
| }, | |
| onBasePower(basePower, attacker, defender, move) { | |
| if (move.type === "Dragon" && defender.isGrounded() && !defender.isSemiInvulnerable()) { | |
| this.debug("misty terrain weaken"); | |
| return this.chainModify(0.5); | |
| } | |
| }, | |
| onFieldStart(field, source, effect) { | |
| if (effect?.effectType === "Ability") { | |
| this.add("-fieldstart", "move: Misty Terrain", `[from] ability: ${effect}`, `[of] ${source}`); | |
| } else { | |
| this.add("-fieldstart", "move: Misty Terrain"); | |
| } | |
| }, | |
| onFieldResidualOrder: 27, | |
| onFieldResidualSubOrder: 7, | |
| onFieldEnd() { | |
| this.add("-fieldend", "Misty Terrain"); | |
| } | |
| } | |
| }, | |
| mysticalfire: { | |
| inherit: true, | |
| basePower: 65 | |
| }, | |
| naturepower: { | |
| inherit: true, | |
| flags: { nosleeptalk: 1, noassist: 1, failcopycat: 1 } | |
| }, | |
| paraboliccharge: { | |
| inherit: true, | |
| basePower: 50 | |
| }, | |
| partingshot: { | |
| inherit: true, | |
| onHit(target, source) { | |
| this.boost({ atk: -1, spa: -1 }, target, source); | |
| } | |
| }, | |
| powder: { | |
| inherit: true, | |
| condition: { | |
| duration: 1, | |
| onStart(target) { | |
| this.add("-singleturn", target, "Powder"); | |
| }, | |
| onTryMovePriority: 1, | |
| onTryMove(pokemon, target, move) { | |
| if (move.type === "Fire") { | |
| this.add("-activate", pokemon, "move: Powder"); | |
| this.damage(this.clampIntRange(Math.round(pokemon.maxhp / 4), 1)); | |
| this.attrLastMove("[still]"); | |
| return false; | |
| } | |
| } | |
| } | |
| }, | |
| rockblast: { | |
| inherit: true, | |
| flags: { protect: 1, mirror: 1, metronome: 1 } | |
| }, | |
| sheercold: { | |
| inherit: true, | |
| ohko: true | |
| }, | |
| sleeptalk: { | |
| inherit: true, | |
| flags: { nosleeptalk: 1, noassist: 1, failcopycat: 1 } | |
| }, | |
| stockpile: { | |
| inherit: true, | |
| condition: { | |
| noCopy: true, | |
| onStart(target) { | |
| this.effectState.layers = 1; | |
| this.add("-start", target, "stockpile" + this.effectState.layers); | |
| this.boost({ def: 1, spd: 1 }, target, target); | |
| }, | |
| onRestart(target) { | |
| if (this.effectState.layers >= 3) | |
| return false; | |
| this.effectState.layers++; | |
| this.add("-start", target, "stockpile" + this.effectState.layers); | |
| this.boost({ def: 1, spd: 1 }, target, target); | |
| }, | |
| onEnd(target) { | |
| const layers = this.effectState.layers * -1; | |
| this.effectState.layers = 0; | |
| this.boost({ def: layers, spd: layers }, target, target); | |
| this.add("-end", target, "Stockpile"); | |
| } | |
| } | |
| }, | |
| suckerpunch: { | |
| inherit: true, | |
| basePower: 80 | |
| }, | |
| swagger: { | |
| inherit: true, | |
| accuracy: 90 | |
| }, | |
| tackle: { | |
| inherit: true, | |
| basePower: 50 | |
| }, | |
| thousandarrows: { | |
| inherit: true, | |
| isNonstandard: "Unobtainable" | |
| }, | |
| thousandwaves: { | |
| inherit: true, | |
| isNonstandard: "Unobtainable" | |
| }, | |
| thunderwave: { | |
| inherit: true, | |
| accuracy: 100 | |
| }, | |
| watershuriken: { | |
| inherit: true, | |
| category: "Physical" | |
| }, | |
| wideguard: { | |
| inherit: true, | |
| condition: { | |
| duration: 1, | |
| onSideStart(target, source) { | |
| this.add("-singleturn", source, "Wide Guard"); | |
| }, | |
| onTryHitPriority: 4, | |
| onTryHit(target, source, effect) { | |
| if (effect && (effect.category === "Status" || effect.target !== "allAdjacent" && effect.target !== "allAdjacentFoes")) { | |
| return; | |
| } | |
| this.add("-activate", target, "move: Wide Guard"); | |
| const lockedmove = source.getVolatile("lockedmove"); | |
| if (lockedmove) { | |
| if (source.volatiles["lockedmove"].duration === 2) { | |
| delete source.volatiles["lockedmove"]; | |
| } | |
| } | |
| return null; | |
| } | |
| } | |
| } | |
| }; | |
| //# sourceMappingURL=moves.js.map | |