{ "version": 3, "sources": ["../../../../../data/mods/gen3/moves.ts"], "sourcesContent": ["/**\r\n * Gen 3 moves\r\n */\r\n\r\nexport const Moves: {[k: string]: ModdedMoveData} = {\r\n\tabsorb: {\r\n\t\tinherit: true,\r\n\t\tpp: 20,\r\n\t},\r\n\tacid: {\r\n\t\tinherit: true,\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tancientpower: {\r\n\t\tinherit: true,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t},\r\n\tastonish: {\r\n\t\tinherit: true,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tif (target.volatiles['minimize']) return 60;\r\n\t\t\treturn 30;\r\n\t\t},\r\n\t},\r\n\tbeatup: {\r\n\t\tinherit: true,\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tpokemon.addVolatile('beatup');\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\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonModifySpAPriority: -101,\r\n\t\t\tonModifySpA(atk, pokemon, defender, move) {\r\n\t\t\t\t// https://www.smogon.com/forums/posts/8992145/\r\n\t\t\t\t// this.add('-activate', pokemon, 'move: Beat Up', '[of] ' + move.allies![0].name);\r\n\t\t\t\tthis.event.modifier = 1;\r\n\t\t\t\treturn move.allies!.shift()!.species.baseStats.atk;\r\n\t\t\t},\r\n\t\t\tonFoeModifySpDPriority: -101,\r\n\t\t\tonFoeModifySpD(def, pokemon) {\r\n\t\t\t\tthis.event.modifier = 1;\r\n\t\t\t\treturn pokemon.species.baseStats.def;\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tbide: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t\tpriority: 0,\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\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' as ID,\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\tblizzard: {\r\n\t\tinherit: true,\r\n\t\tonModifyMove() { },\r\n\t},\r\n\tbrickbreak: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target, source) {\r\n\t\t\t// will shatter screens through sub, before you hit\r\n\t\t\tconst foe = source.side.foe;\r\n\t\t\tfoe.removeSideCondition('reflect');\r\n\t\t\tfoe.removeSideCondition('lightscreen');\r\n\t\t},\r\n\t},\r\n\tcharge: {\r\n\t\tinherit: true,\r\n\t\tboosts: null,\r\n\t},\r\n\tconversion: {\r\n\t\tinherit: true,\r\n\t\tonHit(target) {\r\n\t\t\tconst possibleTypes = target.moveSlots.map(moveSlot => {\r\n\t\t\t\tconst move = this.dex.moves.get(moveSlot.id);\r\n\t\t\t\tif (move.id !== 'curse' && !target.hasType(move.type)) {\r\n\t\t\t\t\treturn move.type;\r\n\t\t\t\t}\r\n\t\t\t\treturn '';\r\n\t\t\t}).filter(type => type);\r\n\t\t\tif (!possibleTypes.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst type = this.sample(possibleTypes);\r\n\r\n\t\t\tif (!target.setType(type)) return false;\r\n\t\t\tthis.add('-start', target, 'typechange', type);\r\n\t\t},\r\n\t},\r\n\tcounter: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target, source, move) {\r\n\t\t\t\tthis.effectState.slot = null;\r\n\t\t\t\tthis.effectState.damage = 0;\r\n\t\t\t},\r\n\t\t\tonRedirectTargetPriority: -1,\r\n\t\t\tonRedirectTarget(target, source, source2) {\r\n\t\t\t\tif (source !== this.effectState.target || !this.effectState.slot) return;\r\n\t\t\t\treturn this.getAtSlot(this.effectState.slot);\r\n\t\t\t},\r\n\t\t\tonDamagePriority: -101,\r\n\t\t\tonDamage(damage, target, source, effect) {\r\n\t\t\t\tif (\r\n\t\t\t\t\teffect.effectType === 'Move' && !source.isAlly(target) &&\r\n\t\t\t\t\t(effect.category === 'Physical' || effect.id === 'hiddenpower')\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.effectState.slot = source.getSlot();\r\n\t\t\t\t\tthis.effectState.damage = 2 * damage;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tcovet: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1, mirror: 1, noassist: 1},\r\n\t},\r\n\tcrunch: {\r\n\t\tinherit: true,\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tdig: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 60,\r\n\t},\r\n\tdisable: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 55,\r\n\t\tflags: {protect: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'disable',\r\n\t\tcondition: {\r\n\t\t\tdurationCallback() {\r\n\t\t\t\treturn this.random(2, 6);\r\n\t\t\t},\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tif (!this.queue.willMove(pokemon)) {\r\n\t\t\t\t\tthis.effectState.duration++;\r\n\t\t\t\t}\r\n\t\t\t\tif (!pokemon.lastMove) {\r\n\t\t\t\t\treturn false;\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 === pokemon.lastMove.id) {\r\n\t\t\t\t\t\tif (!moveSlot.pp) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.add('-start', pokemon, 'Disable', moveSlot.move);\r\n\t\t\t\t\t\t\tthis.effectState.move = pokemon.lastMove.id;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'move: Disable');\r\n\t\t\t},\r\n\t\t\tonBeforeMove(attacker, defender, move) {\r\n\t\t\t\tif (move.id === this.effectState.move) {\r\n\t\t\t\t\tthis.add('cant', attacker, 'Disable', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\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\tdive: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 60,\r\n\t},\r\n\tdoomdesire: {\r\n\t\tinherit: true,\r\n\t\tonTry(source, target) {\r\n\t\t\tif (!target.side.addSlotCondition(target, 'futuremove')) return false;\r\n\t\t\tconst moveData = {\r\n\t\t\t\tname: \"Doom Desire\",\r\n\t\t\t\tbasePower: 120,\r\n\t\t\t\tcategory: \"Physical\",\r\n\t\t\t\tflags: {},\r\n\t\t\t\twillCrit: false,\r\n\t\t\t\ttype: '???',\r\n\t\t\t} as unknown as ActiveMove;\r\n\t\t\tconst damage = this.actions.getDamage(source, target, moveData, true);\r\n\t\t\tObject.assign(target.side.slotConditions[target.position]['futuremove'], {\r\n\t\t\t\tduration: 3,\r\n\t\t\t\tmove: 'doomdesire',\r\n\t\t\t\tsource: source,\r\n\t\t\t\tmoveData: {\r\n\t\t\t\t\tid: 'doomdesire',\r\n\t\t\t\t\tname: \"Doom Desire\",\r\n\t\t\t\t\taccuracy: 85,\r\n\t\t\t\t\tbasePower: 0,\r\n\t\t\t\t\tdamage: damage,\r\n\t\t\t\t\tcategory: \"Physical\",\r\n\t\t\t\t\tflags: {futuremove: 1},\r\n\t\t\t\t\teffectType: 'Move',\r\n\t\t\t\t\ttype: '???',\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tthis.add('-start', source, 'Doom Desire');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t},\r\n\tencore: {\r\n\t\tinherit: true,\r\n\t\tvolatileStatus: 'encore',\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, source) {\r\n\t\t\t\tconst moveIndex = target.lastMove ? target.moves.indexOf(target.lastMove.id) : -1;\r\n\t\t\t\tif (\r\n\t\t\t\t\t!target.lastMove || target.lastMove.flags['failencore'] ||\r\n\t\t\t\t\t!target.moveSlots[moveIndex] || target.moveSlots[moveIndex].pp <= 0\r\n\t\t\t\t) {\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 = target.lastMove.id;\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: 10,\r\n\t\t\tonResidualSubOrder: 14,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (\r\n\t\t\t\t\ttarget.moves.includes(this.effectState.move) &&\r\n\t\t\t\t\ttarget.moveSlots[target.moves.indexOf(this.effectState.move)].pp <= 0\r\n\t\t\t\t) {\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\textrasensory: {\r\n\t\tinherit: true,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tif (target.volatiles['minimize']) return 160;\r\n\t\t\treturn 80;\r\n\t\t},\r\n\t},\r\n\tfakeout: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t},\r\n\tfeintattack: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t},\r\n\tflash: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 70,\r\n\t},\r\n\tfly: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 70,\r\n\t},\r\n\tfollowme: {\r\n\t\tinherit: true,\r\n\t\tvolatileStatus: undefined,\r\n\t\tslotCondition: 'followme',\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target, source, effect) {\r\n\t\t\t\tthis.add('-singleturn', target, 'move: Follow Me');\r\n\t\t\t\tthis.effectState.slot = target.getSlot();\r\n\t\t\t},\r\n\t\t\tonFoeRedirectTargetPriority: 1,\r\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\r\n\t\t\t\tconst userSlot = this.getAtSlot(this.effectState.slot);\r\n\t\t\t\tif (this.validTarget(userSlot, source, move.target)) {\r\n\t\t\t\t\treturn userSlot;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tforesight: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t},\r\n\tfurycutter: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source) {\r\n\t\t\tsource.addVolatile('furycutter');\r\n\t\t},\r\n\t},\r\n\tgigadrain: {\r\n\t\tinherit: true,\r\n\t\tpp: 5,\r\n\t},\r\n\tglare: {\r\n\t\tinherit: true,\r\n\t\tignoreImmunity: false,\r\n\t},\r\n\thiddenpower: {\r\n\t\tinherit: true,\r\n\t\tcategory: \"Physical\",\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tmove.type = pokemon.hpType || 'Dark';\r\n\t\t\tconst specialTypes = ['Fire', 'Water', 'Grass', 'Ice', 'Electric', 'Dark', 'Psychic', 'Dragon'];\r\n\t\t\tmove.category = specialTypes.includes(move.type) ? 'Special' : 'Physical';\r\n\t\t},\r\n\t},\r\n\thighjumpkick: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 85,\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(\"HJK recoil failed\");\r\n\t\t\t\tthis.damage(this.clampIntRange(damage / 2, 1, Math.floor(target.maxhp / 2)), source, source, move);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\thypnosis: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 60,\r\n\t},\r\n\tjumpkick: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 70,\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(\"Jump Kick didn't recoil\");\r\n\t\t\t\tthis.damage(this.clampIntRange(damage / 2, 1, Math.floor(target.maxhp / 2)), source, source, move);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tleafblade: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 70,\r\n\t},\r\n\tlockon: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t},\r\n\tmegadrain: {\r\n\t\tinherit: true,\r\n\t\tpp: 10,\r\n\t},\r\n\tmemento: {\r\n\t\tinherit: true,\r\n\t\taccuracy: true,\r\n\t},\r\n\tmindreader: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t},\r\n\tmimic: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1, bypasssub: 1, allyanim: 1, failencore: 1, noassist: 1, failmimic: 1},\r\n\t},\r\n\tmirrorcoat: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target, source, move) {\r\n\t\t\t\tthis.effectState.slot = null;\r\n\t\t\t\tthis.effectState.damage = 0;\r\n\t\t\t},\r\n\t\t\tonRedirectTargetPriority: -1,\r\n\t\t\tonRedirectTarget(target, source, source2) {\r\n\t\t\t\tif (source !== this.effectState.target || !this.effectState.slot) return;\r\n\t\t\t\treturn this.getAtSlot(this.effectState.slot);\r\n\t\t\t},\r\n\t\t\tonDamagePriority: -101,\r\n\t\t\tonDamage(damage, target, source, effect) {\r\n\t\t\t\tif (\r\n\t\t\t\t\teffect.effectType === 'Move' && !source.isAlly(target) &&\r\n\t\t\t\t\teffect.category === 'Special' && effect.id !== 'hiddenpower'\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.effectState.slot = source.getSlot();\r\n\t\t\t\t\tthis.effectState.damage = 2 * damage;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tmirrormove: {\r\n\t\tinherit: true,\r\n\t\tonTryHit() { },\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst noMirror = [\r\n\t\t\t\t'assist', 'curse', 'doomdesire', 'focuspunch', 'futuresight', 'magiccoat', 'metronome', 'mimic', 'mirrormove', 'naturepower', 'psychup', 'roleplay', 'sketch', 'sleeptalk', 'spikes', 'spitup', 'taunt', 'teeterdance', 'transform',\r\n\t\t\t];\r\n\t\t\tconst lastAttackedBy = pokemon.getLastAttackedBy();\r\n\t\t\tif (!lastAttackedBy?.source.lastMove || !lastAttackedBy.move) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (noMirror.includes(lastAttackedBy.move) || !lastAttackedBy.source.hasMove(lastAttackedBy.move)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(lastAttackedBy.move, pokemon);\r\n\t\t},\r\n\t\ttarget: \"self\",\r\n\t},\r\n\tnaturepower: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 95,\r\n\t\tonHit(target) {\r\n\t\t\tthis.actions.useMove('swift', target);\r\n\t\t},\r\n\t},\r\n\tneedlearm: {\r\n\t\tinherit: true,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tif (target.volatiles['minimize']) return 120;\r\n\t\t\treturn 60;\r\n\t\t},\r\n\t},\r\n\tnightmare: {\r\n\t\tinherit: true,\r\n\t\taccuracy: true,\r\n\t},\r\n\todorsleuth: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t},\r\n\toutrage: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 90,\r\n\t},\r\n\toverheat: {\r\n\t\tinherit: true,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t},\r\n\tpetaldance: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 70,\r\n\t},\r\n\trecover: {\r\n\t\tinherit: true,\r\n\t\tpp: 20,\r\n\t},\r\n\trocksmash: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 20,\r\n\t},\r\n\tsketch: {\r\n\t\tinherit: true,\r\n\t\tflags: {bypasssub: 1, failencore: 1, noassist: 1, failmimic: 1},\r\n\t},\r\n\tsleeptalk: {\r\n\t\tinherit: true,\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 pp = moveSlot.pp;\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({move: moveid, pp: pp});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!moves.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst randomMove = this.sample(moves);\r\n\t\t\tif (!randomMove.pp) {\r\n\t\t\t\tthis.add('cant', pokemon, 'nopp', randomMove.move);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(randomMove.move, pokemon);\r\n\t\t},\r\n\t},\r\n\tspite: {\r\n\t\tinherit: true,\r\n\t\tonHit(target) {\r\n\t\t\tconst roll = this.random(2, 6);\r\n\t\t\tif (target.lastMove && target.deductPP(target.lastMove.id, roll)) {\r\n\t\t\t\tthis.add(\"-activate\", target, 'move: Spite', target.lastMove.id, roll);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t},\r\n\tstockpile: {\r\n\t\tinherit: true,\r\n\t\tpp: 10,\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.effectState.layers = 1;\r\n\t\t\t\tthis.add('-start', target, 'stockpile' + this.effectState.layers);\r\n\t\t\t},\r\n\t\t\tonRestart(target) {\r\n\t\t\t\tif (this.effectState.layers >= 3) return false;\r\n\t\t\t\tthis.effectState.layers++;\r\n\t\t\t\tthis.add('-start', target, 'stockpile' + this.effectState.layers);\r\n\t\t\t},\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.effectState.layers = 0;\r\n\t\t\t\tthis.add('-end', target, 'Stockpile');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tstruggle: {\r\n\t\tinherit: true,\r\n\t\tflags: {contact: 1, protect: 1, noassist: 1, failencore: 1, failmimic: 1},\r\n\t\taccuracy: 100,\r\n\t\trecoil: [1, 4],\r\n\t\tstruggleRecoil: false,\r\n\t},\r\n\tsurf: {\r\n\t\tinherit: true,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t},\r\n\ttaunt: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1, bypasssub: 1},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'move: Taunt');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 10,\r\n\t\t\tonResidualSubOrder: 15,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'move: Taunt', '[silent]');\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.move).category === 'Status') {\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\tonBeforeMove(attacker, defender, move) {\r\n\t\t\t\tif (move.category === 'Status') {\r\n\t\t\t\t\tthis.add('cant', attacker, 'move: Taunt', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tteeterdance: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1},\r\n\t},\r\n\ttickle: {\r\n\t\tinherit: true,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t},\r\n\tuproar: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'Uproar');\r\n\t\t\t\t// 2-5 turns\r\n\t\t\t\tthis.effectState.duration = this.random(2, 6);\r\n\t\t\t},\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (target.volatiles['throatchop']) {\r\n\t\t\t\t\ttarget.removeVolatile('uproar');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\r\n\t\t\t\t\t// don't lock\r\n\t\t\t\t\tdelete target.volatiles['uproar'];\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-start', target, 'Uproar', '[upkeep]');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 10,\r\n\t\t\tonResidualSubOrder: 11,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Uproar');\r\n\t\t\t},\r\n\t\t\tonLockMove: 'uproar',\r\n\t\t\tonAnySetStatus(status, pokemon) {\r\n\t\t\t\tif (status.id === 'slp') {\r\n\t\t\t\t\tif (pokemon === this.effectState.target) {\r\n\t\t\t\t\t\tthis.add('-fail', pokemon, 'slp', '[from] Uproar', '[msg]');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.add('-fail', pokemon, 'slp', '[from] Uproar');\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},\r\n\t},\r\n\tvinewhip: {\r\n\t\tinherit: true,\r\n\t\tpp: 10,\r\n\t},\r\n\tvolttackle: {\r\n\t\tinherit: true,\r\n\t\tsecondary: null,\r\n\t},\r\n\twaterfall: {\r\n\t\tinherit: true,\r\n\t\tsecondary: null,\r\n\t},\r\n\tweatherball: {\r\n\t\tinherit: true,\r\n\t\tonModifyMove(move) {\r\n\t\t\tswitch (this.field.effectiveWeather()) {\r\n\t\t\tcase 'sunnyday':\r\n\t\t\t\tmove.type = 'Fire';\r\n\t\t\t\tmove.category = 'Special';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'raindance':\r\n\t\t\t\tmove.type = 'Water';\r\n\t\t\t\tmove.category = 'Special';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'sandstorm':\r\n\t\t\t\tmove.type = 'Rock';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'hail':\r\n\t\t\t\tmove.type = 'Ice';\r\n\t\t\t\tmove.category = 'Special';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (this.field.effectiveWeather()) move.basePower *= 2;\r\n\t\t},\r\n\t},\r\n\tzapcannon: {\r\n\t\tinherit: true,\r\n\t\tbasePower: 100,\r\n\t},\r\n};\r\n"], "mappings": "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", "names": ["type"] }