{ "version": 3, "sources": ["../../../../../data/mods/gen2/moves.ts"], "sourcesContent": ["/**\r\n * Gen 2 moves\r\n */\r\n\r\nexport const Moves: {[k: string]: ModdedMoveData} = {\r\n\taeroblast: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 3,\r\n\t},\r\n\tbeatup: {\r\n\t\tinherit: true,\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tmove.type = '???';\r\n\t\t\tmove.category = 'Special';\r\n\t\t\tmove.allies = pokemon.side.pokemon.filter(ally => !ally.fainted && !ally.status);\r\n\t\t\tmove.multihit = move.allies.length;\r\n\t\t},\r\n\t},\r\n\tbellydrum: {\r\n\t\tinherit: true,\r\n\t\tonHit(target) {\r\n\t\t\tif (target.boosts.atk >= 6) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (target.hp <= target.maxhp / 2) {\r\n\t\t\t\tthis.boost({atk: 2}, null, null, this.dex.conditions.get('bellydrum2'));\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.directDamage(target.maxhp / 2);\r\n\t\t\tconst originalStage = target.boosts.atk;\r\n\t\t\tlet currentStage = originalStage;\r\n\t\t\tlet boosts = 0;\r\n\t\t\tlet loopStage = 0;\r\n\t\t\twhile (currentStage < 6) {\r\n\t\t\t\tloopStage = currentStage;\r\n\t\t\t\tcurrentStage++;\r\n\t\t\t\tif (currentStage < 6) currentStage++;\r\n\t\t\t\ttarget.boosts.atk = loopStage;\r\n\t\t\t\tif (target.getStat('atk', false, true) < 999) {\r\n\t\t\t\t\ttarget.boosts.atk = currentStage;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\ttarget.boosts.atk = currentStage - 1;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tboosts = target.boosts.atk - originalStage;\r\n\t\t\ttarget.boosts.atk = originalStage;\r\n\t\t\tthis.boost({atk: boosts});\r\n\t\t},\r\n\t},\r\n\tbide: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\treturn this.random(3, 5);\r\n\t\t\t},\r\n\t\t\tonLockMove: 'bide',\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.effectState.totalDamage = 0;\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Bide');\r\n\t\t\t},\r\n\t\t\tonDamagePriority: -101,\r\n\t\t\tonDamage(damage, target, source, move) {\r\n\t\t\t\tif (!move || move.effectType !== 'Move' || !source) return;\r\n\t\t\t\tthis.effectState.totalDamage += damage;\r\n\t\t\t\tthis.effectState.lastDamageSource = source;\r\n\t\t\t},\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tif (this.effectState.duration === 1) {\r\n\t\t\t\t\tthis.add('-end', pokemon, 'move: Bide');\r\n\t\t\t\t\tif (!this.effectState.totalDamage) {\r\n\t\t\t\t\t\tthis.add('-fail', pokemon);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttarget = this.effectState.lastDamageSource;\r\n\t\t\t\t\tif (!target) {\r\n\t\t\t\t\t\tthis.add('-fail', pokemon);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!target.isActive) {\r\n\t\t\t\t\t\tconst possibleTarget = this.getRandomTarget(pokemon, this.dex.moves.get('pound'));\r\n\t\t\t\t\t\tif (!possibleTarget) {\r\n\t\t\t\t\t\t\tthis.add('-miss', pokemon);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttarget = possibleTarget;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst moveData = {\r\n\t\t\t\t\t\tid: 'bide',\r\n\t\t\t\t\t\tname: \"Bide\",\r\n\t\t\t\t\t\taccuracy: 100,\r\n\t\t\t\t\t\tdamage: this.effectState.totalDamage * 2,\r\n\t\t\t\t\t\tcategory: \"Physical\",\r\n\t\t\t\t\t\tpriority: 0,\r\n\t\t\t\t\t\tflags: {contact: 1, protect: 1},\r\n\t\t\t\t\t\teffectType: 'Move',\r\n\t\t\t\t\t\ttype: 'Normal',\r\n\t\t\t\t\t} as unknown as ActiveMove;\r\n\t\t\t\t\tthis.actions.tryMoveHit(target, pokemon, moveData);\r\n\t\t\t\t\tpokemon.removeVolatile('bide');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-activate', pokemon, 'move: Bide');\r\n\t\t\t},\r\n\t\t\tonMoveAborted(pokemon) {\r\n\t\t\t\tpokemon.removeVolatile('bide');\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'move: Bide', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tcounter: {\r\n\t\tinherit: true,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\tconst lastAttackedBy = pokemon.getLastAttackedBy();\r\n\t\t\tif (!lastAttackedBy?.move || !lastAttackedBy.thisTurn) return false;\r\n\r\n\t\t\t// Hidden Power counts as physical\r\n\t\t\tif (this.getCategory(lastAttackedBy.move) === 'Physical' && target.lastMove?.id !== 'sleeptalk') {\r\n\t\t\t\treturn 2 * lastAttackedBy.damage;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tbeforeTurnCallback() {},\r\n\t\tonTry() {},\r\n\t\tcondition: {},\r\n\t\tpriority: -1,\r\n\t},\r\n\tcrabhammer: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 3,\r\n\t},\r\n\tcrosschop: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 3,\r\n\t},\r\n\tcurse: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon, source) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Curse', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonAfterMoveSelf(pokemon) {\r\n\t\t\t\tthis.damage(pokemon.baseMaxhp / 4);\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tdetect: {\r\n\t\tinherit: true,\r\n\t\tpriority: 2,\r\n\t},\r\n\tdig: {\r\n\t\tinherit: true,\r\n\t\tonPrepareHit(target, source) {\r\n\t\t\treturn source.status !== 'slp';\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonImmunity(type, pokemon) {\r\n\t\t\t\tif (type === 'sandstorm') return false;\r\n\t\t\t},\r\n\t\t\tonInvulnerability(target, source, move) {\r\n\t\t\t\tif (move.id === 'earthquake' || move.id === 'magnitude' || move.id === 'fissure') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (['attract', 'curse', 'foresight', 'meanlook', 'mimic', 'nightmare', 'spiderweb', 'transform'].includes(move.id)) {\r\n\t\t\t\t\t// Oversight in the interaction between these moves and the Lock-On effect\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (source.volatiles['lockon'] && target === source.volatiles['lockon'].source) return;\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonSourceBasePower(basePower, target, source, move) {\r\n\t\t\t\tif (move.id === 'earthquake' || move.id === 'magnitude') {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tdoubleedge: {\r\n\t\tinherit: true,\r\n\t\trecoil: [25, 100],\r\n\t},\r\n\tencore: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tdurationCallback() {\r\n\t\t\t\treturn this.random(3, 7);\r\n\t\t\t},\r\n\t\t\tonStart(target) {\r\n\t\t\t\tconst lockedMove = target.lastMoveEncore?.id || '';\r\n\t\t\t\tconst moveIndex = lockedMove ? target.moves.indexOf(lockedMove) : -1;\r\n\t\t\t\tif (moveIndex < 0 || target.lastMoveEncore?.flags['failencore'] || target.moveSlots[moveIndex].pp <= 0) {\r\n\t\t\t\t\t// it failed\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.effectState.move = lockedMove;\r\n\t\t\t\tthis.add('-start', target, 'Encore');\r\n\t\t\t},\r\n\t\t\tonOverrideAction(pokemon) {\r\n\t\t\t\treturn this.effectState.move;\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 13,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tconst lockedMoveIndex = target.moves.indexOf(this.effectState.move);\r\n\t\t\t\tif (lockedMoveIndex >= 0 && target.moveSlots[lockedMoveIndex].pp <= 0) {\r\n\t\t\t\t\t// early termination if you run out of PP\r\n\t\t\t\t\ttarget.removeVolatile('encore');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Encore');\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tif (!this.effectState.move || !pokemon.hasMove(this.effectState.move)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (moveSlot.id !== this.effectState.move) {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tendure: {\r\n\t\tinherit: true,\r\n\t\tpriority: 2,\r\n\t},\r\n\texplosion: {\r\n\t\tinherit: true,\r\n\t\tnoSketch: true,\r\n\t},\r\n\tflail: {\r\n\t\tinherit: true,\r\n\t\tnoDamageVariance: true,\r\n\t\twillCrit: false,\r\n\t},\r\n\tfly: {\r\n\t\tinherit: true,\r\n\t\tonPrepareHit(target, source) {\r\n\t\t\treturn source.status !== 'slp';\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonInvulnerability(target, source, move) {\r\n\t\t\t\tif (move.id === 'gust' || move.id === 'twister' || move.id === 'thunder' || move.id === 'whirlwind') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.id === 'earthquake' || move.id === 'magnitude' || move.id === 'fissure') {\r\n\t\t\t\t\t// These moves miss even during the Lock-On effect\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (['attract', 'curse', 'foresight', 'meanlook', 'mimic', 'nightmare', 'spiderweb', 'transform'].includes(move.id)) {\r\n\t\t\t\t\t// Oversight in the interaction between these moves and the Lock-On effect\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (source.volatiles['lockon'] && target === source.volatiles['lockon'].source) return;\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonSourceBasePower(basePower, target, source, move) {\r\n\t\t\t\tif (move.id === 'gust' || move.id === 'twister') {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tfocusenergy: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Focus Energy');\r\n\t\t\t},\r\n\t\t\tonModifyCritRatio(critRatio) {\r\n\t\t\t\treturn critRatio + 1;\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tforesight: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.volatiles['foresight']) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Foresight');\r\n\t\t\t},\r\n\t\t\tonNegateImmunity(pokemon, type) {\r\n\t\t\t\tif (pokemon.hasType('Ghost') && ['Normal', 'Fighting'].includes(type)) return false;\r\n\t\t\t},\r\n\t\t\tonModifyBoost(boosts) {\r\n\t\t\t\tif (boosts.evasion && boosts.evasion > 0) {\r\n\t\t\t\t\tboosts.evasion = 0;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tfrustration: {\r\n\t\tinherit: true,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\treturn Math.floor(((255 - pokemon.happiness) * 10) / 25) || null;\r\n\t\t},\r\n\t},\r\n\thealbell: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source) {\r\n\t\t\tthis.add('-cureteam', source, '[from] move: Heal Bell');\r\n\t\t\tfor (const pokemon of target.side.pokemon) {\r\n\t\t\t\tpokemon.clearStatus();\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\thighjumpkick: {\r\n\t\tinherit: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tif (target.runImmunity('Fighting')) {\r\n\t\t\t\tconst damage = this.actions.getDamage(source, target, move, true);\r\n\t\t\t\tif (typeof damage !== 'number') throw new Error(\"Couldn't get High Jump Kick recoil\");\r\n\t\t\t\tthis.damage(this.clampIntRange(damage / 8, 1), source, source, move);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tjumpkick: {\r\n\t\tinherit: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tif (target.runImmunity('Fighting')) {\r\n\t\t\t\tconst damage = this.actions.getDamage(source, target, move, true);\r\n\t\t\t\tif (typeof damage !== 'number') throw new Error(\"Couldn't get Jump Kick recoil\");\r\n\t\t\t\tthis.damage(this.clampIntRange(damage / 8, 1), source, source, move);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tkaratechop: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 3,\r\n\t},\r\n\tleechseed: {\r\n\t\tinherit: true,\r\n\t\tonHit() {},\r\n\t\tcondition: {\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'move: Leech Seed');\r\n\t\t\t},\r\n\t\t\tonAfterMoveSelfPriority: 2,\r\n\t\t\tonAfterMoveSelf(pokemon) {\r\n\t\t\t\tif (!pokemon.hp) return;\r\n\t\t\t\tconst leecher = this.getAtSlot(pokemon.volatiles['leechseed'].sourceSlot);\r\n\t\t\t\tif (!leecher || leecher.fainted || leecher.hp <= 0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst toLeech = this.clampIntRange(pokemon.maxhp / 8, 1);\r\n\t\t\t\tconst damage = this.damage(toLeech, pokemon, leecher);\r\n\t\t\t\tif (damage) {\r\n\t\t\t\t\tthis.heal(damage, leecher, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tlightscreen: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\t// Sp. Def boost applied directly in stat calculation\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Light Screen');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 9,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'move: Light Screen');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tlockon: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.volatiles['foresight'] || target.volatiles['lockon']) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonSourceAccuracy(accuracy, target, source, move) {\r\n\t\t\t\tif (move && source === this.effectState.target && target === this.effectState.source) return true;\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tlowkick: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 50,\r\n\t\tbasePowerCallback() {\r\n\t\t\treturn 50;\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t},\r\n\tmeanlook: {\r\n\t\tinherit: true,\r\n\t\tflags: {reflectable: 1, mirror: 1},\r\n\t},\r\n\tmetronome: {\r\n\t\tinherit: true,\r\n\t\tflags: {failencore: 1},\r\n\t\tnoMetronome: [\r\n\t\t\t\"Counter\", \"Destiny Bond\", \"Detect\", \"Endure\", \"Metronome\", \"Mimic\", \"Mirror Coat\", \"Protect\", \"Sketch\", \"Sleep Talk\", \"Struggle\", \"Thief\",\r\n\t\t],\r\n\t\tnoSketch: true,\r\n\t},\r\n\tmimic: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t\tnoSketch: true,\r\n\t\tflags: {protect: 1, bypasssub: 1, allyanim: 1, failencore: 1, noassist: 1},\r\n\t},\r\n\tmindreader: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.volatiles['foresight'] || target.volatiles['lockon']) return false;\r\n\t\t},\r\n\t},\r\n\tmirrorcoat: {\r\n\t\tinherit: true,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\tconst lastAttackedBy = pokemon.getLastAttackedBy();\r\n\t\t\tif (!lastAttackedBy?.move || !lastAttackedBy.thisTurn) return false;\r\n\r\n\t\t\t// Hidden Power counts as physical\r\n\t\t\tif (this.getCategory(lastAttackedBy.move) === 'Special' && target.lastMove?.id !== 'sleeptalk') {\r\n\t\t\t\treturn 2 * lastAttackedBy.damage;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tbeforeTurnCallback() {},\r\n\t\tonTry() {},\r\n\t\tcondition: {},\r\n\t\tpriority: -1,\r\n\t},\r\n\tmirrormove: {\r\n\t\tinherit: true,\r\n\t\tflags: {failencore: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst noMirror = ['metronome', 'mimic', 'mirrormove', 'sketch', 'sleeptalk', 'transform'];\r\n\t\t\tconst target = pokemon.side.foe.active[0];\r\n\t\t\tconst lastMove = target?.lastMove && target?.lastMove.id;\r\n\t\t\tif (!lastMove || (!pokemon.activeTurns && !target.moveThisTurn)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (noMirror.includes(lastMove) || pokemon.moves.includes(lastMove)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(lastMove, pokemon);\r\n\t\t},\r\n\t\tnoSketch: true,\r\n\t},\r\n\tmist: {\r\n\t\tnum: 54,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Mist\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tvolatileStatus: 'mist',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Mist');\r\n\t\t\t},\r\n\t\t\tonTryBoost(boost, target, source, effect) {\r\n\t\t\t\tif (source && target !== source) {\r\n\t\t\t\t\tlet showMsg = false;\r\n\t\t\t\t\tlet i: BoostID;\r\n\t\t\t\t\tfor (i in boost) {\r\n\t\t\t\t\t\tif (boost[i]! < 0) {\r\n\t\t\t\t\t\t\tdelete boost[i];\r\n\t\t\t\t\t\t\tshowMsg = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (showMsg && !(effect as ActiveMove).secondaries) {\r\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Mist');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Ice\",\r\n\t},\r\n\tmoonlight: {\r\n\t\tinherit: true,\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (this.field.isWeather(['sunnyday', 'desolateland'])) {\r\n\t\t\t\tthis.heal(pokemon.maxhp);\r\n\t\t\t} else if (this.field.isWeather(['raindance', 'primordialsea', 'sandstorm', 'hail'])) {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 4);\r\n\t\t\t} else {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 2);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tmorningsun: {\r\n\t\tinherit: true,\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (this.field.isWeather(['sunnyday', 'desolateland'])) {\r\n\t\t\t\tthis.heal(pokemon.maxhp);\r\n\t\t\t} else if (this.field.isWeather(['raindance', 'primordialsea', 'sandstorm', 'hail'])) {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 4);\r\n\t\t\t} else {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 2);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tnightmare: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tif (pokemon.status !== 'slp') {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-start', pokemon, 'Nightmare');\r\n\t\t\t},\r\n\t\t\tonAfterMoveSelfPriority: 1,\r\n\t\t\tonAfterMoveSelf(pokemon) {\r\n\t\t\t\tif (pokemon.status === 'slp') this.damage(pokemon.baseMaxhp / 4);\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\toutrage: {\r\n\t\tinherit: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tsource.addVolatile('lockedmove');\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tpainsplit: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t},\r\n\tperishsong: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-start', target, 'perish0');\r\n\t\t\t\ttarget.faint();\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 4,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tconst duration = pokemon.volatiles['perishsong'].duration;\r\n\t\t\t\tthis.add('-start', pokemon, 'perish' + duration);\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tpetaldance: {\r\n\t\tinherit: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tsource.addVolatile('lockedmove');\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tpoisongas: {\r\n\t\tinherit: true,\r\n\t\tignoreImmunity: false,\r\n\t},\r\n\tpoisonpowder: {\r\n\t\tinherit: true,\r\n\t\tignoreImmunity: false,\r\n\t},\r\n\tprotect: {\r\n\t\tinherit: true,\r\n\t\tpriority: 2,\r\n\t},\r\n\tpsywave: {\r\n\t\tinherit: true,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\treturn this.random(1, pokemon.level + Math.floor(pokemon.level / 2));\r\n\t\t},\r\n\t},\r\n\tpursuit: {\r\n\t\tinherit: true,\r\n\t\tonModifyMove() {},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonBeforeSwitchOut(pokemon) {\r\n\t\t\t\tthis.debug('Pursuit start');\r\n\t\t\t\tlet alreadyAdded = false;\r\n\t\t\t\tfor (const source of this.effectState.sources) {\r\n\t\t\t\t\tif (source.speed < pokemon.speed || (source.speed === pokemon.speed && this.random(2) === 0)) {\r\n\t\t\t\t\t\t// Destiny Bond ends if the switch action \"outspeeds\" the attacker, regardless of host\r\n\t\t\t\t\t\tpokemon.removeVolatile('destinybond');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!this.queue.cancelMove(source) || !source.hp) continue;\r\n\t\t\t\t\tif (!alreadyAdded) {\r\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'move: Pursuit');\r\n\t\t\t\t\t\talreadyAdded = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Run through each action in queue to check if the Pursuit user is supposed to Mega Evolve this turn.\r\n\t\t\t\t\t// If it is, then Mega Evolve before moving.\r\n\t\t\t\t\tif (source.canMegaEvo || source.canUltraBurst) {\r\n\t\t\t\t\t\tfor (const [actionIndex, action] of this.queue.entries()) {\r\n\t\t\t\t\t\t\tif (action.pokemon === source && action.choice === 'megaEvo') {\r\n\t\t\t\t\t\t\t\tthis.actions.runMegaEvo(source);\r\n\t\t\t\t\t\t\t\tthis.queue.list.splice(actionIndex, 1);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.actions.runMove('pursuit', source, source.getLocOf(pokemon));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\trazorleaf: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 3,\r\n\t},\r\n\trazorwind: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 75,\r\n\t\tcritRatio: 3,\r\n\t\tonPrepareHit(target, source) {\r\n\t\t\treturn source.status !== 'slp';\r\n\t\t},\r\n\t},\r\n\treflect: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\t// Defense boost applied directly in stat calculation\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'Reflect');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 9,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'Reflect');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\trest: {\r\n\t\tinherit: true,\r\n\t\tonTry(pokemon) {\r\n\t\t\tif (pokemon.hp < pokemon.maxhp) return;\r\n\t\t\tthis.add('-fail', pokemon);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tif (target.status !== 'slp') {\r\n\t\t\t\tif (!target.setStatus('slp', source, move)) return;\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'slp', '[from] move: Rest');\r\n\t\t\t}\r\n\t\t\ttarget.statusState.time = 3;\r\n\t\t\ttarget.statusState.startTime = 3;\r\n\t\t\ttarget.statusState.source = target;\r\n\t\t\tthis.heal(target.maxhp);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t},\r\n\treturn: {\r\n\t\tinherit: true,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\treturn Math.floor((pokemon.happiness * 10) / 25) || null;\r\n\t\t},\r\n\t},\r\n\treversal: {\r\n\t\tinherit: true,\r\n\t\tnoDamageVariance: true,\r\n\t\twillCrit: false,\r\n\t},\r\n\troar: {\r\n\t\tinherit: true,\r\n\t\tonTryHit() {\r\n\t\t\tfor (const action of this.queue) {\r\n\t\t\t\t// Roar only works if it is the last action in a turn, including when it's called by Sleep Talk\r\n\t\t\t\tif (action.choice === 'move' || action.choice === 'switch') return false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpriority: -1,\r\n\t},\r\n\tsafeguard: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', effect);\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonSetStatus(status, target, source, effect) {\r\n\t\t\t\tif (!effect || !source) return;\r\n\t\t\t\tif (effect.id === 'yawn') return;\r\n\t\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\t\tif (target !== source) {\r\n\t\t\t\t\tthis.debug('interrupting setStatus');\r\n\t\t\t\t\tif (effect.id === 'synchronize' || (effect.effectType === 'Move' && !effect.secondaries)) {\r\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Safeguard');\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTryAddVolatile(status, target, source, effect) {\r\n\t\t\t\tif (!effect || !source) return;\r\n\t\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\t\tif ((status.id === 'confusion' || status.id === 'yawn') && target !== source) {\r\n\t\t\t\t\tif (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Safeguard');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'Safeguard');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 8,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'Safeguard');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tselfdestruct: {\r\n\t\tinherit: true,\r\n\t\tnoSketch: true,\r\n\t},\r\n\tsketch: {\r\n\t\tinherit: true,\r\n\t\tflags: {bypasssub: 1, failencore: 1, noassist: 1},\r\n\t\tonHit() {\r\n\t\t\t// Sketch always fails in Link Battles\r\n\t\t\tthis.add('-nothing');\r\n\t\t},\r\n\t},\r\n\tskullbash: {\r\n\t\tinherit: true,\r\n\t\tonPrepareHit(target, source) {\r\n\t\t\treturn source.status !== 'slp';\r\n\t\t},\r\n\t},\r\n\tskyattack: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 1,\r\n\t\tonPrepareHit(target, source) {\r\n\t\t\treturn source.status !== 'slp';\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t},\r\n\tslash: {\r\n\t\tinherit: true,\r\n\t\tcritRatio: 3,\r\n\t},\r\n\tsleeptalk: {\r\n\t\tinherit: true,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst moves = [];\r\n\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\tconst moveid = moveSlot.id;\r\n\t\t\t\tconst move = this.dex.moves.get(moveid);\r\n\t\t\t\tif (moveid && !move.flags['nosleeptalk'] && !move.flags['charge']) {\r\n\t\t\t\t\tmoves.push(moveid);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet randomMove = '';\r\n\t\t\tif (moves.length) randomMove = this.sample(moves);\r\n\t\t\tif (!randomMove) return false;\r\n\t\t\tthis.actions.useMove(randomMove, pokemon);\r\n\t\t},\r\n\t\tnoSketch: true,\r\n\t},\r\n\tsolarbeam: {\r\n\t\tinherit: true,\r\n\t\tonPrepareHit(target, source) {\r\n\t\t\treturn source.status !== 'slp';\r\n\t\t},\r\n\t\t// Rain weakening done directly in the damage formula\r\n\t\tonBasePower() {},\r\n\t},\r\n\tspiderweb: {\r\n\t\tinherit: true,\r\n\t\tflags: {reflectable: 1, mirror: 1},\r\n\t},\r\n\tspikes: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\t// this is a side condition\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tif (!this.effectState.layers || this.effectState.layers === 0) {\r\n\t\t\t\t\tthis.add('-sidestart', side, 'Spikes');\r\n\t\t\t\t\tthis.effectState.layers = 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSwitchIn(pokemon) {\r\n\t\t\t\tif (!pokemon.runImmunity('Ground')) return;\r\n\t\t\t\tconst damageAmounts = [0, 3];\r\n\t\t\t\tthis.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24);\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tsubstitute: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'Substitute');\r\n\t\t\t\tthis.effectState.hp = Math.floor(target.maxhp / 4);\r\n\t\t\t\tdelete target.volatiles['partiallytrapped'];\r\n\t\t\t},\r\n\t\t\tonTryPrimaryHitPriority: -1,\r\n\t\t\tonTryPrimaryHit(target, source, move) {\r\n\t\t\t\tif (move.stallingMove) {\r\n\t\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t\tif (target === source) {\r\n\t\t\t\t\tthis.debug('sub bypass: self hit');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.id === 'twineedle') {\r\n\t\t\t\t\tmove.secondaries = move.secondaries!.filter(p => !p.kingsrock);\r\n\t\t\t\t}\r\n\t\t\t\tif (move.drain) {\r\n\t\t\t\t\tthis.add('-miss', source);\r\n\t\t\t\t\tthis.hint(\"In Gen 2, draining moves always miss against Substitute.\");\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.category === 'Status') {\r\n\t\t\t\t\tconst SubBlocked = ['leechseed', 'lockon', 'mindreader', 'nightmare', 'painsplit', 'sketch'];\r\n\t\t\t\t\tif (move.id === 'swagger') {\r\n\t\t\t\t\t\t// this is safe, move is a copy\r\n\t\t\t\t\t\tdelete move.volatileStatus;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tmove.status || (move.boosts && move.id !== 'swagger') ||\r\n\t\t\t\t\t\tmove.volatileStatus === 'confusion' || SubBlocked.includes(move.id)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tthis.add('-activate', target, 'Substitute', '[block] ' + move.name);\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tlet damage = this.actions.getDamage(source, target, move);\r\n\t\t\t\tif (!damage) {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t\tdamage = this.runEvent('SubDamage', target, source, move, damage);\r\n\t\t\t\tif (!damage) {\r\n\t\t\t\t\treturn damage;\r\n\t\t\t\t}\r\n\t\t\t\tif (damage > target.volatiles['substitute'].hp) {\r\n\t\t\t\t\tdamage = target.volatiles['substitute'].hp as number;\r\n\t\t\t\t}\r\n\t\t\t\ttarget.volatiles['substitute'].hp -= damage;\r\n\t\t\t\tsource.lastDamage = damage;\r\n\t\t\t\tif (target.volatiles['substitute'].hp <= 0) {\r\n\t\t\t\t\ttarget.removeVolatile('substitute');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'Substitute', '[damage]');\r\n\t\t\t\t}\r\n\t\t\t\tif (move.recoil) {\r\n\t\t\t\t\tthis.damage(1, source, target, 'recoil');\r\n\t\t\t\t}\r\n\t\t\t\tthis.runEvent('AfterSubDamage', target, source, move, damage);\r\n\t\t\t\treturn this.HIT_SUBSTITUTE;\r\n\t\t\t},\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Substitute');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tswagger: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target, pokemon) {\r\n\t\t\tif (target.boosts.atk >= 6 || target.getStat('atk', false, true) === 999) {\r\n\t\t\t\tthis.add('-miss', pokemon);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tsynthesis: {\r\n\t\tinherit: true,\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (this.field.isWeather(['sunnyday', 'desolateland'])) {\r\n\t\t\t\tthis.heal(pokemon.maxhp);\r\n\t\t\t} else if (this.field.isWeather(['raindance', 'primordialsea', 'sandstorm', 'hail'])) {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 4);\r\n\t\t\t} else {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 2);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tthief: {\r\n\t\tinherit: true,\r\n\t\tonAfterHit() {},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tonHit(target, source) {\r\n\t\t\t\tif (source.item || source.volatiles['gem']) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst yourItem = target.takeItem(source);\r\n\t\t\t\tif (!yourItem) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!source.setItem(yourItem)) {\r\n\t\t\t\t\ttarget.item = yourItem.id; // bypass setItem so we don't break choicelock or anything\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-item', source, yourItem, '[from] move: Thief', '[of] ' + target);\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tthrash: {\r\n\t\tinherit: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tsource.addVolatile('lockedmove');\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\ttoxic: {\r\n\t\tinherit: true,\r\n\t\tignoreImmunity: false,\r\n\t},\r\n\ttransform: {\r\n\t\tinherit: true,\r\n\t\tnoSketch: true,\r\n\t},\r\n\ttriattack: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source, move) {\r\n\t\t\tmove.statusRoll = ['par', 'frz', 'brn'][this.random(3)];\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (move.statusRoll) {\r\n\t\t\t\t\ttarget.trySetStatus(move.statusRoll, source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\ttriplekick: {\r\n\t\tinherit: true,\r\n\t\tmultiaccuracy: false,\r\n\t\tmultihit: [1, 3],\r\n\t},\r\n\twhirlwind: {\r\n\t\tinherit: true,\r\n\t\tonTryHit() {\r\n\t\t\tfor (const action of this.queue) {\r\n\t\t\t\t// Whirlwind only works if it is the last action in a turn, including when it's called by Sleep Talk\r\n\t\t\t\tif (action.choice === 'move' || action.choice === 'switch') return false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpriority: -1,\r\n\t},\r\n};\r\n"], "mappings": "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", "names": [] }