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