{ "version": 3, "sources": ["../../data/moves.ts"], "sourcesContent": ["// List of flags and their descriptions can be found in sim/dex-moves.ts\n\nexport const Moves: import('../sim/dex-moves').MoveDataTable = {\n\t\"10000000voltthunderbolt\": {\n\t\tnum: 719,\n\t\taccuracy: true,\n\t\tbasePower: 195,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"10,000,000 Volt Thunderbolt\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"pikashuniumz\",\n\t\tcritRatio: 3,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tabsorb: {\n\t\tnum: 71,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tcategory: \"Special\",\n\t\tname: \"Absorb\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Clever\",\n\t},\n\taccelerock: {\n\t\tnum: 709,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Accelerock\",\n\t\tpp: 20,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Cool\",\n\t},\n\tacid: {\n\t\tnum: 51,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Acid\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Clever\",\n\t},\n\tacidarmor: {\n\t\tnum: 151,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Acid Armor\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Poison\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\taciddownpour: {\n\t\tnum: 628,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Acid Downpour\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"poisoniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Cool\",\n\t},\n\tacidspray: {\n\t\tnum: 491,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Acid Spray\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspd: -2,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tacrobatics: {\n\t\tnum: 512,\n\t\taccuracy: 100,\n\t\tbasePower: 55,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (!pokemon.item) {\n\t\t\t\tthis.debug(\"BP doubled for no item\");\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Acrobatics\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tacupressure: {\n\t\tnum: 367,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Acupressure\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tonHit(target) {\n\t\t\tconst stats: BoostID[] = [];\n\t\t\tlet stat: BoostID;\n\t\t\tfor (stat in target.boosts) {\n\t\t\t\tif (target.boosts[stat] < 6) {\n\t\t\t\t\tstats.push(stat);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (stats.length) {\n\t\t\t\tconst randomStat = this.sample(stats);\n\t\t\t\tconst boost: SparseBoostsTable = {};\n\t\t\t\tboost[randomStat] = 2;\n\t\t\t\tthis.boost(boost);\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentAllyOrSelf\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'crit2' },\n\t\tcontestType: \"Tough\",\n\t},\n\taerialace: {\n\t\tnum: 332,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Aerial Ace\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\taeroblast: {\n\t\tnum: 177,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Aeroblast\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, wind: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tafteryou: {\n\t\tnum: 495,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"After You\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, allyanim: 1 },\n\t\tonHit(target) {\n\t\t\tif (this.activePerHalf === 1) return false; // fails in singles\n\t\t\tconst action = this.queue.willMove(target);\n\t\t\tif (action) {\n\t\t\t\tthis.queue.prioritizeAction(action);\n\t\t\t\tthis.add('-activate', target, 'move: After You');\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tagility: {\n\t\tnum: 97,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Agility\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspe: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cool\",\n\t},\n\taircutter: {\n\t\tnum: 314,\n\t\taccuracy: 95,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Air Cutter\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, slicing: 1, wind: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tairslash: {\n\t\tnum: 403,\n\t\taccuracy: 95,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tname: \"Air Slash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\talloutpummeling: {\n\t\tnum: 624,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"All-Out Pummeling\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"fightiniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\talluringvoice: {\n\t\tnum: 914,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Alluring Voice\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (target?.statsRaisedThisTurn) {\n\t\t\t\t\ttarget.addVolatile('confusion', source, move);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t},\n\tallyswitch: {\n\t\tnum: 502,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Ally Switch\",\n\t\tpp: 15,\n\t\tpriority: 2,\n\t\tflags: { metronome: 1 },\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn pokemon.addVolatile('allyswitch');\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tlet success = true;\n\t\t\t// Fail in formats where you don't control allies\n\t\t\tif (this.format.gameType !== 'doubles' && this.format.gameType !== 'triples') success = false;\n\n\t\t\t// Fail in triples if the Pokemon is in the middle\n\t\t\tif (pokemon.side.active.length === 3 && pokemon.position === 1) success = false;\n\n\t\t\tconst newPosition = (pokemon.position === 0 ? pokemon.side.active.length - 1 : 0);\n\t\t\tif (!pokemon.side.active[newPosition]) success = false;\n\t\t\tif (pokemon.side.active[newPosition].fainted) success = false;\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', pokemon, 'move: Ally Switch');\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\tthis.swapPosition(pokemon, newPosition, '[from] move: Ally Switch');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tcounterMax: 729,\n\t\t\tonStart() {\n\t\t\t\tthis.effectState.counter = 3;\n\t\t\t},\n\t\t\tonRestart(pokemon) {\n\t\t\t\t// this.effectState.counter should never be undefined here.\n\t\t\t\t// However, just in case, use 1 if it is undefined.\n\t\t\t\tconst counter = this.effectState.counter || 1;\n\t\t\t\tthis.debug(`Ally Switch success chance: ${Math.round(100 / counter)}%`);\n\t\t\t\tconst success = this.randomChance(1, counter);\n\t\t\t\tif (!success) {\n\t\t\t\t\tdelete pokemon.volatiles['allyswitch'];\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (this.effectState.counter < (this.effect as Condition).counterMax!) {\n\t\t\t\t\tthis.effectState.counter *= 3;\n\t\t\t\t}\n\t\t\t\tthis.effectState.duration = 2;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tamnesia: {\n\t\tnum: 133,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Amnesia\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspd: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tanchorshot: {\n\t\tnum: 677,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Anchor Shot\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (source.isActive) target.addVolatile('trapped', source, move, 'trapper');\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Tough\",\n\t},\n\tancientpower: {\n\t\tnum: 246,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Ancient Power\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tatk: 1,\n\t\t\t\t\tdef: 1,\n\t\t\t\t\tspa: 1,\n\t\t\t\t\tspd: 1,\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\tappleacid: {\n\t\tnum: 787,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Apple Acid\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\taquacutter: {\n\t\tnum: 895,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Aqua Cutter\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\taquajet: {\n\t\tnum: 453,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Aqua Jet\",\n\t\tpp: 20,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\taquaring: {\n\t\tnum: 392,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Aqua Ring\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'aquaring',\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Aqua Ring');\n\t\t\t},\n\t\t\tonResidualOrder: 6,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 16);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Water\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\taquastep: {\n\t\tnum: 872,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Aqua Step\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, dance: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\taquatail: {\n\t\tnum: 401,\n\t\taccuracy: 90,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Aqua Tail\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tarmorcannon: {\n\t\tnum: 890,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Armor Cannon\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t},\n\tarmthrust: {\n\t\tnum: 292,\n\t\taccuracy: 100,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tname: \"Arm Thrust\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\taromatherapy: {\n\t\tnum: 312,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Aromatherapy\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, distance: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tthis.add('-activate', source, 'move: Aromatherapy');\n\t\t\tlet success = false;\n\t\t\tconst allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];\n\t\t\tfor (const ally of allies) {\n\t\t\t\tif (ally !== source) {\n\t\t\t\t\tif (ally.hasAbility('sapsipper')) {\n\t\t\t\t\t\tthis.add('-immune', ally, '[from] ability: Sap Sipper');\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (ally.hasAbility('goodasgold')) {\n\t\t\t\t\t\tthis.add('-immune', ally, '[from] ability: Good as Gold');\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (ally.volatiles['substitute'] && !move.infiltrates) continue;\n\t\t\t\t}\n\t\t\t\tif (ally.cureStatus()) success = true;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\ttarget: \"allyTeam\",\n\t\ttype: \"Grass\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Clever\",\n\t},\n\taromaticmist: {\n\t\tnum: 597,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Aromatic Mist\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspd: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentAlly\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { spd: 2 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tassist: {\n\t\tnum: 274,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Assist\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonHit(target) {\n\t\t\tconst moves = [];\n\t\t\tfor (const pokemon of target.side.pokemon) {\n\t\t\t\tif (pokemon === target) continue;\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tconst moveid = moveSlot.id;\n\t\t\t\t\tconst move = this.dex.moves.get(moveid);\n\t\t\t\t\tif (move.flags['noassist'] || move.isZ || move.isMax) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\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) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.actions.useMove(randomMove, target);\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tassurance: {\n\t\tnum: 372,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.hurtThisTurn) {\n\t\t\t\tthis.debug('BP doubled on damaged target');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Assurance\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tastonish: {\n\t\tnum: 310,\n\t\taccuracy: 100,\n\t\tbasePower: 30,\n\t\tcategory: \"Physical\",\n\t\tname: \"Astonish\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cute\",\n\t},\n\tastralbarrage: {\n\t\tnum: 825,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Astral Barrage\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ghost\",\n\t},\n\tattackorder: {\n\t\tnum: 454,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Attack Order\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Clever\",\n\t},\n\tattract: {\n\t\tnum: 213,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Attract\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'attract',\n\t\tcondition: {\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\n\t\t\tonStart(pokemon, source, effect) {\n\t\t\t\tif (!(pokemon.gender === 'M' && source.gender === 'F') && !(pokemon.gender === 'F' && source.gender === 'M')) {\n\t\t\t\t\tthis.debug('incompatible gender');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (!this.runEvent('Attract', pokemon, source)) {\n\t\t\t\t\tthis.debug('Attract event failed');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (effect.name === 'Cute Charm') {\n\t\t\t\t\tthis.add('-start', pokemon, 'Attract', '[from] ability: Cute Charm', `[of] ${source}`);\n\t\t\t\t} else if (effect.name === 'Destiny Knot') {\n\t\t\t\t\tthis.add('-start', pokemon, 'Attract', '[from] item: Destiny Knot', `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', pokemon, 'Attract');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonUpdate(pokemon) {\n\t\t\t\tif (this.effectState.source && !this.effectState.source.isActive && pokemon.volatiles['attract']) {\n\t\t\t\t\tthis.debug(`Removing Attract volatile on ${pokemon}`);\n\t\t\t\t\tpokemon.removeVolatile('attract');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBeforeMovePriority: 2,\n\t\t\tonBeforeMove(pokemon, target, move) {\n\t\t\t\tthis.add('-activate', pokemon, 'move: Attract', '[of] ' + this.effectState.source);\n\t\t\t\tif (this.randomChance(1, 2)) {\n\t\t\t\t\tthis.add('cant', pokemon, 'Attract');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Attract', '[silent]');\n\t\t\t},\n\t\t},\n\t\tonTryImmunity(target, source) {\n\t\t\treturn (target.gender === 'M' && source.gender === 'F') || (target.gender === 'F' && source.gender === 'M');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\taurasphere: {\n\t\tnum: 396,\n\t\taccuracy: true,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Aura Sphere\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, bullet: 1, pulse: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\taurawheel: {\n\t\tnum: 783,\n\t\taccuracy: 100,\n\t\tbasePower: 110,\n\t\tcategory: \"Physical\",\n\t\tname: \"Aura Wheel\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tonTry(source) {\n\t\t\tif (source.species.baseSpecies === 'Morpeko') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.attrLastMove('[still]');\n\t\t\tthis.add('-fail', source, 'move: Aura Wheel');\n\t\t\tthis.hint(\"Only a Pokemon whose form is Morpeko or Morpeko-Hangry can use this move.\");\n\t\t\treturn null;\n\t\t},\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (pokemon.species.name === 'Morpeko-Hangry') {\n\t\t\t\tmove.type = 'Dark';\n\t\t\t} else {\n\t\t\t\tmove.type = 'Electric';\n\t\t\t}\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t},\n\taurorabeam: {\n\t\tnum: 62,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Aurora Beam\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tauroraveil: {\n\t\tnum: 694,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Aurora Veil\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tsideCondition: 'auroraveil',\n\t\tonTry() {\n\t\t\treturn this.field.isWeather(['hail', 'snowscape']);\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(target, source, effect) {\n\t\t\t\tif (source?.hasItem('lightclay')) {\n\t\t\t\t\treturn 8;\n\t\t\t\t}\n\t\t\t\treturn 5;\n\t\t\t},\n\t\t\tonAnyModifyDamage(damage, source, target, move) {\n\t\t\t\tif (target !== source && this.effectState.target.hasAlly(target)) {\n\t\t\t\t\tif ((target.side.getSideCondition('reflect') && this.getCategory(move) === 'Physical') ||\n\t\t\t\t\t\t(target.side.getSideCondition('lightscreen') && this.getCategory(move) === 'Special')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\n\t\t\t\t\t\tthis.debug('Aurora Veil weaken');\n\t\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\n\t\t\t\t\t\treturn this.chainModify(0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: Aurora Veil');\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 10,\n\t\t\tonSideEnd(side) {\n\t\t\t\tthis.add('-sideend', side, 'move: Aurora Veil');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Ice\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tautotomize: {\n\t\tnum: 475,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Autotomize\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonTryHit(pokemon) {\n\t\t\tconst hasContrary = pokemon.hasAbility('contrary');\n\t\t\tif ((!hasContrary && pokemon.boosts.spe === 6) || (hasContrary && pokemon.boosts.spe === -6)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tboosts: {\n\t\t\tspe: 2,\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tif (pokemon.weighthg > 1) {\n\t\t\t\tpokemon.weighthg = Math.max(1, pokemon.weighthg - 1000);\n\t\t\t\tthis.add('-start', pokemon, 'Autotomize');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Steel\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tavalanche: {\n\t\tnum: 419,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst damagedByTarget = pokemon.attackedBy.some(\n\t\t\t\tp => p.source === target && p.damage > 0 && p.thisTurn\n\t\t\t);\n\t\t\tif (damagedByTarget) {\n\t\t\t\tthis.debug(`BP doubled for getting hit by ${target}`);\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Avalanche\",\n\t\tpp: 10,\n\t\tpriority: -4,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\taxekick: {\n\t\tnum: 853,\n\t\taccuracy: 90,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Axe Kick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\thasCrashDamage: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick'));\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\tbabydolleyes: {\n\t\tnum: 608,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Baby-Doll Eyes\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tbaddybad: {\n\t\tnum: 737,\n\t\taccuracy: 95,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Baddy Bad\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tsideCondition: 'reflect',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tbanefulbunker: {\n\t\tnum: 661,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Baneful Bunker\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'banefulbunker',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'move: Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect']) {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tsource.trySetStatus('psn', target);\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tsource.trySetStatus('psn', target);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tbarbbarrage: {\n\t\tnum: 839,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Barb Barrage\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon, target) {\n\t\t\tif (target.status === 'psn' || target.status === 'tox') {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t},\n\tbarrage: {\n\t\tnum: 140,\n\t\taccuracy: 85,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Barrage\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tbarrier: {\n\t\tnum: 112,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Barrier\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cool\",\n\t},\n\tbatonpass: {\n\t\tnum: 226,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Baton Pass\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (!this.canSwitch(target.side) || target.volatiles['commanded']) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('-fail', target);\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t},\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tsource.skipBeforeSwitchOutEventFlag = true;\n\t\t\t},\n\t\t},\n\t\tselfSwitch: 'copyvolatile',\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tbeakblast: {\n\t\tnum: 690,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Beak Blast\",\n\t\tpp: 15,\n\t\tpriority: -3,\n\t\tflags: { protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, bullet: 1 },\n\t\tpriorityChargeCallback(pokemon) {\n\t\t\tpokemon.addVolatile('beakblast');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Beak Blast');\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tsource.trySetStatus('brn', target);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t// FIXME: onMoveAborted(pokemon) {pokemon.removeVolatile('beakblast')},\n\t\tonAfterMove(pokemon) {\n\t\t\tpokemon.removeVolatile('beakblast');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbeatup: {\n\t\tnum: 251,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst currentSpecies = move.allies!.shift()!.species;\n\t\t\tconst bp = 5 + Math.floor(currentSpecies.baseStats.atk / 10);\n\t\t\tthis.debug(`BP for ${currentSpecies.name} hit: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Beat Up\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonModifyMove(move, pokemon) {\n\t\t\tmove.allies = pokemon.side.pokemon.filter(ally => ally === pokemon || !ally.fainted && !ally.status);\n\t\t\tmove.multihit = move.allies.length;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tbehemothbash: {\n\t\tnum: 782,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Behemoth Bash\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, failcopycat: 1, failmimic: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\tbehemothblade: {\n\t\tnum: 781,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Behemoth Blade\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, failcopycat: 1, failmimic: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\tbelch: {\n\t\tnum: 562,\n\t\taccuracy: 90,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Belch\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonDisableMove(pokemon) {\n\t\t\tif (!pokemon.ateBerry) pokemon.disableMove('belch');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbellydrum: {\n\t\tnum: 187,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Belly Drum\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.hp <= target.maxhp / 2 || target.boosts.atk >= 6 || target.maxhp === 1) { // Shedinja clause\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.directDamage(target.maxhp / 2);\n\t\t\tthis.boost({ atk: 12 }, target);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Cute\",\n\t},\n\tbestow: {\n\t\tnum: 516,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bestow\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, bypasssub: 1, allyanim: 1, noassist: 1, failcopycat: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tif (target.item) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst myItem = source.takeItem();\n\t\t\tif (!myItem) return false;\n\t\t\tif (!this.singleEvent('TakeItem', myItem, source.itemState, target, source, move, myItem) || !target.setItem(myItem)) {\n\t\t\t\tsource.item = myItem.id;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.add('-item', target, myItem.name, '[from] move: Bestow', `[of] ${source}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tbide: {\n\t\tnum: 117,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bide\",\n\t\tpp: 10,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tvolatileStatus: 'bide',\n\t\tignoreImmunity: true,\n\t\tbeforeMoveCallback(pokemon) {\n\t\t\tif (pokemon.volatiles['bide']) return true;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 3,\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\ttarget = this.effectState.lastDamageSource;\n\t\t\t\t\tif (!target || !this.effectState.totalDamage) {\n\t\t\t\t\t\tthis.attrLastMove('[still]');\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: Partial = {\n\t\t\t\t\t\tid: 'bide' as ID,\n\t\t\t\t\t\tname: \"Bide\",\n\t\t\t\t\t\taccuracy: true,\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: 1,\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};\n\t\t\t\t\tthis.actions.tryMoveHit(target, pokemon, moveData as ActiveMove);\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\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbind: {\n\t\tnum: 20,\n\t\taccuracy: 85,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bind\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbite: {\n\t\tnum: 44,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bite\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbitterblade: {\n\t\tnum: 891,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bitter Blade\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1, slicing: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t},\n\tbittermalice: {\n\t\tnum: 841,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tname: \"Bitter Malice\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t},\n\tblackholeeclipse: {\n\t\tnum: 654,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Black Hole Eclipse\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"darkiniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tblastburn: {\n\t\tnum: 307,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tname: \"Blast Burn\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tblazekick: {\n\t\tnum: 299,\n\t\taccuracy: 90,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Blaze Kick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tblazingtorque: {\n\t\tnum: 896,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Blazing Torque\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t},\n\tbleakwindstorm: {\n\t\tnum: 846,\n\t\taccuracy: 80,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Bleakwind Storm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) {\n\t\t\t\tmove.accuracy = true;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Flying\",\n\t},\n\tblizzard: {\n\t\tnum: 59,\n\t\taccuracy: 70,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Blizzard\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tonModifyMove(move) {\n\t\t\tif (this.field.isWeather(['hail', 'snowscape'])) move.accuracy = true;\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'frz',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tblock: {\n\t\tnum: 335,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Block\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\treturn target.addVolatile('trapped', source, move, 'trapper');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tbloodmoon: {\n\t\tnum: 901,\n\t\taccuracy: 100,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tname: \"Blood Moon\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, cantusetwice: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t},\n\tbloomdoom: {\n\t\tnum: 644,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bloom Doom\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"grassiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tblueflare: {\n\t\tnum: 551,\n\t\taccuracy: 85,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tname: \"Blue Flare\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tbodypress: {\n\t\tnum: 776,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Body Press\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\toverrideOffensiveStat: 'def',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\tbodyslam: {\n\t\tnum: 34,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Body Slam\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tboltbeak: {\n\t\tnum: 754,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) {\n\t\t\t\tthis.debug('Bolt Beak damage boost');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\tthis.debug('Bolt Beak NOT boosted');\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bolt Beak\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t},\n\tboltstrike: {\n\t\tnum: 550,\n\t\taccuracy: 85,\n\t\tbasePower: 130,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bolt Strike\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tboneclub: {\n\t\tnum: 125,\n\t\taccuracy: 85,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bone Club\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbonemerang: {\n\t\tnum: 155,\n\t\taccuracy: 90,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bonemerang\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\tbonerush: {\n\t\tnum: 198,\n\t\taccuracy: 90,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bone Rush\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\tboomburst: {\n\t\tnum: 586,\n\t\taccuracy: 100,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tname: \"Boomburst\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbounce: {\n\t\tnum: 340,\n\t\taccuracy: 85,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bounce\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1,\n\t\t\tmetronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\n\t\t},\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonInvulnerability(target, source, move) {\n\t\t\t\tif (['gust', 'twister', 'skyuppercut', 'thunder', 'hurricane', 'smackdown', 'thousandarrows'].includes(move.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\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\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cute\",\n\t},\n\tbouncybubble: {\n\t\tnum: 733,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Bouncy Bubble\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, heal: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Clever\",\n\t},\n\tbranchpoke: {\n\t\tnum: 785,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Branch Poke\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tbravebird: {\n\t\tnum: 413,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Brave Bird\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1 },\n\t\trecoil: [33, 100],\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tbreakingswipe: {\n\t\tnum: 784,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Breaking Swipe\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dragon\",\n\t},\n\tbreakneckblitz: {\n\t\tnum: 622,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Breakneck Blitz\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"normaliumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tbrickbreak: {\n\t\tnum: 280,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Brick Break\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryHit(pokemon) {\n\t\t\t// will shatter screens through sub, before you hit\n\t\t\tpokemon.side.removeSideCondition('reflect');\n\t\t\tpokemon.side.removeSideCondition('lightscreen');\n\t\t\tpokemon.side.removeSideCondition('auroraveil');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tbrine: {\n\t\tnum: 362,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Brine\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon, target) {\n\t\t\tif (target.hp * 2 <= target.maxhp) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbrutalswing: {\n\t\tnum: 693,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Brutal Swing\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbubble: {\n\t\tnum: 145,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Bubble\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cute\",\n\t},\n\tbubblebeam: {\n\t\tnum: 61,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Bubble Beam\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tbugbite: {\n\t\tnum: 450,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bug Bite\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst item = target.getItem();\n\t\t\tif (source.hp && item.isBerry && target.takeItem(source)) {\n\t\t\t\tthis.add('-enditem', target, item.name, '[from] stealeat', '[move] Bug Bite', `[of] ${source}`);\n\t\t\t\tif (this.singleEvent('Eat', item, null, source, null, null)) {\n\t\t\t\t\tthis.runEvent('EatItem', source, null, null, item);\n\t\t\t\t\tif (item.id === 'leppaberry') target.staleness = 'external';\n\t\t\t\t}\n\t\t\t\tif (item.onEat) source.ateBerry = true;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tbugbuzz: {\n\t\tnum: 405,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Bug Buzz\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tbulkup: {\n\t\tnum: 339,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Bulk Up\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tdef: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tbulldoze: {\n\t\tnum: 523,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bulldoze\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbulletpunch: {\n\t\tnum: 418,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bullet Punch\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Tough\",\n\t},\n\tbulletseed: {\n\t\tnum: 331,\n\t\taccuracy: 100,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Bullet Seed\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\tburningbulwark: {\n\t\tnum: 908,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Burning Bulwark\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { metronome: 1, noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'burningbulwark',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'move: Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tsource.trySetStatus('brn', target);\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tsource.trySetStatus('brn', target);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fire\",\n\t},\n\tburningjealousy: {\n\t\tnum: 807,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tname: \"Burning Jealousy\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (target?.statsRaisedThisTurn) {\n\t\t\t\t\ttarget.trySetStatus('brn', source, move);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Tough\",\n\t},\n\tburnup: {\n\t\tnum: 682,\n\t\taccuracy: 100,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Burn Up\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\tonTryMove(pokemon, target, move) {\n\t\t\tif (pokemon.hasType('Fire')) return;\n\t\t\tthis.add('-fail', pokemon, 'move: Burn Up');\n\t\t\tthis.attrLastMove('[still]');\n\t\t\treturn null;\n\t\t},\n\t\tself: {\n\t\t\tonHit(pokemon) {\n\t\t\t\tpokemon.setType(pokemon.getTypes(true).map(type => type === \"Fire\" ? \"???\" : type));\n\t\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.getTypes().join('/'), '[from] move: Burn Up');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Clever\",\n\t},\n\tbuzzybuzz: {\n\t\tnum: 734,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Buzzy Buzz\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Clever\",\n\t},\n\tcalmmind: {\n\t\tnum: 347,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Calm Mind\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspa: 1,\n\t\t\tspd: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tcamouflage: {\n\t\tnum: 293,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Camouflage\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tlet newType = 'Normal';\n\t\t\tif (this.field.isTerrain('electricterrain')) {\n\t\t\t\tnewType = 'Electric';\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tnewType = 'Grass';\n\t\t\t} else if (this.field.isTerrain('mistyterrain')) {\n\t\t\t\tnewType = 'Fairy';\n\t\t\t} else if (this.field.isTerrain('psychicterrain')) {\n\t\t\t\tnewType = 'Psychic';\n\t\t\t}\n\n\t\t\tif (target.getTypes().join() === newType || !target.setType(newType)) return false;\n\t\t\tthis.add('-start', target, 'typechange', newType);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tcaptivate: {\n\t\tnum: 445,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Captivate\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tonTryImmunity(pokemon, source) {\n\t\t\treturn (pokemon.gender === 'M' && source.gender === 'F') || (pokemon.gender === 'F' && source.gender === 'M');\n\t\t},\n\t\tboosts: {\n\t\t\tspa: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 2 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tcatastropika: {\n\t\tnum: 658,\n\t\taccuracy: true,\n\t\tbasePower: 210,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Catastropika\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { contact: 1 },\n\t\tisZ: \"pikaniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tceaselessedge: {\n\t\tnum: 845,\n\t\taccuracy: 90,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ceaseless Edge\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tonAfterHit(target, source, move) {\n\t\t\tif (!move.hasSheerForce && source.hp) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('spikes');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonAfterSubDamage(damage, target, source, move) {\n\t\t\tif (!move.hasSheerForce && source.hp) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('spikes');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: {}, // Sheer Force-boosted\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\tcelebrate: {\n\t\tnum: 606,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Celebrate\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tthis.add('-activate', target, 'move: Celebrate');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tcharge: {\n\t\tnum: 268,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Charge\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'charge',\n\t\tcondition: {\n\t\t\tonStart(pokemon, source, effect) {\n\t\t\t\tif (effect && ['Electromorphosis', 'Wind Power'].includes(effect.name)) {\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge', this.activeMove!.name, '[from] ability: ' + effect.name);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonRestart(pokemon, source, effect) {\n\t\t\t\tif (effect && ['Electromorphosis', 'Wind Power'].includes(effect.name)) {\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge', this.activeMove!.name, '[from] ability: ' + effect.name);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBasePowerPriority: 9,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tif (move.type === 'Electric') {\n\t\t\t\t\tthis.debug('charge boost');\n\t\t\t\t\treturn this.chainModify(2);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonMoveAborted(pokemon, target, move) {\n\t\t\t\tif (move.type === 'Electric' && move.id !== 'charge') {\n\t\t\t\t\tpokemon.removeVolatile('charge');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonAfterMove(pokemon, target, move) {\n\t\t\t\tif (move.type === 'Electric' && move.id !== 'charge') {\n\t\t\t\t\tpokemon.removeVolatile('charge');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Charge', '[silent]');\n\t\t\t},\n\t\t},\n\t\tboosts: {\n\t\t\tspd: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tchargebeam: {\n\t\tnum: 451,\n\t\taccuracy: 90,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Charge Beam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 70,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspa: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tcharm: {\n\t\tnum: 204,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Charm\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tchatter: {\n\t\tnum: 448,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Chatter\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, mirror: 1, sound: 1, distance: 1, bypasssub: 1,\n\t\t\tnosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1,\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cute\",\n\t},\n\tchillingwater: {\n\t\tnum: 886,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Chilling Water\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tchillyreception: {\n\t\tnum: 881,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Chilly Reception\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\t// TODO show prepare message before the \"POKEMON used MOVE!\" message\n\t\t// This happens even before sleep shows its \"POKEMON is fast asleep.\" message\n\t\tweather: 'snowscape',\n\t\tselfSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Ice\",\n\t},\n\tchipaway: {\n\t\tnum: 498,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Chip Away\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tignoreDefensive: true,\n\t\tignoreEvasion: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tchloroblast: {\n\t\tnum: 835,\n\t\taccuracy: 95,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tname: \"Chloroblast\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\t// Recoil implemented in battle-actions.ts\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tcirclethrow: {\n\t\tnum: 509,\n\t\taccuracy: 90,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Circle Throw\",\n\t\tpp: 10,\n\t\tpriority: -6,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, noassist: 1, failcopycat: 1 },\n\t\tforceSwitch: true,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tclamp: {\n\t\tnum: 128,\n\t\taccuracy: 85,\n\t\tbasePower: 35,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Clamp\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\tclangingscales: {\n\t\tnum: 691,\n\t\taccuracy: 100,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Clanging Scales\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tselfBoost: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Tough\",\n\t},\n\tclangoroussoul: {\n\t\tnum: 775,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Clangorous Soul\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, sound: 1, dance: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.hp <= (source.maxhp * 33 / 100) || source.maxhp === 1) return false;\n\t\t},\n\t\tonTryHit(pokemon, target, move) {\n\t\t\tif (!this.boost(move.boosts!)) return null;\n\t\t\tdelete move.boosts;\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tthis.directDamage(pokemon.maxhp * 33 / 100);\n\t\t},\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tdef: 1,\n\t\t\tspa: 1,\n\t\t\tspd: 1,\n\t\t\tspe: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Dragon\",\n\t},\n\tclangoroussoulblaze: {\n\t\tnum: 728,\n\t\taccuracy: true,\n\t\tbasePower: 185,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Clangorous Soulblaze\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { sound: 1, bypasssub: 1 },\n\t\tselfBoost: {\n\t\t\tboosts: {\n\t\t\t\tatk: 1,\n\t\t\t\tdef: 1,\n\t\t\t\tspa: 1,\n\t\t\t\tspd: 1,\n\t\t\t\tspe: 1,\n\t\t\t},\n\t\t},\n\t\tisZ: \"kommoniumz\",\n\t\tsecondary: {\n\t\t\t// Sheer Force negates the selfBoost even though it is not secondary\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tclearsmog: {\n\t\tnum: 499,\n\t\taccuracy: true,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Clear Smog\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\ttarget.clearBoosts();\n\t\t\tthis.add('-clearboost', target);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tclosecombat: {\n\t\tnum: 370,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Close Combat\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tcoaching: {\n\t\tnum: 811,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Coaching\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tdef: 1,\n\t\t},\n\t\ttarget: \"adjacentAlly\",\n\t\ttype: \"Fighting\",\n\t},\n\tcoil: {\n\t\tnum: 489,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Coil\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tdef: 1,\n\t\t\taccuracy: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Poison\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\tcollisioncourse: {\n\t\tnum: 878,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Collision Course\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tonBasePower(basePower, source, target, move) {\n\t\t\tif (target.runEffectiveness(move) > 0) {\n\t\t\t\t// Placeholder\n\t\t\t\tthis.debug(`collision course super effective buff`);\n\t\t\t\treturn this.chainModify([5461, 4096]);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tcombattorque: {\n\t\tnum: 899,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Combat Torque\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\tcometpunch: {\n\t\tnum: 4,\n\t\taccuracy: 85,\n\t\tbasePower: 18,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Comet Punch\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tmaxMove: { basePower: 100 },\n\t\tcontestType: \"Tough\",\n\t},\n\tcomeuppance: {\n\t\tnum: 894,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon) {\n\t\t\tconst lastDamagedBy = pokemon.getLastDamagedBy(true);\n\t\t\tif (lastDamagedBy !== undefined) {\n\t\t\t\treturn (lastDamagedBy.damage * 1.5) || 1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Comeuppance\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, failmefirst: 1 },\n\t\tonTry(source) {\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\n\t\t\tif (!lastDamagedBy?.thisTurn) return false;\n\t\t},\n\t\tonModifyTarget(targetRelayVar, source, target, move) {\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\n\t\t\tif (lastDamagedBy) {\n\t\t\t\ttargetRelayVar.target = this.getAtSlot(lastDamagedBy.slot);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"scripted\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tconfide: {\n\t\tnum: 590,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Confide\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspa: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tconfuseray: {\n\t\tnum: 109,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Confuse Ray\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'confusion',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tconfusion: {\n\t\tnum: 93,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Confusion\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tconstrict: {\n\t\tnum: 132,\n\t\taccuracy: 100,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Constrict\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tcontinentalcrush: {\n\t\tnum: 632,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Continental Crush\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"rockiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Cool\",\n\t},\n\tconversion: {\n\t\tnum: 160,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Conversion\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tconst type = this.dex.moves.get(target.moveSlots[0].id).type;\n\t\t\tif (target.hasType(type) || !target.setType(type)) return false;\n\t\t\tthis.add('-start', target, 'typechange', type);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tconversion2: {\n\t\tnum: 176,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Conversion 2\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tif (!target.lastMoveUsed) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst possibleTypes = [];\n\t\t\tconst attackType = target.lastMoveUsed.type;\n\t\t\tfor (const typeName of this.dex.types.names()) {\n\t\t\t\tif (source.hasType(typeName)) continue;\n\t\t\t\tconst typeCheck = this.dex.types.get(typeName).damageTaken[attackType];\n\t\t\t\tif (typeCheck === 2 || typeCheck === 3) {\n\t\t\t\t\tpossibleTypes.push(typeName);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!possibleTypes.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst randomType = this.sample(possibleTypes);\n\n\t\t\tif (!source.setType(randomType)) return false;\n\t\t\tthis.add('-start', source, 'typechange', randomType);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tcopycat: {\n\t\tnum: 383,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Copycat\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonHit(pokemon) {\n\t\t\tlet move: Move | ActiveMove | null = this.lastMove;\n\t\t\tif (!move) return;\n\n\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\n\t\t\tif (move.flags['failcopycat'] || move.isZ || move.isMax) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.actions.useMove(move.id, pokemon);\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tcoreenforcer: {\n\t\tnum: 687,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Core Enforcer\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.getAbility().flags['cantsuppress']) return;\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) return;\n\t\t\ttarget.addVolatile('gastroacid');\n\t\t},\n\t\tonAfterSubDamage(damage, target) {\n\t\t\tif (target.getAbility().flags['cantsuppress']) return;\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) return;\n\t\t\ttarget.addVolatile('gastroacid');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dragon\",\n\t\tzMove: { basePower: 140 },\n\t\tcontestType: \"Tough\",\n\t},\n\tcorkscrewcrash: {\n\t\tnum: 638,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Corkscrew Crash\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"steeliumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tcorrosivegas: {\n\t\tnum: 810,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Corrosive Gas\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst item = target.takeItem(source);\n\t\t\tif (item) {\n\t\t\t\tthis.add('-enditem', target, item.name, '[from] move: Corrosive Gas', `[of] ${source}`);\n\t\t\t} else {\n\t\t\t\tthis.add('-fail', target, 'move: Corrosive Gas');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Poison\",\n\t},\n\tcosmicpower: {\n\t\tnum: 322,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Cosmic Power\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 1,\n\t\t\tspd: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tcottonguard: {\n\t\tnum: 538,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Cotton Guard\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 3,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Grass\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tcottonspore: {\n\t\tnum: 178,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Cotton Spore\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1 },\n\t\tboosts: {\n\t\t\tspe: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Grass\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tcounter: {\n\t\tnum: 68,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon) {\n\t\t\tif (!pokemon.volatiles['counter']) return 0;\n\t\t\treturn pokemon.volatiles['counter'].damage || 1;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Counter\",\n\t\tpp: 20,\n\t\tpriority: -5,\n\t\tflags: { contact: 1, protect: 1, failmefirst: 1, noassist: 1, failcopycat: 1 },\n\t\tbeforeTurnCallback(pokemon) {\n\t\t\tpokemon.addVolatile('counter');\n\t\t},\n\t\tonTry(source) {\n\t\t\tif (!source.volatiles['counter']) return false;\n\t\t\tif (source.volatiles['counter'].slot === null) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tnoCopy: true,\n\t\t\tonStart(target, source, move) {\n\t\t\t\tthis.effectState.slot = null;\n\t\t\t\tthis.effectState.damage = 0;\n\t\t\t},\n\t\t\tonRedirectTargetPriority: -1,\n\t\t\tonRedirectTarget(target, source, source2, move) {\n\t\t\t\tif (move.id !== 'counter') return;\n\t\t\t\tif (source !== this.effectState.target || !this.effectState.slot) return;\n\t\t\t\treturn this.getAtSlot(this.effectState.slot);\n\t\t\t},\n\t\t\tonDamagingHit(damage, target, source, move) {\n\t\t\t\tif (!source.isAlly(target) && this.getCategory(move) === 'Physical') {\n\t\t\t\t\tthis.effectState.slot = source.getSlot();\n\t\t\t\t\tthis.effectState.damage = 2 * damage;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"scripted\",\n\t\ttype: \"Fighting\",\n\t\tmaxMove: { basePower: 75 },\n\t\tcontestType: \"Tough\",\n\t},\n\tcourtchange: {\n\t\tnum: 756,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Court Change\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, metronome: 1 },\n\t\tonHitField(target, source) {\n\t\t\tconst sideConditions = [\n\t\t\t\t'mist', 'lightscreen', 'reflect', 'spikes', 'safeguard', 'tailwind', 'toxicspikes', 'stealthrock', 'waterpledge', 'firepledge', 'grasspledge', 'stickyweb', 'auroraveil', 'luckychant', 'gmaxsteelsurge', 'gmaxcannonade', 'gmaxvinelash', 'gmaxwildfire', 'gmaxvolcalith',\n\t\t\t];\n\t\t\tlet success = false;\n\t\t\tif (this.gameType === \"freeforall\") {\n\t\t\t\t// random integer from 1-3 inclusive\n\t\t\t\tconst offset = this.random(3) + 1;\n\t\t\t\t// the list of all sides in counterclockwise order\n\t\t\t\tconst sides = [this.sides[0], this.sides[2]!, this.sides[1], this.sides[3]!];\n\t\t\t\tconst temp: { [k: number]: typeof source.side.sideConditions } = { 0: {}, 1: {}, 2: {}, 3: {} };\n\t\t\t\tfor (const side of sides) {\n\t\t\t\t\tfor (const id in side.sideConditions) {\n\t\t\t\t\t\tif (!sideConditions.includes(id)) continue;\n\t\t\t\t\t\ttemp[side.n][id] = side.sideConditions[id];\n\t\t\t\t\t\tdelete side.sideConditions[id];\n\t\t\t\t\t\tconst effectName = this.dex.conditions.get(id).name;\n\t\t\t\t\t\tthis.add('-sideend', side, effectName, '[silent]');\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\t\tconst sourceSideConditions = temp[sides[i].n];\n\t\t\t\t\tconst targetSide = sides[(i + offset) % 4]; // the next side in rotation\n\t\t\t\t\tfor (const id in sourceSideConditions) {\n\t\t\t\t\t\ttargetSide.sideConditions[id] = sourceSideConditions[id];\n\t\t\t\t\t\tconst effectName = this.dex.conditions.get(id).name;\n\t\t\t\t\t\tlet layers = sourceSideConditions[id].layers || 1;\n\t\t\t\t\t\tfor (; layers > 0; layers--) this.add('-sidestart', targetSide, effectName, '[silent]');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst sourceSideConditions = source.side.sideConditions;\n\t\t\t\tconst targetSideConditions = source.side.foe.sideConditions;\n\t\t\t\tconst sourceTemp: typeof sourceSideConditions = {};\n\t\t\t\tconst targetTemp: typeof targetSideConditions = {};\n\t\t\t\tfor (const id in sourceSideConditions) {\n\t\t\t\t\tif (!sideConditions.includes(id)) continue;\n\t\t\t\t\tsourceTemp[id] = sourceSideConditions[id];\n\t\t\t\t\tdelete sourceSideConditions[id];\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t\tfor (const id in targetSideConditions) {\n\t\t\t\t\tif (!sideConditions.includes(id)) continue;\n\t\t\t\t\ttargetTemp[id] = targetSideConditions[id];\n\t\t\t\t\tdelete targetSideConditions[id];\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t\tfor (const id in sourceTemp) {\n\t\t\t\t\ttargetSideConditions[id] = sourceTemp[id];\n\t\t\t\t}\n\t\t\t\tfor (const id in targetTemp) {\n\t\t\t\t\tsourceSideConditions[id] = targetTemp[id];\n\t\t\t\t}\n\t\t\t\tthis.add('-swapsideconditions');\n\t\t\t}\n\t\t\tif (!success) return false;\n\t\t\tthis.add('-activate', source, 'move: Court Change');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Normal\",\n\t},\n\tcovet: {\n\t\tnum: 343,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Covet\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, failmefirst: 1, noassist: 1, failcopycat: 1 },\n\t\tonAfterHit(target, source, move) {\n\t\t\tif (source.item || source.volatiles['gem']) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst yourItem = target.takeItem(source);\n\t\t\tif (!yourItem) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem) ||\n\t\t\t\t!source.setItem(yourItem)\n\t\t\t) {\n\t\t\t\ttarget.item = yourItem.id; // bypass setItem so we don't break choicelock or anything\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-item', source, yourItem, '[from] move: Covet', `[of] ${target}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tcrabhammer: {\n\t\tnum: 152,\n\t\taccuracy: 90,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Crabhammer\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\tcraftyshield: {\n\t\tnum: 578,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Crafty Shield\",\n\t\tpp: 10,\n\t\tpriority: 3,\n\t\tflags: {},\n\t\tsideCondition: 'craftyshield',\n\t\tonTry() {\n\t\t\treturn !!this.queue.willAct();\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonSideStart(target, source) {\n\t\t\t\tthis.add('-singleturn', source, 'Crafty Shield');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (['self', 'all'].includes(move.target) || move.category !== 'Status') return;\n\t\t\t\tthis.add('-activate', target, 'move: Crafty Shield');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tcrosschop: {\n\t\tnum: 238,\n\t\taccuracy: 80,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Cross Chop\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tcrosspoison: {\n\t\tnum: 440,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Cross Poison\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\tcritRatio: 2,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Cool\",\n\t},\n\tcrunch: {\n\t\tnum: 242,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Crunch\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tcrushclaw: {\n\t\tnum: 306,\n\t\taccuracy: 95,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Crush Claw\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tcrushgrip: {\n\t\tnum: 462,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tconst hp = target.hp;\n\t\t\tconst maxHP = target.maxhp;\n\t\t\tconst bp = Math.floor(Math.floor((120 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1;\n\t\t\tthis.debug(`BP for ${hp}/${maxHP} HP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Crush Grip\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 190 },\n\t\tmaxMove: { basePower: 140 },\n\t\tcontestType: \"Tough\",\n\t},\n\tcurse: {\n\t\tnum: 174,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Curse\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'curse',\n\t\tonModifyMove(move, source, target) {\n\t\t\tif (!source.hasType('Ghost')) {\n\t\t\t\tmove.target = move.nonGhostTarget!;\n\t\t\t} else if (source.isAlly(target)) {\n\t\t\t\tmove.target = 'randomNormal';\n\t\t\t}\n\t\t},\n\t\tonTryHit(target, source, move) {\n\t\t\tif (!source.hasType('Ghost')) {\n\t\t\t\tdelete move.volatileStatus;\n\t\t\t\tdelete move.onHit;\n\t\t\t\tmove.self = { boosts: { spe: -1, atk: 1, def: 1 } };\n\t\t\t} else if (move.volatileStatus && target.volatiles['curse']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tthis.directDamage(source.maxhp / 2, source, source);\n\t\t},\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\tonResidualOrder: 12,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tthis.damage(pokemon.baseMaxhp / 4);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\tnonGhostTarget: \"self\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { effect: 'curse' },\n\t\tcontestType: \"Tough\",\n\t},\n\tcut: {\n\t\tnum: 15,\n\t\taccuracy: 95,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Cut\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdarkestlariat: {\n\t\tnum: 663,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Darkest Lariat\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tignoreEvasion: true,\n\t\tignoreDefensive: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdarkpulse: {\n\t\tnum: 399,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Dark Pulse\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdarkvoid: {\n\t\tnum: 464,\n\t\taccuracy: 50,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Dark Void\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1, nosketch: 1 },\n\t\tstatus: 'slp',\n\t\tonTry(source, target, move) {\n\t\t\tif (source.species.name === 'Darkrai' || move.hasBounced) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-fail', source, 'move: Dark Void');\n\t\t\tthis.hint(\"Only a Pokemon whose form is Darkrai can use this move.\");\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dark\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tdazzlinggleam: {\n\t\tnum: 605,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Dazzling Gleam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdecorate: {\n\t\tnum: 777,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Decorate\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { allyanim: 1 },\n\t\tsecondary: null,\n\t\tboosts: {\n\t\t\tatk: 2,\n\t\t\tspa: 2,\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t},\n\tdefendorder: {\n\t\tnum: 455,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Defend Order\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 1,\n\t\t\tspd: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Bug\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tdefensecurl: {\n\t\tnum: 111,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Defense Curl\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 1,\n\t\t},\n\t\tvolatileStatus: 'defensecurl',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonRestart: () => null,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tdefog: {\n\t\tnum: 432,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Defog\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tlet success = false;\n\t\t\tif (!target.volatiles['substitute'] || move.infiltrates) success = !!this.boost({ evasion: -1 });\n\t\t\tconst removeTarget = [\n\t\t\t\t'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge',\n\t\t\t];\n\t\t\tconst removeAll = [\n\t\t\t\t'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge',\n\t\t\t];\n\t\t\tfor (const targetCondition of removeTarget) {\n\t\t\t\tif (target.side.removeSideCondition(targetCondition)) {\n\t\t\t\t\tif (!removeAll.includes(targetCondition)) continue;\n\t\t\t\t\tthis.add('-sideend', target.side, this.dex.conditions.get(targetCondition).name, '[from] move: Defog', `[of] ${source}`);\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const sideCondition of removeAll) {\n\t\t\t\tif (source.side.removeSideCondition(sideCondition)) {\n\t\t\t\t\tthis.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Defog', `[of] ${source}`);\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.field.clearTerrain();\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tdestinybond: {\n\t\tnum: 194,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Destiny Bond\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, noassist: 1, failcopycat: 1 },\n\t\tvolatileStatus: 'destinybond',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !pokemon.removeVolatile('destinybond');\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singlemove', pokemon, 'Destiny Bond');\n\t\t\t},\n\t\t\tonFaint(target, source, effect) {\n\t\t\t\tif (!source || !effect || target.isAlly(source)) return;\n\t\t\t\tif (effect.effectType === 'Move' && !effect.flags['futuremove']) {\n\t\t\t\t\tif (source.volatiles['dynamax']) {\n\t\t\t\t\t\tthis.add('-hint', \"Dynamaxed Pok\u00E9mon are immune to Destiny Bond.\");\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.add('-activate', target, 'move: Destiny Bond');\n\t\t\t\t\tsource.faint();\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBeforeMovePriority: -1,\n\t\t\tonBeforeMove(pokemon, target, move) {\n\t\t\t\tif (move.id === 'destinybond') return;\n\t\t\t\tthis.debug('removing Destiny Bond before attack');\n\t\t\t\tpokemon.removeVolatile('destinybond');\n\t\t\t},\n\t\t\tonMoveAborted(pokemon, target, move) {\n\t\t\t\tpokemon.removeVolatile('destinybond');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { effect: 'redirect' },\n\t\tcontestType: \"Clever\",\n\t},\n\tdetect: {\n\t\tnum: 197,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Detect\",\n\t\tpp: 5,\n\t\tpriority: 4,\n\t\tflags: { noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'protect',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tdevastatingdrake: {\n\t\tnum: 652,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Devastating Drake\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"dragoniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdiamondstorm: {\n\t\tnum: 591,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Diamond Storm\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tdef: 2,\n\t\t\t},\n\t\t},\n\t\tsecondary: {\n\t\t\t// Sheer Force negates the self even though it is not secondary\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdig: {\n\t\tnum: 91,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dig\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1,\n\t\t\tnonsky: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\n\t\t},\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonImmunity(type, pokemon) {\n\t\t\t\tif (type === 'sandstorm' || type === 'hail') return false;\n\t\t\t},\n\t\t\tonInvulnerability(target, source, move) {\n\t\t\t\tif (['earthquake', 'magnitude'].includes(move.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonSourceModifyDamage(damage, source, target, 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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdisable: {\n\t\tnum: 50,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Disable\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'disable',\n\t\tonTryHit(target) {\n\t\t\tif (!target.lastMove || target.lastMove.isZ || target.lastMove.isMax || target.lastMove.id === 'struggle') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\n\t\t\tonStart(pokemon, source, effect) {\n\t\t\t\t// The target hasn't taken its turn, or Cursed Body activated and the move was not used through Dancer or Instruct\n\t\t\t\tif (\n\t\t\t\t\tthis.queue.willMove(pokemon) ||\n\t\t\t\t\t(pokemon === this.activePokemon && this.activeMove && !this.activeMove.isExternal)\n\t\t\t\t) {\n\t\t\t\t\tthis.effectState.duration!--;\n\t\t\t\t}\n\t\t\t\tif (!pokemon.lastMove) {\n\t\t\t\t\tthis.debug(`Pokemon hasn't moved yet`);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (moveSlot.id === pokemon.lastMove.id) {\n\t\t\t\t\t\tif (!moveSlot.pp) {\n\t\t\t\t\t\t\tthis.debug('Move out of PP');\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (effect.effectType === 'Ability') {\n\t\t\t\t\tthis.add('-start', pokemon, 'Disable', pokemon.lastMove.name, '[from] ability: ' + effect.name, `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', pokemon, 'Disable', pokemon.lastMove.name);\n\t\t\t\t}\n\t\t\t\tthis.effectState.move = pokemon.lastMove.id;\n\t\t\t},\n\t\t\tonResidualOrder: 17,\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Disable');\n\t\t\t},\n\t\t\tonBeforeMovePriority: 7,\n\t\t\tonBeforeMove(attacker, defender, move) {\n\t\t\t\tif (!move.isZ && move.id === this.effectState.move) {\n\t\t\t\t\tthis.add('cant', attacker, 'Disable', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tdisarmingvoice: {\n\t\tnum: 574,\n\t\taccuracy: true,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Disarming Voice\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cute\",\n\t},\n\tdischarge: {\n\t\tnum: 435,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Discharge\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdireclaw: {\n\t\tnum: 827,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dire Claw\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tonHit(target, source) {\n\t\t\t\tconst result = this.random(3);\n\t\t\t\tif (result === 0) {\n\t\t\t\t\ttarget.trySetStatus('psn', source);\n\t\t\t\t} else if (result === 1) {\n\t\t\t\t\ttarget.trySetStatus('par', source);\n\t\t\t\t} else {\n\t\t\t\t\ttarget.trySetStatus('slp', source);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t},\n\tdive: {\n\t\tnum: 291,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dive\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1,\n\t\t\tnonsky: 1, allyanim: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\n\t\t},\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (attacker.hasAbility('gulpmissile') && attacker.species.name === 'Cramorant' && !attacker.transformed) {\n\t\t\t\tconst forme = attacker.hp <= attacker.maxhp / 2 ? 'cramorantgorging' : 'cramorantgulping';\n\t\t\t\tattacker.formeChange(forme, move);\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonImmunity(type, pokemon) {\n\t\t\t\tif (type === 'sandstorm' || type === 'hail') return false;\n\t\t\t},\n\t\t\tonInvulnerability(target, source, move) {\n\t\t\t\tif (['surf', 'whirlpool'].includes(move.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\t\tif (move.id === 'surf' || move.id === 'whirlpool') {\n\t\t\t\t\treturn this.chainModify(2);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdizzypunch: {\n\t\tnum: 146,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Dizzy Punch\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tdoodle: {\n\t\tnum: 867,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Doodle\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tonHit(target, source, move) {\n\t\t\tlet success: boolean | null = false;\n\t\t\tif (!target.getAbility().flags['failroleplay']) {\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tif (pokemon.ability === target.ability || pokemon.getAbility().flags['cantsuppress']) continue;\n\t\t\t\t\tconst oldAbility = pokemon.setAbility(target.ability);\n\t\t\t\t\tif (oldAbility) {\n\t\t\t\t\t\tthis.add('-ability', pokemon, target.getAbility().name, '[from] move: Doodle');\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t} else if (!success && oldAbility === null) {\n\t\t\t\t\t\tsuccess = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!success) {\n\t\t\t\tif (success === false) {\n\t\t\t\t\tthis.add('-fail', source);\n\t\t\t\t}\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Normal\",\n\t},\n\tdoomdesire: {\n\t\tnum: 353,\n\t\taccuracy: 100,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tname: \"Doom Desire\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1, futuremove: 1 },\n\t\tonTry(source, target) {\n\t\t\tif (!target.side.addSlotCondition(target, 'futuremove')) return false;\n\t\t\tObject.assign(target.side.slotConditions[target.position]['futuremove'], {\n\t\t\t\tmove: 'doomdesire',\n\t\t\t\tsource,\n\t\t\t\tmoveData: {\n\t\t\t\t\tid: 'doomdesire',\n\t\t\t\t\tname: \"Doom Desire\",\n\t\t\t\t\taccuracy: 100,\n\t\t\t\t\tbasePower: 140,\n\t\t\t\t\tcategory: \"Special\",\n\t\t\t\t\tpriority: 0,\n\t\t\t\t\tflags: { metronome: 1, futuremove: 1 },\n\t\t\t\t\teffectType: 'Move',\n\t\t\t\t\ttype: 'Steel',\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis.add('-start', source, 'Doom Desire');\n\t\t\treturn this.NOT_FAIL;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdoubleedge: {\n\t\tnum: 38,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Double-Edge\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [33, 100],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdoublehit: {\n\t\tnum: 458,\n\t\taccuracy: 90,\n\t\tbasePower: 35,\n\t\tcategory: \"Physical\",\n\t\tname: \"Double Hit\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 120 },\n\t\tcontestType: \"Cool\",\n\t},\n\tdoubleironbash: {\n\t\tnum: 742,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Double Iron Bash\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 140 },\n\t\tcontestType: \"Clever\",\n\t},\n\tdoublekick: {\n\t\tnum: 24,\n\t\taccuracy: 100,\n\t\tbasePower: 30,\n\t\tcategory: \"Physical\",\n\t\tname: \"Double Kick\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tmaxMove: { basePower: 80 },\n\t\tcontestType: \"Cool\",\n\t},\n\tdoubleshock: {\n\t\tnum: 892,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Double Shock\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tonTryMove(pokemon, target, move) {\n\t\t\tif (pokemon.hasType('Electric')) return;\n\t\t\tthis.add('-fail', pokemon, 'move: Double Shock');\n\t\t\tthis.attrLastMove('[still]');\n\t\t\treturn null;\n\t\t},\n\t\tself: {\n\t\t\tonHit(pokemon) {\n\t\t\t\tpokemon.setType(pokemon.getTypes(true).map(type => type === \"Electric\" ? \"???\" : type));\n\t\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.getTypes().join('/'), '[from] move: Double Shock');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Clever\",\n\t},\n\tdoubleslap: {\n\t\tnum: 3,\n\t\taccuracy: 85,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Double Slap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tdoubleteam: {\n\t\tnum: 104,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Double Team\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tevasion: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cool\",\n\t},\n\tdracometeor: {\n\t\tnum: 434,\n\t\taccuracy: 90,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tname: \"Draco Meteor\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspa: -2,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdragonascent: {\n\t\tnum: 620,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dragon Ascent\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdragonbreath: {\n\t\tnum: 225,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Dragon Breath\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdragoncheer: {\n\t\tnum: 913,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Dragon Cheer\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'dragoncheer',\n\t\tcondition: {\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tif (target.volatiles['focusenergy']) return false;\n\t\t\t\tif (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) {\n\t\t\t\t\tthis.add('-start', target, 'move: Dragon Cheer', '[silent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', target, 'move: Dragon Cheer');\n\t\t\t\t}\n\t\t\t\t// Store at the start because the boost doesn't change if a Pokemon\n\t\t\t\t// Terastallizes into Dragon while having this volatile\n\t\t\t\t// Found by DarkFE:\n\t\t\t\t// https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9894139\n\t\t\t\tthis.effectState.hasDragonType = target.hasType(\"Dragon\");\n\t\t\t},\n\t\t\tonModifyCritRatio(critRatio, source) {\n\t\t\t\treturn critRatio + (this.effectState.hasDragonType ? 2 : 1);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentAlly\",\n\t\ttype: \"Dragon\",\n\t},\n\tdragonclaw: {\n\t\tnum: 337,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dragon Claw\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdragondance: {\n\t\tnum: 349,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Dragon Dance\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, dance: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tspe: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Dragon\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cool\",\n\t},\n\tdragondarts: {\n\t\tnum: 751,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dragon Darts\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, noparentalbond: 1 },\n\t\tmultihit: 2,\n\t\tsmartTarget: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tmaxMove: { basePower: 130 },\n\t},\n\tdragonenergy: {\n\t\tnum: 820,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst bp = move.basePower * pokemon.hp / pokemon.maxhp;\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Dragon Energy\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dragon\",\n\t},\n\tdragonhammer: {\n\t\tnum: 692,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dragon Hammer\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdragonpulse: {\n\t\tnum: 406,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Special\",\n\t\tname: \"Dragon Pulse\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tdragonrage: {\n\t\tnum: 82,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamage: 40,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Dragon Rage\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdragonrush: {\n\t\tnum: 407,\n\t\taccuracy: 75,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dragon Rush\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdragontail: {\n\t\tnum: 525,\n\t\taccuracy: 90,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dragon Tail\",\n\t\tpp: 10,\n\t\tpriority: -6,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, noassist: 1, failcopycat: 1 },\n\t\tforceSwitch: true,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdrainingkiss: {\n\t\tnum: 577,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Draining Kiss\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [3, 4],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cute\",\n\t},\n\tdrainpunch: {\n\t\tnum: 409,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Drain Punch\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdreameater: {\n\t\tnum: 138,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Dream Eater\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tonTryImmunity(target) {\n\t\t\treturn target.status === 'slp' || target.hasAbility('comatose');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tdrillpeck: {\n\t\tnum: 65,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Drill Peck\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tdrillrun: {\n\t\tnum: 529,\n\t\taccuracy: 95,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Drill Run\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tdrumbeating: {\n\t\tnum: 778,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Drum Beating\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tdualchop: {\n\t\tnum: 530,\n\t\taccuracy: 90,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Dual Chop\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\tdualwingbeat: {\n\t\tnum: 814,\n\t\taccuracy: 90,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dual Wingbeat\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tmaxMove: { basePower: 130 },\n\t},\n\tdynamaxcannon: {\n\t\tnum: 744,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Dynamax Cannon\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, failencore: 1, nosleeptalk: 1, failcopycat: 1, failmimic: 1, failinstruct: 1, noparentalbond: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t},\n\tdynamicpunch: {\n\t\tnum: 223,\n\t\taccuracy: 50,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Dynamic Punch\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tearthpower: {\n\t\tnum: 414,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Earth Power\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tearthquake: {\n\t\tnum: 89,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Earthquake\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\techoedvoice: {\n\t\tnum: 497,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tlet bp = move.basePower;\n\t\t\tif (this.field.pseudoWeather.echoedvoice) {\n\t\t\t\tbp = move.basePower * this.field.pseudoWeather.echoedvoice.multiplier;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${move.basePower}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Echoed Voice\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tonTry() {\n\t\t\tthis.field.addPseudoWeather('echoedvoice');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonFieldStart() {\n\t\t\t\tthis.effectState.multiplier = 1;\n\t\t\t},\n\t\t\tonFieldRestart() {\n\t\t\t\tif (this.effectState.duration !== 2) {\n\t\t\t\t\tthis.effectState.duration = 2;\n\t\t\t\t\tif (this.effectState.multiplier < 5) {\n\t\t\t\t\t\tthis.effectState.multiplier++;\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: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\teerieimpulse: {\n\t\tnum: 598,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Eerie Impulse\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspa: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\teeriespell: {\n\t\tnum: 826,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Eerie Spell\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tonHit(target) {\n\t\t\t\tif (!target.hp) return;\n\t\t\t\tlet move: Move | ActiveMove | null = target.lastMove;\n\t\t\t\tif (!move || move.isZ) return;\n\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\n\n\t\t\t\tconst ppDeducted = target.deductPP(move.id, 3);\n\t\t\t\tif (!ppDeducted) return;\n\t\t\t\tthis.add('-activate', target, 'move: Eerie Spell', move.name, ppDeducted);\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\teggbomb: {\n\t\tnum: 121,\n\t\taccuracy: 75,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Egg Bomb\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\telectricterrain: {\n\t\tnum: 604,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Electric Terrain\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tterrain: 'electricterrain',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasItem('terrainextender')) {\n\t\t\t\t\treturn 8;\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 (status.id === 'slp' && target.isGrounded() && !target.isSemiInvulnerable()) {\n\t\t\t\t\tif (effect.id === 'yawn' || (effect.effectType === 'Move' && !effect.secondaries)) {\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Electric Terrain');\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonTryAddVolatile(status, target) {\n\t\t\t\tif (!target.isGrounded() || target.isSemiInvulnerable()) return;\n\t\t\t\tif (status.id === 'yawn') {\n\t\t\t\t\tthis.add('-activate', target, 'move: Electric Terrain');\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBasePowerPriority: 6,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tif (move.type === 'Electric' && attacker.isGrounded() && !attacker.isSemiInvulnerable()) {\n\t\t\t\t\tthis.debug('electric terrain boost');\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldStart(field, source, effect) {\n\t\t\t\tif (effect?.effectType === 'Ability') {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Electric Terrain', '[from] ability: ' + effect.name, `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Electric Terrain');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 7,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Electric Terrain');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\telectrify: {\n\t\tnum: 582,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Electrify\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'electrify',\n\t\tonTryHit(target) {\n\t\t\tif (!this.queue.willMove(target) && target.activeTurns) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'move: Electrify');\n\t\t\t},\n\t\t\tonModifyTypePriority: -2,\n\t\t\tonModifyType(move) {\n\t\t\t\tif (move.id !== 'struggle') {\n\t\t\t\t\tthis.debug('Electrify making move type electric');\n\t\t\t\t\tmove.type = 'Electric';\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\telectroball: {\n\t\tnum: 486,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tlet ratio = Math.floor(pokemon.getStat('spe') / target.getStat('spe'));\n\t\t\tif (!isFinite(ratio)) ratio = 0;\n\t\t\tconst bp = [40, 60, 80, 120, 150][Math.min(ratio, 4)];\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Electro Ball\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\telectrodrift: {\n\t\tnum: 879,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Electro Drift\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tonBasePower(basePower, source, target, move) {\n\t\t\tif (target.runEffectiveness(move) > 0) {\n\t\t\t\t// Placeholder\n\t\t\t\tthis.debug(`electro drift super effective buff`);\n\t\t\t\treturn this.chainModify([5461, 4096]);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\telectroshot: {\n\t\tnum: 905,\n\t\taccuracy: 100,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tname: \"Electro Shot\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tthis.boost({ spa: 1 }, attacker, attacker, move);\n\t\t\tif (['raindance', 'primordialsea'].includes(attacker.effectiveWeather())) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.addMove('-anim', attacker, move.name, defender);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: null,\n\t\thasSheerForce: true,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t},\n\telectroweb: {\n\t\tnum: 527,\n\t\taccuracy: 95,\n\t\tbasePower: 55,\n\t\tcategory: \"Special\",\n\t\tname: \"Electroweb\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tembargo: {\n\t\tnum: 373,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Embargo\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'embargo',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Embargo');\n\t\t\t\tthis.singleEvent('End', pokemon.getItem(), pokemon.itemState, pokemon);\n\t\t\t},\n\t\t\t// Item suppression implemented in Pokemon.ignoringItem() within sim/pokemon.js\n\t\t\tonResidualOrder: 21,\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Embargo');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tember: {\n\t\tnum: 52,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Ember\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cute\",\n\t},\n\tencore: {\n\t\tnum: 227,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Encore\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1, failencore: 1 },\n\t\tvolatileStatus: 'encore',\n\t\tcondition: {\n\t\t\tduration: 3,\n\t\t\tnoCopy: true, // doesn't get copied by Z-Baton Pass\n\t\t\tonStart(target) {\n\t\t\t\tlet move: Move | ActiveMove | null = target.lastMove;\n\t\t\t\tif (!move || target.volatiles['dynamax']) return false;\n\n\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\n\t\t\t\tconst moveIndex = target.moves.indexOf(move.id);\n\t\t\t\tif (move.isZ || move.flags['failencore'] || !target.moveSlots[moveIndex] || 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 = move.id;\n\t\t\t\tthis.add('-start', target, 'Encore');\n\t\t\t\tif (!this.queue.willMove(target)) {\n\t\t\t\t\tthis.effectState.duration!++;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonOverrideAction(pokemon, target, move) {\n\t\t\t\tif (move.id !== this.effectState.move) return this.effectState.move;\n\t\t\t},\n\t\t\tonResidualOrder: 16,\n\t\t\tonResidual(target) {\n\t\t\t\tif (!target.moves.includes(this.effectState.move) ||\n\t\t\t\t\ttarget.moveSlots[target.moves.indexOf(this.effectState.move)].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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tendeavor: {\n\t\tnum: 283,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon, target) {\n\t\t\treturn target.getUndynamaxedHP() - pokemon.hp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Endeavor\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, noparentalbond: 1 },\n\t\tonTryImmunity(target, pokemon) {\n\t\t\treturn pokemon.hp < target.hp;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\tendure: {\n\t\tnum: 203,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Endure\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'endure',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'move: Endure');\n\t\t\t},\n\t\t\tonDamagePriority: -10,\n\t\t\tonDamage(damage, target, source, effect) {\n\t\t\t\tif (effect?.effectType === 'Move' && damage >= target.hp) {\n\t\t\t\t\tthis.add('-activate', target, 'move: Endure');\n\t\t\t\t\treturn target.hp - 1;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\tenergyball: {\n\t\tnum: 412,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Energy Ball\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tentrainment: {\n\t\tnum: 494,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Entrainment\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tif (target === source || target.volatiles['dynamax']) return false;\n\t\t\tif (\n\t\t\t\ttarget.ability === source.ability ||\n\t\t\t\ttarget.getAbility().flags['cantsuppress'] || target.ability === 'truant' ||\n\t\t\t\tsource.getAbility().flags['noentrain']\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tconst oldAbility = target.setAbility(source.ability);\n\t\t\tif (oldAbility) {\n\t\t\t\tthis.add('-ability', target, target.getAbility().name, '[from] move: Entrainment');\n\t\t\t\tif (!target.isAlly(source)) target.volatileStaleness = 'external';\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn oldAbility as false | null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\teruption: {\n\t\tnum: 284,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst bp = move.basePower * pokemon.hp / pokemon.maxhp;\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Eruption\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tesperwing: {\n\t\tnum: 840,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Esper Wing\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\teternabeam: {\n\t\tnum: 795,\n\t\taccuracy: 90,\n\t\tbasePower: 160,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Eternabeam\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t},\n\texpandingforce: {\n\t\tnum: 797,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Expanding Force\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, source) {\n\t\t\tif (this.field.isTerrain('psychicterrain') && source.isGrounded()) {\n\t\t\t\tthis.debug('terrain buff');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, source, target) {\n\t\t\tif (this.field.isTerrain('psychicterrain') && source.isGrounded()) {\n\t\t\t\tmove.target = 'allAdjacentFoes';\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\texplosion: {\n\t\tnum: 153,\n\t\taccuracy: 100,\n\t\tbasePower: 250,\n\t\tcategory: \"Physical\",\n\t\tname: \"Explosion\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, noparentalbond: 1 },\n\t\tselfdestruct: \"always\",\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\textrasensory: {\n\t\tnum: 326,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Extrasensory\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\textremeevoboost: {\n\t\tnum: 702,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Extreme Evoboost\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"eeviumz\",\n\t\tboosts: {\n\t\t\tatk: 2,\n\t\t\tdef: 2,\n\t\t\tspa: 2,\n\t\t\tspd: 2,\n\t\t\tspe: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\textremespeed: {\n\t\tnum: 245,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Extreme Speed\",\n\t\tpp: 5,\n\t\tpriority: 2,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfacade: {\n\t\tnum: 263,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Facade\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon) {\n\t\t\tif (pokemon.status && pokemon.status !== 'slp') {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tfairylock: {\n\t\tnum: 587,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Fairy Lock\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tpseudoWeather: 'fairylock',\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonFieldStart(target) {\n\t\t\t\tthis.add('-fieldactivate', 'move: Fairy Lock');\n\t\t\t},\n\t\t\tonTrapPokemon(pokemon) {\n\t\t\t\tpokemon.tryTrap();\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tfairywind: {\n\t\tnum: 584,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Fairy Wind\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfakeout: {\n\t\tnum: 252,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fake Out\",\n\t\tpp: 10,\n\t\tpriority: 3,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.activeMoveActions > 1) {\n\t\t\t\tthis.hint(\"Fake Out only works on your first turn out.\");\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tfaketears: {\n\t\tnum: 313,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Fake Tears\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspd: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tfalsesurrender: {\n\t\tnum: 793,\n\t\taccuracy: true,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"False Surrender\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\tfalseswipe: {\n\t\tnum: 206,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"False Swipe\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonDamagePriority: -20,\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (damage >= target.hp) return target.hp - 1;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfeatherdance: {\n\t\tnum: 297,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Feather Dance\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, dance: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfeint: {\n\t\tnum: 364,\n\t\taccuracy: 100,\n\t\tbasePower: 30,\n\t\tcategory: \"Physical\",\n\t\tname: \"Feint\",\n\t\tpp: 10,\n\t\tpriority: 2,\n\t\tflags: { mirror: 1, noassist: 1, failcopycat: 1 },\n\t\tbreaksProtect: true,\n\t\t// Breaking protection implemented in scripts.js\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Clever\",\n\t},\n\tfeintattack: {\n\t\tnum: 185,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Feint Attack\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tfellstinger: {\n\t\tnum: 565,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fell Stinger\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\n\t\t\tif (!target || target.fainted || target.hp <= 0) this.boost({ atk: 3 }, pokemon, pokemon, move);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tficklebeam: {\n\t\tnum: 907,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Fickle Beam\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon) {\n\t\t\tif (this.randomChance(3, 10)) {\n\t\t\t\tthis.attrLastMove('[anim] Fickle Beam All Out');\n\t\t\t\tthis.add('-activate', pokemon, 'move: Fickle Beam');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t},\n\tfierydance: {\n\t\tnum: 552,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Fiery Dance\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, dance: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspa: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfierywrath: {\n\t\tnum: 822,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Fiery Wrath\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dark\",\n\t},\n\tfilletaway: {\n\t\tnum: 868,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Fillet Away\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.hp <= source.maxhp / 2 || source.maxhp === 1) return false;\n\t\t},\n\t\tonTryHit(pokemon, target, move) {\n\t\t\tif (!this.boost(move.boosts!)) return null;\n\t\t\tdelete move.boosts;\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tthis.directDamage(pokemon.maxhp / 2);\n\t\t},\n\t\tboosts: {\n\t\t\tatk: 2,\n\t\t\tspa: 2,\n\t\t\tspe: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\tfinalgambit: {\n\t\tnum: 515,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon) {\n\t\t\tconst damage = pokemon.hp;\n\t\t\tpokemon.faint();\n\t\t\treturn damage;\n\t\t},\n\t\tselfdestruct: \"ifHit\",\n\t\tcategory: \"Special\",\n\t\tname: \"Final Gambit\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, metronome: 1, noparentalbond: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { basePower: 180 },\n\t\tcontestType: \"Tough\",\n\t},\n\tfireblast: {\n\t\tnum: 126,\n\t\taccuracy: 85,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Fire Blast\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfirefang: {\n\t\tnum: 424,\n\t\taccuracy: 95,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fire Fang\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondaries: [\n\t\t\t{\n\t\t\t\tchance: 10,\n\t\t\t\tstatus: 'brn',\n\t\t\t}, {\n\t\t\t\tchance: 10,\n\t\t\t\tvolatileStatus: 'flinch',\n\t\t\t},\n\t\t],\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfirelash: {\n\t\tnum: 680,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fire Lash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cute\",\n\t},\n\tfirepledge: {\n\t\tnum: 519,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tbasePowerCallback(target, source, move) {\n\t\t\tif (['grasspledge', 'waterpledge'].includes(move.sourceEffect)) {\n\t\t\t\tthis.add('-combine');\n\t\t\t\treturn 150;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Fire Pledge\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1, pledgecombo: 1 },\n\t\tonPrepareHit(target, source, move) {\n\t\t\tfor (const action of this.queue.list as MoveAction[]) {\n\t\t\t\tif (\n\t\t\t\t\t!action.move || !action.pokemon?.isActive ||\n\t\t\t\t\taction.pokemon.fainted || action.maxMove || action.zmove\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (action.pokemon.isAlly(source) && ['grasspledge', 'waterpledge'].includes(action.move.id)) {\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\n\t\t\t\t\tthis.add('-waiting', source, action.pokemon);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move) {\n\t\t\tif (move.sourceEffect === 'waterpledge') {\n\t\t\t\tmove.type = 'Water';\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t\tmove.self = { sideCondition: 'waterpledge' };\n\t\t\t}\n\t\t\tif (move.sourceEffect === 'grasspledge') {\n\t\t\t\tmove.type = 'Fire';\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t\tmove.sideCondition = 'firepledge';\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'Fire Pledge');\n\t\t\t},\n\t\t\tonResidualOrder: 5,\n\t\t\tonResidualSubOrder: 1,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tif (!pokemon.hasType('Fire')) this.damage(pokemon.baseMaxhp / 8, pokemon);\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 8,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'Fire Pledge');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfirepunch: {\n\t\tnum: 7,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fire Punch\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Tough\",\n\t},\n\tfirespin: {\n\t\tnum: 83,\n\t\taccuracy: 85,\n\t\tbasePower: 35,\n\t\tcategory: \"Special\",\n\t\tname: \"Fire Spin\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfirstimpression: {\n\t\tnum: 660,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"First Impression\",\n\t\tpp: 10,\n\t\tpriority: 2,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.activeMoveActions > 1) {\n\t\t\t\tthis.hint(\"First Impression only works on your first turn out.\");\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tfishiousrend: {\n\t\tnum: 755,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) {\n\t\t\t\tthis.debug('Fishious Rend damage boost');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\tthis.debug('Fishious Rend NOT boosted');\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Fishious Rend\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t},\n\tfissure: {\n\t\tnum: 90,\n\t\taccuracy: 30,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fissure\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tohko: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\tflail: {\n\t\tnum: 175,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\tconst ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1);\n\t\t\tlet bp;\n\t\t\tif (ratio < 2) {\n\t\t\t\tbp = 200;\n\t\t\t} else if (ratio < 5) {\n\t\t\t\tbp = 150;\n\t\t\t} else if (ratio < 10) {\n\t\t\t\tbp = 100;\n\t\t\t} else if (ratio < 17) {\n\t\t\t\tbp = 80;\n\t\t\t} else if (ratio < 33) {\n\t\t\t\tbp = 40;\n\t\t\t} else {\n\t\t\t\tbp = 20;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Flail\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cute\",\n\t},\n\tflameburst: {\n\t\tnum: 481,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Flame Burst\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tfor (const ally of target.adjacentAllies()) {\n\t\t\t\tthis.damage(ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst'));\n\t\t\t}\n\t\t},\n\t\tonAfterSubDamage(damage, target, source, move) {\n\t\t\tfor (const ally of target.adjacentAllies()) {\n\t\t\t\tthis.damage(ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst'));\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflamecharge: {\n\t\tnum: 488,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Flame Charge\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tflamewheel: {\n\t\tnum: 172,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Flame Wheel\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflamethrower: {\n\t\tnum: 53,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Flamethrower\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflareblitz: {\n\t\tnum: 394,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Flare Blitz\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\trecoil: [33, 100],\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tflash: {\n\t\tnum: 148,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Flash\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\taccuracy: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflashcannon: {\n\t\tnum: 430,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Flash Cannon\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflatter: {\n\t\tnum: 260,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Flatter\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'confusion',\n\t\tboosts: {\n\t\t\tspa: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tfleurcannon: {\n\t\tnum: 705,\n\t\taccuracy: 90,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tname: \"Fleur Cannon\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspa: -2,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfling: {\n\t\tnum: 374,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fling\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, metronome: 1, noparentalbond: 1 },\n\t\tonPrepareHit(target, source, move) {\n\t\t\tif (source.ignoringItem()) return false;\n\t\t\tconst item = source.getItem();\n\t\t\tif (!this.singleEvent('TakeItem', item, source.itemState, source, source, move, item)) return false;\n\t\t\tif (!item.fling) return false;\n\t\t\tmove.basePower = item.fling.basePower;\n\t\t\tthis.debug(`BP: ${move.basePower}`);\n\t\t\tif (item.isBerry) {\n\t\t\t\tmove.onHit = function (foe) {\n\t\t\t\t\tif (this.singleEvent('Eat', item, null, foe, null, null)) {\n\t\t\t\t\t\tthis.runEvent('EatItem', foe, null, null, item);\n\t\t\t\t\t\tif (item.id === 'leppaberry') foe.staleness = 'external';\n\t\t\t\t\t}\n\t\t\t\t\tif (item.onEat) foe.ateBerry = true;\n\t\t\t\t};\n\t\t\t} else if (item.fling.effect) {\n\t\t\t\tmove.onHit = item.fling.effect;\n\t\t\t} else {\n\t\t\t\tif (!move.secondaries) move.secondaries = [];\n\t\t\t\tif (item.fling.status) {\n\t\t\t\t\tmove.secondaries.push({ status: item.fling.status });\n\t\t\t\t} else if (item.fling.volatileStatus) {\n\t\t\t\t\tmove.secondaries.push({ volatileStatus: item.fling.volatileStatus });\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource.addVolatile('fling');\n\t\t},\n\t\tcondition: {\n\t\t\tonUpdate(pokemon) {\n\t\t\t\tconst item = pokemon.getItem();\n\t\t\t\tpokemon.setItem('');\n\t\t\t\tpokemon.lastItem = item.id;\n\t\t\t\tpokemon.usedItemThisTurn = true;\n\t\t\t\tthis.add('-enditem', pokemon, item.name, '[from] move: Fling');\n\t\t\t\tthis.runEvent('AfterUseItem', pokemon, null, null, item);\n\t\t\t\tpokemon.removeVolatile('fling');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cute\",\n\t},\n\tflipturn: {\n\t\tnum: 812,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Flip Turn\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tselfSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t},\n\tfloatyfall: {\n\t\tnum: 731,\n\t\taccuracy: 95,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Floaty Fall\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, gravity: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfloralhealing: {\n\t\tnum: 666,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Floral Healing\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, heal: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tlet success = false;\n\t\t\tif (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tsuccess = !!this.heal(this.modify(target.baseMaxhp, 0.667));\n\t\t\t} else {\n\t\t\t\tsuccess = !!this.heal(Math.ceil(target.baseMaxhp * 0.5));\n\t\t\t}\n\t\t\tif (success && !target.isAlly(source)) {\n\t\t\t\ttarget.staleness = 'external';\n\t\t\t}\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', target, 'heal');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflowershield: {\n\t\tnum: 579,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Flower Shield\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { distance: 1, metronome: 1 },\n\t\tonHitField(t, source, move) {\n\t\t\tconst targets: Pokemon[] = [];\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tif (\n\t\t\t\t\tpokemon.hasType('Grass') &&\n\t\t\t\t\t(!pokemon.volatiles['maxguard'] ||\n\t\t\t\t\t\tthis.runEvent('TryHit', pokemon, source, move))\n\t\t\t\t) {\n\t\t\t\t\t// This move affects every Grass-type Pokemon in play.\n\t\t\t\t\ttargets.push(pokemon);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet success = false;\n\t\t\tfor (const target of targets) {\n\t\t\t\tsuccess = this.boost({ def: 1 }, target, source, move) || success;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tflowertrick: {\n\t\tnum: 870,\n\t\taccuracy: true,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Flower Trick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\twillCrit: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tfly: {\n\t\tnum: 19,\n\t\taccuracy: 95,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fly\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1,\n\t\t\tmetronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\n\t\t},\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonInvulnerability(target, source, move) {\n\t\t\t\tif (['gust', 'twister', 'skyuppercut', 'thunder', 'hurricane', 'smackdown', 'thousandarrows'].includes(move.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonSourceModifyDamage(damage, source, target, 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\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Clever\",\n\t},\n\tflyingpress: {\n\t\tnum: 560,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Flying Press\",\n\t\tpp: 10,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nonsky: 1, metronome: 1 },\n\t\tonEffectiveness(typeMod, target, type, move) {\n\t\t\treturn typeMod + this.dex.getEffectiveness('Flying', type);\n\t\t},\n\t\tpriority: 0,\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { basePower: 170 },\n\t\tcontestType: \"Tough\",\n\t},\n\tfocusblast: {\n\t\tnum: 411,\n\t\taccuracy: 70,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Focus Blast\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfocusenergy: {\n\t\tnum: 116,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Focus Energy\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'focusenergy',\n\t\tcondition: {\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tif (target.volatiles['dragoncheer']) return false;\n\t\t\t\tif (effect?.id === 'zpower') {\n\t\t\t\t\tthis.add('-start', target, 'move: Focus Energy', '[zeffect]');\n\t\t\t\t} else if (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) {\n\t\t\t\t\tthis.add('-start', target, 'move: Focus Energy', '[silent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', target, 'move: Focus Energy');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifyCritRatio(critRatio) {\n\t\t\t\treturn critRatio + 2;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tfocuspunch: {\n\t\tnum: 264,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tcategory: \"Physical\",\n\t\tname: \"Focus Punch\",\n\t\tpp: 20,\n\t\tpriority: -3,\n\t\tflags: {\n\t\t\tcontact: 1, protect: 1, punch: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1,\n\t\t},\n\t\tpriorityChargeCallback(pokemon) {\n\t\t\tpokemon.addVolatile('focuspunch');\n\t\t},\n\t\tbeforeMoveCallback(pokemon) {\n\t\t\tif (pokemon.volatiles['focuspunch']?.lostFocus) {\n\t\t\t\tthis.add('cant', pokemon, 'Focus Punch', 'Focus Punch');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Focus Punch');\n\t\t\t},\n\t\t\tonHit(pokemon, source, move) {\n\t\t\t\tif (move.category !== 'Status') {\n\t\t\t\t\tthis.effectState.lostFocus = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonTryAddVolatile(status, pokemon) {\n\t\t\t\tif (status.id === 'flinch') return null;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tfollowme: {\n\t\tnum: 266,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Follow Me\",\n\t\tpp: 20,\n\t\tpriority: 2,\n\t\tflags: { noassist: 1, failcopycat: 1 },\n\t\tvolatileStatus: 'followme',\n\t\tonTry(source) {\n\t\t\treturn this.activePerHalf > 1;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tif (effect?.id === 'zpower') {\n\t\t\t\t\tthis.add('-singleturn', target, 'move: Follow Me', '[zeffect]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-singleturn', target, 'move: Follow Me');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFoeRedirectTargetPriority: 1,\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\n\t\t\t\tif (!this.effectState.target.isSkyDropped() && this.validTarget(this.effectState.target, source, move.target)) {\n\t\t\t\t\tif (move.smartTarget) move.smartTarget = false;\n\t\t\t\t\tthis.debug(\"Follow Me redirected target of move\");\n\t\t\t\t\treturn this.effectState.target;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tforcepalm: {\n\t\tnum: 395,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Force Palm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tforesight: {\n\t\tnum: 193,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Foresight\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'foresight',\n\t\tonTryHit(target) {\n\t\t\tif (target.volatiles['miracleeye']) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true,\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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'crit2' },\n\t\tcontestType: \"Clever\",\n\t},\n\tforestscurse: {\n\t\tnum: 571,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Forest's Curse\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.hasType('Grass')) return false;\n\t\t\tif (!target.addType('Grass')) return false;\n\t\t\tthis.add('-start', target, 'typeadd', 'Grass', '[from] move: Forest\\'s Curse');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tfoulplay: {\n\t\tnum: 492,\n\t\taccuracy: 100,\n\t\tbasePower: 95,\n\t\tcategory: \"Physical\",\n\t\tname: \"Foul Play\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\toverrideOffensivePokemon: 'target',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tfreezedry: {\n\t\tnum: 573,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tname: \"Freeze-Dry\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonEffectiveness(typeMod, target, type) {\n\t\t\tif (type === 'Water') return 1;\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'frz',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfreezeshock: {\n\t\tnum: 553,\n\t\taccuracy: 90,\n\t\tbasePower: 140,\n\t\tcategory: \"Physical\",\n\t\tname: \"Freeze Shock\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfreezingglare: {\n\t\tnum: 821,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Freezing Glare\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'frz',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tfreezyfrost: {\n\t\tnum: 739,\n\t\taccuracy: 90,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Freezy Frost\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tonHit() {\n\t\t\tthis.add('-clearallboost');\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tpokemon.clearBoosts();\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Clever\",\n\t},\n\tfrenzyplant: {\n\t\tnum: 338,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tname: \"Frenzy Plant\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfrostbreath: {\n\t\tnum: 524,\n\t\taccuracy: 90,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Frost Breath\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\twillCrit: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfrustration: {\n\t\tnum: 218,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\treturn Math.floor(((255 - pokemon.happiness) * 10) / 25) || 1;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Frustration\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cute\",\n\t},\n\tfuryattack: {\n\t\tnum: 31,\n\t\taccuracy: 85,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fury Attack\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfurycutter: {\n\t\tnum: 210,\n\t\taccuracy: 95,\n\t\tbasePower: 40,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (!pokemon.volatiles['furycutter'] || move.hit === 1) {\n\t\t\t\tpokemon.addVolatile('furycutter');\n\t\t\t}\n\t\t\tconst bp = this.clampIntRange(move.basePower * pokemon.volatiles['furycutter'].multiplier, 1, 160);\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Fury Cutter\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonStart() {\n\t\t\t\tthis.effectState.multiplier = 1;\n\t\t\t},\n\t\t\tonRestart() {\n\t\t\t\tif (this.effectState.multiplier < 4) {\n\t\t\t\t\tthis.effectState.multiplier <<= 1;\n\t\t\t\t}\n\t\t\t\tthis.effectState.duration = 2;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfuryswipes: {\n\t\tnum: 154,\n\t\taccuracy: 80,\n\t\tbasePower: 18,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fury Swipes\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tmaxMove: { basePower: 100 },\n\t\tcontestType: \"Tough\",\n\t},\n\tfusionbolt: {\n\t\tnum: 559,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Fusion Bolt\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon) {\n\t\t\tif (this.lastSuccessfulMoveThisTurn === 'fusionflare') {\n\t\t\t\tthis.debug('double power');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tfusionflare: {\n\t\tnum: 558,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Fusion Flare\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon) {\n\t\t\tif (this.lastSuccessfulMoveThisTurn === 'fusionbolt') {\n\t\t\t\tthis.debug('double power');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tfuturesight: {\n\t\tnum: 248,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Future Sight\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { allyanim: 1, metronome: 1, futuremove: 1 },\n\t\tignoreImmunity: true,\n\t\tonTry(source, target) {\n\t\t\tif (!target.side.addSlotCondition(target, 'futuremove')) return false;\n\t\t\tObject.assign(target.side.slotConditions[target.position]['futuremove'], {\n\t\t\t\tmove: 'futuresight',\n\t\t\t\tsource,\n\t\t\t\tmoveData: {\n\t\t\t\t\tid: 'futuresight',\n\t\t\t\t\tname: \"Future Sight\",\n\t\t\t\t\taccuracy: 100,\n\t\t\t\t\tbasePower: 120,\n\t\t\t\t\tcategory: \"Special\",\n\t\t\t\t\tpriority: 0,\n\t\t\t\t\tflags: { allyanim: 1, metronome: 1, futuremove: 1 },\n\t\t\t\t\tignoreImmunity: false,\n\t\t\t\t\teffectType: 'Move',\n\t\t\t\t\ttype: 'Psychic',\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis.add('-start', source, 'move: Future Sight');\n\t\t\treturn this.NOT_FAIL;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tgastroacid: {\n\t\tnum: 380,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Gastro Acid\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'gastroacid',\n\t\tonTryHit(target) {\n\t\t\tif (target.getAbility().flags['cantsuppress']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (target.hasItem('Ability Shield')) {\n\t\t\t\tthis.add('-block', target, 'item: Ability Shield');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\t// Ability suppression implemented in Pokemon.ignoringAbility() within sim/pokemon.ts\n\t\t\tonStart(pokemon) {\n\t\t\t\tif (pokemon.hasItem('Ability Shield')) return false;\n\t\t\t\tthis.add('-endability', pokemon);\n\t\t\t\tthis.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon, pokemon, 'gastroacid');\n\t\t\t},\n\t\t\tonCopy(pokemon) {\n\t\t\t\tif (pokemon.getAbility().flags['cantsuppress']) pokemon.removeVolatile('gastroacid');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tgeargrind: {\n\t\tnum: 544,\n\t\taccuracy: 85,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Gear Grind\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Clever\",\n\t},\n\tgearup: {\n\t\tnum: 674,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Gear Up\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, bypasssub: 1, metronome: 1 },\n\t\tonHitSide(side, source, move) {\n\t\t\tconst targets = side.allies().filter(target => (\n\t\t\t\ttarget.hasAbility(['plus', 'minus']) &&\n\t\t\t\t(!target.volatiles['maxguard'] || this.runEvent('TryHit', target, source, move))\n\t\t\t));\n\t\t\tif (!targets.length) return false;\n\t\t\tlet didSomething = false;\n\t\t\tfor (const target of targets) {\n\t\t\t\tdidSomething = this.boost({ atk: 1, spa: 1 }, target, source, move, false, true) || didSomething;\n\t\t\t}\n\t\t\treturn didSomething;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Steel\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tgenesissupernova: {\n\t\tnum: 703,\n\t\taccuracy: true,\n\t\tbasePower: 185,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Genesis Supernova\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"mewniumz\",\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tonHit() {\n\t\t\t\t\tthis.field.setTerrain('psychicterrain');\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgeomancy: {\n\t\tnum: 601,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Geomancy\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, nonsky: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tboosts: {\n\t\t\tspa: 2,\n\t\t\tspd: 2,\n\t\t\tspe: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tgigadrain: {\n\t\tnum: 202,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tname: \"Giga Drain\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Clever\",\n\t},\n\tgigaimpact: {\n\t\tnum: 416,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Physical\",\n\t\tname: \"Giga Impact\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, recharge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tgigatonhammer: {\n\t\tnum: 893,\n\t\taccuracy: 100,\n\t\tbasePower: 160,\n\t\tcategory: \"Physical\",\n\t\tname: \"Gigaton Hammer\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, cantusetwice: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\tgigavolthavoc: {\n\t\tnum: 646,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Gigavolt Havoc\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"electriumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tglaciallance: {\n\t\tnum: 824,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Glacial Lance\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ice\",\n\t},\n\tglaciate: {\n\t\tnum: 549,\n\t\taccuracy: 95,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Glaciate\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tglaiverush: {\n\t\tnum: 862,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Glaive Rush\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'glaiverush',\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singlemove', pokemon, 'Glaive Rush', '[silent]');\n\t\t\t},\n\t\t\tonAccuracy() {\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tonSourceModifyDamage() {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t},\n\t\t\tonBeforeMovePriority: 100,\n\t\t\tonBeforeMove(pokemon) {\n\t\t\t\tthis.debug('removing Glaive Rush drawback before attack');\n\t\t\t\tpokemon.removeVolatile('glaiverush');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t},\n\tglare: {\n\t\tnum: 137,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Glare\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'par',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tglitzyglow: {\n\t\tnum: 736,\n\t\taccuracy: 95,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Glitzy Glow\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tsideCondition: 'lightscreen',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tgmaxbefuddle: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Befuddle\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Butterfree\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tconst result = this.random(3);\n\t\t\t\t\tif (result === 0) {\n\t\t\t\t\t\tpokemon.trySetStatus('slp', source);\n\t\t\t\t\t} else if (result === 1) {\n\t\t\t\t\t\tpokemon.trySetStatus('par', source);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpokemon.trySetStatus('psn', source);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxcannonade: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Cannonade\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Blastoise\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('gmaxcannonade');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Cannonade');\n\t\t\t},\n\t\t\tonResidualOrder: 5,\n\t\t\tonResidualSubOrder: 1,\n\t\t\tonResidual(target) {\n\t\t\t\tif (!target.hasType('Water')) this.damage(target.baseMaxhp / 6, target);\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 11,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Cannonade');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxcentiferno: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Centiferno\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Centiskorch\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.addVolatile('partiallytrapped', source, this.dex.getActiveMove('G-Max Centiferno'));\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxchistrike: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Chi Strike\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Machamp\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tpokemon.addVolatile('gmaxchistrike');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tthis.effectState.layers = 1;\n\t\t\t\tif (!['costar', 'imposter', 'psychup', 'transform'].includes(effect?.id)) {\n\t\t\t\t\tthis.add('-start', target, 'move: G-Max Chi Strike');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonRestart(target, source, effect) {\n\t\t\t\tif (this.effectState.layers >= 3) return false;\n\t\t\t\tthis.effectState.layers++;\n\t\t\t\tif (!['costar', 'imposter', 'psychup', 'transform'].includes(effect?.id)) {\n\t\t\t\t\tthis.add('-start', target, 'move: G-Max Chi Strike');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifyCritRatio(critRatio) {\n\t\t\t\treturn critRatio + this.effectState.layers;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxcuddle: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Cuddle\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Eevee\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.addVolatile('attract');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxdepletion: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Depletion\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Duraludon\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tlet move: Move | ActiveMove | null = pokemon.lastMove;\n\t\t\t\t\tif (!move || move.isZ) continue;\n\t\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\n\n\t\t\t\t\tconst ppDeducted = pokemon.deductPP(move.id, 2);\n\t\t\t\t\tif (ppDeducted) {\n\t\t\t\t\t\tthis.add(\"-activate\", pokemon, 'move: G-Max Depletion', move.name, ppDeducted);\n\t\t\t\t\t\t// Don't return here because returning early doesn't trigger\n\t\t\t\t\t\t// activation text for the second Pokemon in doubles\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: \"adjacentFoe\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxdrumsolo: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 160,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Drum Solo\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Rillaboom\",\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxfinale: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Finale\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Alcremie\",\n\t\tself: {\n\t\t\tonHit(target, source, move) {\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tthis.heal(pokemon.maxhp / 6, pokemon, source, move);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxfireball: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 160,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Fireball\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Cinderace\",\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxfoamburst: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Foam Burst\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Kingler\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ spe: -2 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxgoldrush: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Gold Rush\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Meowth\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.addVolatile('confusion');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxgravitas: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Gravitas\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Orbeetle\",\n\t\tself: {\n\t\t\tpseudoWeather: 'gravity',\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxhydrosnipe: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 160,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Hydrosnipe\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Inteleon\",\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxmalodor: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Malodor\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Garbodor\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.trySetStatus('psn', source);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxmeltdown: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Meltdown\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Melmetal\",\n\t\tself: {\n\t\t\tonHit(source, target, effect) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tif (!pokemon.volatiles['dynamax']) pokemon.addVolatile('torment', source, effect);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxoneblow: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max One Blow\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Urshifu\",\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxrapidflow: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Rapid Flow\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Urshifu-Rapid-Strike\",\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxreplenish: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Replenish\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Snorlax\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (this.randomChance(1, 2)) return;\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tif (pokemon.item) continue;\n\n\t\t\t\t\tif (pokemon.lastItem && this.dex.items.get(pokemon.lastItem).isBerry) {\n\t\t\t\t\t\tconst item = pokemon.lastItem;\n\t\t\t\t\t\tpokemon.lastItem = '';\n\t\t\t\t\t\tthis.add('-item', pokemon, this.dex.items.get(item), '[from] move: G-Max Replenish');\n\t\t\t\t\t\tpokemon.setItem(item);\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: \"adjacentFoe\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxresonance: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Resonance\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Lapras\",\n\t\tself: {\n\t\t\tsideCondition: 'auroraveil',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxsandblast: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Sandblast\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Sandaconda\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.addVolatile('partiallytrapped', source, this.dex.getActiveMove('G-Max Sandblast'));\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxsmite: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Smite\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Hatterene\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.addVolatile('confusion', source);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxsnooze: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Snooze\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Grimmsnarl\",\n\t\tonHit(target) {\n\t\t\tif (target.status || !target.runStatusImmunity('slp')) return;\n\t\t\tif (this.randomChance(1, 2)) return;\n\t\t\ttarget.addVolatile('yawn');\n\t\t},\n\t\tonAfterSubDamage(damage, target) {\n\t\t\tif (target.status || !target.runStatusImmunity('slp')) return;\n\t\t\tif (this.randomChance(1, 2)) return;\n\t\t\ttarget.addVolatile('yawn');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxsteelsurge: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Steelsurge\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Copperajah\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('gmaxsteelsurge');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcondition: {\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: G-Max Steelsurge');\n\t\t\t},\n\t\t\tonSwitchIn(pokemon) {\n\t\t\t\tif (pokemon.hasItem('heavydutyboots')) return;\n\t\t\t\t// Ice Face and Disguise correctly get typed damage from Stealth Rock\n\t\t\t\t// because Stealth Rock bypasses Substitute.\n\t\t\t\t// They don't get typed damage from Steelsurge because Steelsurge doesn't,\n\t\t\t\t// so we're going to test the damage of a Steel-type Stealth Rock instead.\n\t\t\t\tconst steelHazard = this.dex.getActiveMove('Stealth Rock');\n\t\t\t\tsteelHazard.type = 'Steel';\n\t\t\t\tconst typeMod = this.clampIntRange(pokemon.runEffectiveness(steelHazard), -6, 6);\n\t\t\t\tthis.damage(pokemon.maxhp * (2 ** typeMod) / 8);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxstonesurge: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Stonesurge\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Drednaw\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('stealthrock');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxstunshock: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Stun Shock\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Toxtricity\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tconst result = this.random(2);\n\t\t\t\t\tif (result === 0) {\n\t\t\t\t\t\tpokemon.trySetStatus('par', source);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpokemon.trySetStatus('psn', source);\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: \"adjacentFoe\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxsweetness: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Sweetness\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Appletun\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const ally of source.side.pokemon) {\n\t\t\t\t\tally.cureStatus();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxtartness: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Tartness\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Flapple\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ evasion: -1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxterror: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Terror\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Gengar\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.addVolatile('trapped', source, null, 'trapper');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxvinelash: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Vine Lash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Venusaur\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('gmaxvinelash');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Vine Lash');\n\t\t\t},\n\t\t\tonResidualOrder: 5,\n\t\t\tonResidualSubOrder: 1,\n\t\t\tonResidual(target) {\n\t\t\t\tif (!target.hasType('Grass')) this.damage(target.baseMaxhp / 6, target);\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 11,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Vine Lash');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxvolcalith: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Volcalith\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Coalossal\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('gmaxvolcalith');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Volcalith');\n\t\t\t},\n\t\t\tonResidualOrder: 5,\n\t\t\tonResidualSubOrder: 1,\n\t\t\tonResidual(target) {\n\t\t\t\tif (!target.hasType('Rock')) this.damage(target.baseMaxhp / 6, target);\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 11,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Volcalith');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxvoltcrash: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Volt Crash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Pikachu\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tpokemon.trySetStatus('par', source);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxwildfire: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Wildfire\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Charizard\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('gmaxwildfire');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Wildfire');\n\t\t\t},\n\t\t\tonResidualOrder: 5,\n\t\t\tonResidualSubOrder: 1,\n\t\t\tonResidual(target) {\n\t\t\t\tif (!target.hasType('Fire')) this.damage(target.baseMaxhp / 6, target);\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 11,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Wildfire');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgmaxwindrage: {\n\t\tnum: 1000,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Gigantamax\",\n\t\tname: \"G-Max Wind Rage\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: \"Corviknight\",\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tlet success = false;\n\t\t\t\tconst removeTarget = [\n\t\t\t\t\t'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb',\n\t\t\t\t];\n\t\t\t\tconst removeAll = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\t\tfor (const targetCondition of removeTarget) {\n\t\t\t\t\tif (source.side.foe.removeSideCondition(targetCondition)) {\n\t\t\t\t\t\tif (!removeAll.includes(targetCondition)) continue;\n\t\t\t\t\t\tthis.add('-sideend', source.side.foe, this.dex.conditions.get(targetCondition).name, '[from] move: G-Max Wind Rage', `[of] ${source}`);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const sideCondition of removeAll) {\n\t\t\t\t\tif (source.side.removeSideCondition(sideCondition)) {\n\t\t\t\t\t\tthis.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: G-Max Wind Rage', `[of] ${source}`);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.field.clearTerrain();\n\t\t\t\treturn success;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgrassknot: {\n\t\tnum: 447,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tconst targetWeight = target.getWeight();\n\t\t\tlet bp;\n\t\t\tif (targetWeight >= 2000) {\n\t\t\t\tbp = 120;\n\t\t\t} else if (targetWeight >= 1000) {\n\t\t\t\tbp = 100;\n\t\t\t} else if (targetWeight >= 500) {\n\t\t\t\tbp = 80;\n\t\t\t} else if (targetWeight >= 250) {\n\t\t\t\tbp = 60;\n\t\t\t} else if (targetWeight >= 100) {\n\t\t\t\tbp = 40;\n\t\t\t} else {\n\t\t\t\tbp = 20;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Grass Knot\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target.volatiles['dynamax']) {\n\t\t\t\tthis.add('-fail', source, 'move: Grass Knot', '[from] Dynamax');\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cute\",\n\t},\n\tgrasspledge: {\n\t\tnum: 520,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tbasePowerCallback(target, source, move) {\n\t\t\tif (['waterpledge', 'firepledge'].includes(move.sourceEffect)) {\n\t\t\t\tthis.add('-combine');\n\t\t\t\treturn 150;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Grass Pledge\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1, pledgecombo: 1 },\n\t\tonPrepareHit(target, source, move) {\n\t\t\tfor (const action of this.queue.list as MoveAction[]) {\n\t\t\t\tif (\n\t\t\t\t\t!action.move || !action.pokemon?.isActive ||\n\t\t\t\t\taction.pokemon.fainted || action.maxMove || action.zmove\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (action.pokemon.isAlly(source) && ['waterpledge', 'firepledge'].includes(action.move.id)) {\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\n\t\t\t\t\tthis.add('-waiting', source, action.pokemon);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move) {\n\t\t\tif (move.sourceEffect === 'waterpledge') {\n\t\t\t\tmove.type = 'Grass';\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t\tmove.sideCondition = 'grasspledge';\n\t\t\t}\n\t\t\tif (move.sourceEffect === 'firepledge') {\n\t\t\t\tmove.type = 'Fire';\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t\tmove.sideCondition = 'firepledge';\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'Grass Pledge');\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 9,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'Grass Pledge');\n\t\t\t},\n\t\t\tonModifySpe(spe, pokemon) {\n\t\t\t\treturn this.chainModify(0.25);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tgrasswhistle: {\n\t\tnum: 320,\n\t\taccuracy: 55,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Grass Whistle\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tstatus: 'slp',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tgrassyglide: {\n\t\tnum: 803,\n\t\taccuracy: 100,\n\t\tbasePower: 55,\n\t\tcategory: \"Physical\",\n\t\tname: \"Grassy Glide\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyPriority(priority, source, target, move) {\n\t\t\tif (this.field.isTerrain('grassyterrain') && source.isGrounded()) {\n\t\t\t\treturn priority + 1;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tgrassyterrain: {\n\t\tnum: 580,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Grassy Terrain\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tterrain: 'grassyterrain',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasItem('terrainextender')) {\n\t\t\t\t\treturn 8;\n\t\t\t\t}\n\t\t\t\treturn 5;\n\t\t\t},\n\t\t\tonBasePowerPriority: 6,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tconst weakenedMoves = ['earthquake', 'bulldoze', 'magnitude'];\n\t\t\t\tif (weakenedMoves.includes(move.id) && defender.isGrounded() && !defender.isSemiInvulnerable()) {\n\t\t\t\t\tthis.debug('move weakened by grassy terrain');\n\t\t\t\t\treturn this.chainModify(0.5);\n\t\t\t\t}\n\t\t\t\tif (move.type === 'Grass' && attacker.isGrounded()) {\n\t\t\t\t\tthis.debug('grassy terrain boost');\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldStart(field, source, effect) {\n\t\t\t\tif (effect?.effectType === 'Ability') {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Grassy Terrain', '[from] ability: ' + effect.name, `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Grassy Terrain');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidualOrder: 5,\n\t\t\tonResidualSubOrder: 2,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tif (pokemon.isGrounded() && !pokemon.isSemiInvulnerable()) {\n\t\t\t\t\tthis.heal(pokemon.baseMaxhp / 16, pokemon, pokemon);\n\t\t\t\t} else {\n\t\t\t\t\tthis.debug(`Pokemon semi-invuln or not grounded; Grassy Terrain skipped`);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 7,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Grassy Terrain');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tgravapple: {\n\t\tnum: 788,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Grav Apple\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tonBasePower(basePower) {\n\t\t\tif (this.field.getPseudoWeather('gravity')) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tgravity: {\n\t\tnum: 356,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Gravity\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tpseudoWeather: 'gravity',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Gravity');\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\tonFieldStart(target, source) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Gravity', '[persistent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Gravity');\n\t\t\t\t}\n\t\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\t\tlet applies = false;\n\t\t\t\t\tif (pokemon.removeVolatile('bounce') || pokemon.removeVolatile('fly')) {\n\t\t\t\t\t\tapplies = true;\n\t\t\t\t\t\tthis.queue.cancelMove(pokemon);\n\t\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\n\t\t\t\t\t}\n\t\t\t\t\tif (pokemon.volatiles['skydrop']) {\n\t\t\t\t\t\tapplies = true;\n\t\t\t\t\t\tthis.queue.cancelMove(pokemon);\n\n\t\t\t\t\t\tif (pokemon.volatiles['skydrop'].source) {\n\t\t\t\t\t\t\tthis.add('-end', pokemon.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpokemon.removeVolatile('skydrop');\n\t\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\n\t\t\t\t\t}\n\t\t\t\t\tif (pokemon.volatiles['magnetrise']) {\n\t\t\t\t\t\tapplies = true;\n\t\t\t\t\t\tdelete pokemon.volatiles['magnetrise'];\n\t\t\t\t\t}\n\t\t\t\t\tif (pokemon.volatiles['telekinesis']) {\n\t\t\t\t\t\tapplies = true;\n\t\t\t\t\t\tdelete pokemon.volatiles['telekinesis'];\n\t\t\t\t\t}\n\t\t\t\t\tif (applies) this.add('-activate', pokemon, 'move: Gravity');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifyAccuracy(accuracy) {\n\t\t\t\tif (typeof accuracy !== 'number') return;\n\t\t\t\treturn this.chainModify([6840, 4096]);\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.id).flags['gravity']) {\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\t// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded\n\t\t\tonBeforeMovePriority: 6,\n\t\t\tonBeforeMove(pokemon, target, move) {\n\t\t\t\tif (move.flags['gravity'] && !move.isZ) {\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Gravity', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifyMove(move, pokemon, target) {\n\t\t\t\tif (move.flags['gravity'] && !move.isZ) {\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Gravity', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 2,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Gravity');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tgrowl: {\n\t\tnum: 45,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Growl\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tgrowth: {\n\t\tnum: 74,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Growth\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) move.boosts = { atk: 2, spa: 2 };\n\t\t},\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tspa: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tgrudge: {\n\t\tnum: 288,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Grudge\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'grudge',\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singlemove', pokemon, 'Grudge');\n\t\t\t},\n\t\t\tonFaint(target, source, effect) {\n\t\t\t\tif (!source || source.fainted || !effect) return;\n\t\t\t\tif (effect.effectType === 'Move' && !effect.flags['futuremove'] && source.lastMove) {\n\t\t\t\t\tlet move: Move = source.lastMove;\n\t\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\n\n\t\t\t\t\tfor (const moveSlot of source.moveSlots) {\n\t\t\t\t\t\tif (moveSlot.id === move.id) {\n\t\t\t\t\t\t\tmoveSlot.pp = 0;\n\t\t\t\t\t\t\tthis.add('-activate', source, 'move: Grudge', move.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBeforeMovePriority: 100,\n\t\t\tonBeforeMove(pokemon) {\n\t\t\t\tthis.debug('removing Grudge before attack');\n\t\t\t\tpokemon.removeVolatile('grudge');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { effect: 'redirect' },\n\t\tcontestType: \"Tough\",\n\t},\n\tguardianofalola: {\n\t\tnum: 698,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon, target) {\n\t\t\tconst hp75 = Math.floor(target.getUndynamaxedHP() * 3 / 4);\n\t\t\tif (\n\t\t\t\ttarget.volatiles['protect'] || target.volatiles['banefulbunker'] || target.volatiles['kingsshield'] ||\n\t\t\t\ttarget.volatiles['spikyshield'] || target.side.getSideCondition('matblock')\n\t\t\t) {\n\t\t\t\tthis.add('-zbroken', target);\n\t\t\t\treturn this.clampIntRange(Math.ceil(hp75 / 4 - 0.5), 1);\n\t\t\t}\n\t\t\treturn this.clampIntRange(hp75, 1);\n\t\t},\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Guardian of Alola\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"tapuniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Tough\",\n\t},\n\tguardsplit: {\n\t\tnum: 470,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Guard Split\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst newdef = Math.floor((target.storedStats.def + source.storedStats.def) / 2);\n\t\t\ttarget.storedStats.def = newdef;\n\t\t\tsource.storedStats.def = newdef;\n\t\t\tconst newspd = Math.floor((target.storedStats.spd + source.storedStats.spd) / 2);\n\t\t\ttarget.storedStats.spd = newspd;\n\t\t\tsource.storedStats.spd = newspd;\n\t\t\tthis.add('-activate', source, 'move: Guard Split', `[of] ${target}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tguardswap: {\n\t\tnum: 385,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Guard Swap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst targetBoosts: SparseBoostsTable = {};\n\t\t\tconst sourceBoosts: SparseBoostsTable = {};\n\n\t\t\tconst defSpd: BoostID[] = ['def', 'spd'];\n\t\t\tfor (const stat of defSpd) {\n\t\t\t\ttargetBoosts[stat] = target.boosts[stat];\n\t\t\t\tsourceBoosts[stat] = source.boosts[stat];\n\t\t\t}\n\n\t\t\tsource.setBoost(targetBoosts);\n\t\t\ttarget.setBoost(sourceBoosts);\n\n\t\t\tthis.add('-swapboost', source, target, 'def, spd', '[from] move: Guard Swap');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tguillotine: {\n\t\tnum: 12,\n\t\taccuracy: 30,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tname: \"Guillotine\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tohko: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\tgunkshot: {\n\t\tnum: 441,\n\t\taccuracy: 80,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Gunk Shot\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tgust: {\n\t\tnum: 16,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Gust\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, wind: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Clever\",\n\t},\n\tgyroball: {\n\t\tnum: 360,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tlet power = Math.floor(25 * target.getStat('spe') / pokemon.getStat('spe')) + 1;\n\t\t\tif (!isFinite(power)) power = 1;\n\t\t\tif (power > 150) power = 150;\n\t\t\tthis.debug(`BP: ${power}`);\n\t\t\treturn power;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Gyro Ball\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\thail: {\n\t\tnum: 258,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hail\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tweather: 'hail',\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Ice\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\thammerarm: {\n\t\tnum: 359,\n\t\taccuracy: 90,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Hammer Arm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\thappyhour: {\n\t\tnum: 603,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Happy Hour\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tthis.add('-activate', target, 'move: Happy Hour');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tharden: {\n\t\tnum: 106,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Harden\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\thardpress: {\n\t\tnum: 912,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tconst hp = target.hp;\n\t\t\tconst maxHP = target.maxhp;\n\t\t\tconst bp = Math.floor(Math.floor((100 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1;\n\t\t\tthis.debug(`BP for ${hp}/${maxHP} HP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Hard Press\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\thaze: {\n\t\tnum: 114,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Haze\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, metronome: 1 },\n\t\tonHitField() {\n\t\t\tthis.add('-clearallboost');\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tpokemon.clearBoosts();\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Ice\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\theadbutt: {\n\t\tnum: 29,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Headbutt\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\theadcharge: {\n\t\tnum: 543,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Head Charge\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [1, 4],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\theadlongrush: {\n\t\tnum: 838,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Headlong Rush\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t},\n\theadsmash: {\n\t\tnum: 457,\n\t\taccuracy: 80,\n\t\tbasePower: 150,\n\t\tcategory: \"Physical\",\n\t\tname: \"Head Smash\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\thealbell: {\n\t\tnum: 215,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Heal Bell\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, sound: 1, distance: 1, bypasssub: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tthis.add('-activate', source, 'move: Heal Bell');\n\t\t\tlet success = false;\n\t\t\tconst allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];\n\t\t\tfor (const ally of allies) {\n\t\t\t\tif (ally !== source) {\n\t\t\t\t\tif (ally.hasAbility('soundproof')) {\n\t\t\t\t\t\tthis.add('-immune', ally, '[from] ability: Soundproof');\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (ally.hasAbility('goodasgold')) {\n\t\t\t\t\t\tthis.add('-immune', ally, '[from] ability: Good as Gold');\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ally.cureStatus()) success = true;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\ttarget: \"allyTeam\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\thealblock: {\n\t\tnum: 377,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Heal Block\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'healblock',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(target, source, effect) {\n\t\t\t\tif (effect?.name === \"Psychic Noise\") {\n\t\t\t\t\treturn 2;\n\t\t\t\t}\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Heal Block');\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\tonStart(pokemon, source) {\n\t\t\t\tthis.add('-start', pokemon, 'move: Heal Block');\n\t\t\t\tsource.moveThisTurnResult = true;\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.id).flags['heal']) {\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\tonBeforeMovePriority: 6,\n\t\t\tonBeforeMove(pokemon, target, move) {\n\t\t\t\tif (move.flags['heal'] && !move.isZ && !move.isMax) {\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Heal Block', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifyMove(move, pokemon, target) {\n\t\t\t\tif (move.flags['heal'] && !move.isZ && !move.isMax) {\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Heal Block', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidualOrder: 20,\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'move: Heal Block');\n\t\t\t},\n\t\t\tonTryHeal(damage, target, source, effect) {\n\t\t\t\tif ((effect?.id === 'zpower') || this.effectState.isZ) return damage;\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonRestart(target, source, effect) {\n\t\t\t\tif (effect?.name === 'Psychic Noise') return;\n\n\t\t\t\tthis.add('-fail', target, 'move: Heal Block'); // Succeeds to supress downstream messages\n\t\t\t\tif (!source.moveThisTurnResult) {\n\t\t\t\t\tsource.moveThisTurnResult = false;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\thealingwish: {\n\t\tnum: 361,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Healing Wish\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonTryHit(source) {\n\t\t\tif (!this.canSwitch(source.side)) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('-fail', source);\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t},\n\t\tselfdestruct: \"ifHit\",\n\t\tslotCondition: 'healingwish',\n\t\tcondition: {\n\t\t\tonSwitchIn(target) {\n\t\t\t\tthis.singleEvent('Swap', this.effect, this.effectState, target);\n\t\t\t},\n\t\t\tonSwap(target) {\n\t\t\t\tif (!target.fainted && (target.hp < target.maxhp || target.status)) {\n\t\t\t\t\ttarget.heal(target.maxhp);\n\t\t\t\t\ttarget.clearStatus();\n\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Healing Wish');\n\t\t\t\t\ttarget.side.removeSlotCondition(target, 'healingwish');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\thealorder: {\n\t\tnum: 456,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Heal Order\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\theal: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Bug\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\thealpulse: {\n\t\tnum: 505,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Heal Pulse\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, distance: 1, heal: 1, allyanim: 1, metronome: 1, pulse: 1 },\n\t\tonHit(target, source) {\n\t\t\tlet success = false;\n\t\t\tif (source.hasAbility('megalauncher')) {\n\t\t\t\tsuccess = !!this.heal(this.modify(target.baseMaxhp, 0.75));\n\t\t\t} else {\n\t\t\t\tsuccess = !!this.heal(Math.ceil(target.baseMaxhp * 0.5));\n\t\t\t}\n\t\t\tif (success && !target.isAlly(source)) {\n\t\t\t\ttarget.staleness = 'external';\n\t\t\t}\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', target, 'heal');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\theartstamp: {\n\t\tnum: 531,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Heart Stamp\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cute\",\n\t},\n\theartswap: {\n\t\tnum: 391,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Heart Swap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst targetBoosts: SparseBoostsTable = {};\n\t\t\tconst sourceBoosts: SparseBoostsTable = {};\n\n\t\t\tlet i: BoostID;\n\t\t\tfor (i in target.boosts) {\n\t\t\t\ttargetBoosts[i] = target.boosts[i];\n\t\t\t\tsourceBoosts[i] = source.boosts[i];\n\t\t\t}\n\n\t\t\ttarget.setBoost(sourceBoosts);\n\t\t\tsource.setBoost(targetBoosts);\n\n\t\t\tthis.add('-swapboost', source, target, '[from] move: Heart Swap');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'crit2' },\n\t\tcontestType: \"Clever\",\n\t},\n\theatcrash: {\n\t\tnum: 535,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tconst targetWeight = target.getWeight();\n\t\t\tconst pokemonWeight = pokemon.getWeight();\n\t\t\tlet bp;\n\t\t\tif (pokemonWeight >= targetWeight * 5) {\n\t\t\t\tbp = 120;\n\t\t\t} else if (pokemonWeight >= targetWeight * 4) {\n\t\t\t\tbp = 100;\n\t\t\t} else if (pokemonWeight >= targetWeight * 3) {\n\t\t\t\tbp = 80;\n\t\t\t} else if (pokemonWeight >= targetWeight * 2) {\n\t\t\t\tbp = 60;\n\t\t\t} else {\n\t\t\t\tbp = 40;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Heat Crash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tonTryHit(target, pokemon, move) {\n\t\t\tif (target.volatiles['dynamax']) {\n\t\t\t\tthis.add('-fail', pokemon, 'Dynamax');\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\theatwave: {\n\t\tnum: 257,\n\t\taccuracy: 90,\n\t\tbasePower: 95,\n\t\tcategory: \"Special\",\n\t\tname: \"Heat Wave\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\theavyslam: {\n\t\tnum: 484,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tconst targetWeight = target.getWeight();\n\t\t\tconst pokemonWeight = pokemon.getWeight();\n\t\t\tlet bp;\n\t\t\tif (pokemonWeight >= targetWeight * 5) {\n\t\t\t\tbp = 120;\n\t\t\t} else if (pokemonWeight >= targetWeight * 4) {\n\t\t\t\tbp = 100;\n\t\t\t} else if (pokemonWeight >= targetWeight * 3) {\n\t\t\t\tbp = 80;\n\t\t\t} else if (pokemonWeight >= targetWeight * 2) {\n\t\t\t\tbp = 60;\n\t\t\t} else {\n\t\t\t\tbp = 40;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Heavy Slam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tonTryHit(target, pokemon, move) {\n\t\t\tif (target.volatiles['dynamax']) {\n\t\t\t\tthis.add('-fail', pokemon, 'Dynamax');\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\thelpinghand: {\n\t\tnum: 270,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Helping Hand\",\n\t\tpp: 20,\n\t\tpriority: 5,\n\t\tflags: { bypasssub: 1, noassist: 1, failcopycat: 1 },\n\t\tvolatileStatus: 'helpinghand',\n\t\tonTryHit(target) {\n\t\t\tif (!target.newlySwitched && !this.queue.willMove(target)) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target, source) {\n\t\t\t\tthis.effectState.multiplier = 1.5;\n\t\t\t\tthis.add('-singleturn', target, 'Helping Hand', `[of] ${source}`);\n\t\t\t},\n\t\t\tonRestart(target, source) {\n\t\t\t\tthis.effectState.multiplier *= 1.5;\n\t\t\t\tthis.add('-singleturn', target, 'Helping Hand', `[of] ${source}`);\n\t\t\t},\n\t\t\tonBasePowerPriority: 10,\n\t\t\tonBasePower(basePower) {\n\t\t\t\tthis.debug('Boosting from Helping Hand: ' + this.effectState.multiplier);\n\t\t\t\treturn this.chainModify(this.effectState.multiplier);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"adjacentAlly\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\thex: {\n\t\tnum: 506,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.status || target.hasAbility('comatose')) {\n\t\t\t\tthis.debug('BP doubled from status condition');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Hex\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { basePower: 160 },\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpower: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tmove.type = pokemon.hpType || 'Dark';\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerbug: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Bug\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerdark: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Dark\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerdragon: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Dragon\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerelectric: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Electric\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerfighting: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Fighting\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerfire: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Fire\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerflying: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Flying\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerghost: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Ghost\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowergrass: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Grass\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerground: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Ground\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerice: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Ice\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerpoison: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Poison\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerpsychic: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Psychic\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerrock: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Rock\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowersteel: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Steel\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Clever\",\n\t},\n\thiddenpowerwater: {\n\t\tnum: 237,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\trealMove: \"Hidden Power\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hidden Power Water\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Clever\",\n\t},\n\thighhorsepower: {\n\t\tnum: 667,\n\t\taccuracy: 95,\n\t\tbasePower: 95,\n\t\tcategory: \"Physical\",\n\t\tname: \"High Horsepower\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\thighjumpkick: {\n\t\tnum: 136,\n\t\taccuracy: 90,\n\t\tbasePower: 130,\n\t\tcategory: \"Physical\",\n\t\tname: \"High Jump Kick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, gravity: 1, metronome: 1 },\n\t\thasCrashDamage: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick'));\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tholdback: {\n\t\tnum: 610,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Hold Back\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonDamagePriority: -20,\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (damage >= target.hp) return target.hp - 1;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tholdhands: {\n\t\tnum: 607,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Hold Hands\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"adjacentAlly\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\thoneclaws: {\n\t\tnum: 468,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Hone Claws\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\taccuracy: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\thornattack: {\n\t\tnum: 30,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Horn Attack\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\thorndrill: {\n\t\tnum: 32,\n\t\taccuracy: 30,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tname: \"Horn Drill\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tohko: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\thornleech: {\n\t\tnum: 532,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Horn Leech\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Tough\",\n\t},\n\thowl: {\n\t\tnum: 336,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Howl\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, sound: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allies\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\thurricane: {\n\t\tnum: 542,\n\t\taccuracy: 70,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Hurricane\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, wind: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tswitch (target?.effectiveWeather()) {\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\t\tmove.accuracy = true;\n\t\t\t\tbreak;\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tmove.accuracy = 50;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Tough\",\n\t},\n\thydrocannon: {\n\t\tnum: 308,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tname: \"Hydro Cannon\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\thydropump: {\n\t\tnum: 56,\n\t\taccuracy: 80,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Hydro Pump\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\thydrosteam: {\n\t\tnum: 876,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Hydro Steam\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\t// Damage boost in Sun applied in conditions.ts\n\t\tthawsTarget: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t},\n\thydrovortex: {\n\t\tnum: 642,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hydro Vortex\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"wateriumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\thyperbeam: {\n\t\tnum: 63,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tname: \"Hyper Beam\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\thyperdrill: {\n\t\tnum: 887,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Hyper Drill\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Clever\",\n\t},\n\thyperfang: {\n\t\tnum: 158,\n\t\taccuracy: 90,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Hyper Fang\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\thyperspacefury: {\n\t\tnum: 621,\n\t\taccuracy: true,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Hyperspace Fury\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, bypasssub: 1, nosketch: 1 },\n\t\tbreaksProtect: true,\n\t\tonTry(source) {\n\t\t\tif (source.species.name === 'Hoopa-Unbound') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.hint(\"Only a Pokemon whose form is Hoopa Unbound can use this move.\");\n\t\t\tif (source.species.name === 'Hoopa') {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('-fail', source, 'move: Hyperspace Fury', '[forme]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis.attrLastMove('[still]');\n\t\t\tthis.add('-fail', source, 'move: Hyperspace Fury');\n\t\t\treturn null;\n\t\t},\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\thyperspacehole: {\n\t\tnum: 593,\n\t\taccuracy: true,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Hyperspace Hole\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, bypasssub: 1 },\n\t\tbreaksProtect: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\thypervoice: {\n\t\tnum: 304,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Hyper Voice\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\thypnosis: {\n\t\tnum: 95,\n\t\taccuracy: 60,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Hypnosis\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'slp',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ticeball: {\n\t\tnum: 301,\n\t\taccuracy: 90,\n\t\tbasePower: 30,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tlet bp = move.basePower;\n\t\t\tconst iceballData = pokemon.volatiles['iceball'];\n\t\t\tif (iceballData?.hitCount) {\n\t\t\t\tbp *= 2 ** iceballData.contactHitCount;\n\t\t\t}\n\t\t\tif (iceballData && pokemon.status !== 'slp') {\n\t\t\t\ticeballData.hitCount++;\n\t\t\t\ticeballData.contactHitCount++;\n\t\t\t\tif (iceballData.hitCount < 5) {\n\t\t\t\t\ticeballData.duration = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pokemon.volatiles['defensecurl']) {\n\t\t\t\tbp *= 2;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Ice Ball\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1, bullet: 1, noparentalbond: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (pokemon.volatiles['iceball'] || pokemon.status === 'slp' || !target) return;\n\t\t\tpokemon.addVolatile('iceball');\n\t\t\tif (move.sourceEffect) pokemon.lastMoveTargetLoc = pokemon.getLocOf(target);\n\t\t},\n\t\tonAfterMove(source, target, move) {\n\t\t\tconst iceballData = source.volatiles[\"iceball\"];\n\t\t\tif (\n\t\t\t\ticeballData &&\n\t\t\t\ticeballData.hitCount === 5 &&\n\t\t\t\ticeballData.contactHitCount < 5\n\t\t\t\t// this conditions can only be met in gen7 and gen8dlc1\n\t\t\t\t// see `disguise` and `iceface` abilities in the resp mod folders\n\t\t\t) {\n\t\t\t\tsource.addVolatile(\"rolloutstorage\");\n\t\t\t\tsource.volatiles[\"rolloutstorage\"].contactHitCount =\n\t\t\t\ticeballData.contactHitCount;\n\t\t\t}\n\t\t},\n\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonLockMove: 'iceball',\n\t\t\tonStart() {\n\t\t\t\tthis.effectState.hitCount = 0;\n\t\t\t\tthis.effectState.contactHitCount = 0;\n\t\t\t},\n\t\t\tonResidual(target) {\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\n\t\t\t\t\t// don't lock\n\t\t\t\t\tdelete target.volatiles['iceball'];\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticebeam: {\n\t\tnum: 58,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Ice Beam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'frz',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticeburn: {\n\t\tnum: 554,\n\t\taccuracy: 90,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tname: \"Ice Burn\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticefang: {\n\t\tnum: 423,\n\t\taccuracy: 95,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ice Fang\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondaries: [\n\t\t\t{\n\t\t\t\tchance: 10,\n\t\t\t\tstatus: 'frz',\n\t\t\t}, {\n\t\t\t\tchance: 10,\n\t\t\t\tvolatileStatus: 'flinch',\n\t\t\t},\n\t\t],\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Cool\",\n\t},\n\ticehammer: {\n\t\tnum: 665,\n\t\taccuracy: 90,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ice Hammer\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Tough\",\n\t},\n\ticepunch: {\n\t\tnum: 8,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ice Punch\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'frz',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticeshard: {\n\t\tnum: 420,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ice Shard\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticespinner: {\n\t\tnum: 861,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ice Spinner\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonAfterHit(target, source) {\n\t\t\tif (source.hp) {\n\t\t\t\tthis.field.clearTerrain();\n\t\t\t}\n\t\t},\n\t\tonAfterSubDamage(damage, target, source) {\n\t\t\tif (source.hp) {\n\t\t\t\tthis.field.clearTerrain();\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t},\n\ticiclecrash: {\n\t\tnum: 556,\n\t\taccuracy: 90,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Icicle Crash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticiclespear: {\n\t\tnum: 333,\n\t\taccuracy: 100,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Icicle Spear\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Beautiful\",\n\t},\n\ticywind: {\n\t\tnum: 196,\n\t\taccuracy: 95,\n\t\tbasePower: 55,\n\t\tcategory: \"Special\",\n\t\tname: \"Icy Wind\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\timprison: {\n\t\tnum: 286,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Imprison\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, bypasssub: 1, metronome: 1, mustpressure: 1 },\n\t\tvolatileStatus: 'imprison',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'move: Imprison');\n\t\t\t},\n\t\t\tonFoeDisableMove(pokemon) {\n\t\t\t\tfor (const moveSlot of this.effectState.source.moveSlots) {\n\t\t\t\t\tif (moveSlot.id === 'struggle') continue;\n\t\t\t\t\tpokemon.disableMove(moveSlot.id, 'hidden');\n\t\t\t\t}\n\t\t\t\tpokemon.maybeDisabled = true;\n\t\t\t},\n\t\t\tonFoeBeforeMovePriority: 4,\n\t\t\tonFoeBeforeMove(attacker, defender, move) {\n\t\t\t\tif (move.id !== 'struggle' && this.effectState.source.hasMove(move.id) && !move.isZ && !move.isMax) {\n\t\t\t\t\tthis.add('cant', attacker, 'move: Imprison', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spd: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tincinerate: {\n\t\tnum: 510,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Incinerate\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(pokemon, source) {\n\t\t\tconst item = pokemon.getItem();\n\t\t\tif ((item.isBerry || item.isGem) && pokemon.takeItem(source)) {\n\t\t\t\tthis.add('-enditem', pokemon, item.name, '[from] move: Incinerate');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Tough\",\n\t},\n\tinfernalparade: {\n\t\tnum: 844,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.status || target.hasAbility('comatose')) return move.basePower * 2;\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Infernal Parade\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t},\n\tinferno: {\n\t\tnum: 517,\n\t\taccuracy: 50,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Inferno\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tinfernooverdrive: {\n\t\tnum: 640,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Inferno Overdrive\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"firiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tinfestation: {\n\t\tnum: 611,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tcategory: \"Special\",\n\t\tname: \"Infestation\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tingrain: {\n\t\tnum: 275,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Ingrain\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, nonsky: 1, metronome: 1 },\n\t\tvolatileStatus: 'ingrain',\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'move: Ingrain');\n\t\t\t},\n\t\t\tonResidualOrder: 7,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 16);\n\t\t\t},\n\t\t\tonTrapPokemon(pokemon) {\n\t\t\t\tpokemon.tryTrap();\n\t\t\t},\n\t\t\t// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded\n\t\t\tonDragOut(pokemon) {\n\t\t\t\tthis.add('-activate', pokemon, 'move: Ingrain');\n\t\t\t\treturn null;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tinstruct: {\n\t\tnum: 689,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Instruct\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, bypasssub: 1, allyanim: 1, failinstruct: 1 },\n\t\tonHit(target, source) {\n\t\t\tif (!target.lastMove || target.volatiles['dynamax']) return false;\n\t\t\tconst lastMove = target.lastMove;\n\t\t\tconst moveIndex = target.moves.indexOf(lastMove.id);\n\t\t\tif (\n\t\t\t\tlastMove.flags['failinstruct'] || lastMove.isZ || lastMove.isMax ||\n\t\t\t\tlastMove.flags['charge'] || lastMove.flags['recharge'] ||\n\t\t\t\ttarget.volatiles['beakblast'] || target.volatiles['focuspunch'] || target.volatiles['shelltrap'] ||\n\t\t\t\t(target.moveSlots[moveIndex] && target.moveSlots[moveIndex].pp <= 0)\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.add('-singleturn', target, 'move: Instruct', `[of] ${source}`);\n\t\t\tthis.queue.prioritizeAction(this.queue.resolveAction({\n\t\t\t\tchoice: 'move',\n\t\t\t\tpokemon: target,\n\t\t\t\tmoveid: target.lastMove.id,\n\t\t\t\ttargetLoc: target.lastMoveTargetLoc!,\n\t\t\t})[0] as MoveAction);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tiondeluge: {\n\t\tnum: 569,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Ion Deluge\",\n\t\tpp: 25,\n\t\tpriority: 1,\n\t\tflags: { metronome: 1 },\n\t\tpseudoWeather: 'iondeluge',\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonFieldStart(target, source, sourceEffect) {\n\t\t\t\tthis.add('-fieldactivate', 'move: Ion Deluge');\n\t\t\t\tthis.hint(`Normal-type moves become Electric-type after using ${sourceEffect}.`);\n\t\t\t},\n\t\t\tonModifyTypePriority: -2,\n\t\t\tonModifyType(move) {\n\t\t\t\tif (move.type === 'Normal') {\n\t\t\t\t\tmove.type = 'Electric';\n\t\t\t\t\tthis.debug(move.name + \"'s type changed to Electric\");\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tirondefense: {\n\t\tnum: 334,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Iron Defense\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Steel\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\tironhead: {\n\t\tnum: 442,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Iron Head\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Tough\",\n\t},\n\tirontail: {\n\t\tnum: 231,\n\t\taccuracy: 75,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Iron Tail\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tivycudgel: {\n\t\tnum: 904,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Ivy Cudgel\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tonPrepareHit(target, source, move) {\n\t\t\tif (move.type !== \"Grass\") {\n\t\t\t\tthis.attrLastMove('[anim] Ivy Cudgel ' + move.type);\n\t\t\t}\n\t\t},\n\t\tonModifyType(move, pokemon) {\n\t\t\tswitch (pokemon.species.name) {\n\t\t\tcase 'Ogerpon-Wellspring': case 'Ogerpon-Wellspring-Tera':\n\t\t\t\tmove.type = 'Water';\n\t\t\t\tbreak;\n\t\t\tcase 'Ogerpon-Hearthflame': case 'Ogerpon-Hearthflame-Tera':\n\t\t\t\tmove.type = 'Fire';\n\t\t\t\tbreak;\n\t\t\tcase 'Ogerpon-Cornerstone': case 'Ogerpon-Cornerstone-Tera':\n\t\t\t\tmove.type = 'Rock';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tjawlock: {\n\t\tnum: 746,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Jaw Lock\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tsource.addVolatile('trapped', target, move, 'trapper');\n\t\t\ttarget.addVolatile('trapped', source, move, 'trapper');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\tjetpunch: {\n\t\tnum: 857,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Jet Punch\",\n\t\tpp: 15,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tjudgment: {\n\t\tnum: 449,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Judgment\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (pokemon.ignoringItem()) return;\n\t\t\tconst item = pokemon.getItem();\n\t\t\tif (item.id && item.onPlate && !item.zMove) {\n\t\t\t\tmove.type = item.onPlate;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tjumpkick: {\n\t\tnum: 26,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Jump Kick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, gravity: 1, metronome: 1 },\n\t\thasCrashDamage: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('Jump Kick'));\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tjunglehealing: {\n\t\tnum: 816,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Jungle Healing\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { heal: 1, bypasssub: 1, allyanim: 1 },\n\t\tonHit(pokemon) {\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, 0.25));\n\t\t\treturn pokemon.cureStatus() || success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allies\",\n\t\ttype: \"Grass\",\n\t},\n\tkaratechop: {\n\t\tnum: 2,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Karate Chop\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tkinesis: {\n\t\tnum: 134,\n\t\taccuracy: 80,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Kinesis\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\taccuracy: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tkingsshield: {\n\t\tnum: 588,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"King's Shield\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { noassist: 1, failcopycat: 1, failinstruct: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'kingsshield',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.boost({ atk: -1 }, source, target, this.dex.getActiveMove(\"King's Shield\"));\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.boost({ atk: -1 }, source, target, this.dex.getActiveMove(\"King's Shield\"));\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Steel\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cool\",\n\t},\n\tknockoff: {\n\t\tnum: 282,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Knock Off\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, source, target, move) {\n\t\t\tconst item = target.getItem();\n\t\t\tif (!this.singleEvent('TakeItem', item, target.itemState, target, target, move, item)) return;\n\t\t\tif (item.id) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonAfterHit(target, source) {\n\t\t\tif (source.hp) {\n\t\t\t\tconst item = target.takeItem();\n\t\t\t\tif (item) {\n\t\t\t\t\tthis.add('-enditem', target, item.name, '[from] move: Knock Off', `[of] ${source}`);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tkowtowcleave: {\n\t\tnum: 869,\n\t\taccuracy: true,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Kowtow Cleave\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\tlandswrath: {\n\t\tnum: 616,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Land's Wrath\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ground\",\n\t\tzMove: { basePower: 185 },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tlaserfocus: {\n\t\tnum: 673,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Laser Focus\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'laserfocus',\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonStart(pokemon, source, effect) {\n\t\t\t\tif (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) {\n\t\t\t\t\tthis.add('-start', pokemon, 'move: Laser Focus', '[silent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', pokemon, 'move: Laser Focus');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonRestart(pokemon) {\n\t\t\t\tthis.effectState.duration = 2;\n\t\t\t\tthis.add('-start', pokemon, 'move: Laser Focus');\n\t\t\t},\n\t\t\tonModifyCritRatio(critRatio) {\n\t\t\t\treturn 5;\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'move: Laser Focus', '[silent]');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tlashout: {\n\t\tnum: 808,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Lash Out\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, source) {\n\t\t\tif (source.statsLoweredThisTurn) {\n\t\t\t\tthis.debug('lashout buff');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\tlastresort: {\n\t\tnum: 387,\n\t\taccuracy: 100,\n\t\tbasePower: 140,\n\t\tcategory: \"Physical\",\n\t\tname: \"Last Resort\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.moveSlots.length < 2) return false; // Last Resort fails unless the user knows at least 2 moves\n\t\t\tlet hasLastResort = false; // User must actually have Last Resort for it to succeed\n\t\t\tfor (const moveSlot of source.moveSlots) {\n\t\t\t\tif (moveSlot.id === 'lastresort') {\n\t\t\t\t\thasLastResort = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!moveSlot.used) return false;\n\t\t\t}\n\t\t\treturn hasLastResort;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tlastrespects: {\n\t\tnum: 854,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\treturn 50 + 50 * pokemon.side.totalFainted;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Last Respects\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t},\n\tlavaplume: {\n\t\tnum: 436,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Lava Plume\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Tough\",\n\t},\n\tleafage: {\n\t\tnum: 670,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Leafage\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Tough\",\n\t},\n\tleafblade: {\n\t\tnum: 348,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Leaf Blade\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tleafstorm: {\n\t\tnum: 437,\n\t\taccuracy: 90,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tname: \"Leaf Storm\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspa: -2,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tleaftornado: {\n\t\tnum: 536,\n\t\taccuracy: 90,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Leaf Tornado\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tleechlife: {\n\t\tnum: 141,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Leech Life\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Clever\",\n\t},\n\tleechseed: {\n\t\tnum: 73,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Leech Seed\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'leechseed',\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\tonResidualOrder: 8,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tconst target = this.getAtSlot(pokemon.volatiles['leechseed'].sourceSlot);\n\t\t\t\tif (!target || target.fainted || target.hp <= 0) {\n\t\t\t\t\tthis.debug('Nothing to leech into');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst damage = this.damage(pokemon.baseMaxhp / 8, pokemon, target);\n\t\t\t\tif (damage) {\n\t\t\t\t\tthis.heal(damage, target, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tonTryImmunity(target) {\n\t\t\treturn !target.hasType('Grass');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tleer: {\n\t\tnum: 43,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Leer\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tletssnuggleforever: {\n\t\tnum: 726,\n\t\taccuracy: true,\n\t\tbasePower: 190,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Let's Snuggle Forever\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { contact: 1 },\n\t\tisZ: \"mimikiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cool\",\n\t},\n\tlick: {\n\t\tnum: 122,\n\t\taccuracy: 100,\n\t\tbasePower: 30,\n\t\tcategory: \"Physical\",\n\t\tname: \"Lick\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cute\",\n\t},\n\tlifedew: {\n\t\tnum: 791,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Life Dew\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, bypasssub: 1 },\n\t\theal: [1, 4],\n\t\tsecondary: null,\n\t\ttarget: \"allies\",\n\t\ttype: \"Water\",\n\t},\n\tlightofruin: {\n\t\tnum: 617,\n\t\taccuracy: 90,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Light of Ruin\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\trecoil: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tlightscreen: {\n\t\tnum: 113,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Light Screen\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tsideCondition: 'lightscreen',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(target, source, effect) {\n\t\t\t\tif (source?.hasItem('lightclay')) {\n\t\t\t\t\treturn 8;\n\t\t\t\t}\n\t\t\t\treturn 5;\n\t\t\t},\n\t\t\tonAnyModifyDamage(damage, source, target, move) {\n\t\t\t\tif (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Special') {\n\t\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\n\t\t\t\t\t\tthis.debug('Light Screen weaken');\n\t\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\n\t\t\t\t\t\treturn this.chainModify(0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: Light Screen');\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 2,\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\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tlightthatburnsthesky: {\n\t\tnum: 723,\n\t\taccuracy: true,\n\t\tbasePower: 200,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Light That Burns the Sky\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical';\n\t\t},\n\t\tignoreAbility: true,\n\t\tisZ: \"ultranecroziumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tliquidation: {\n\t\tnum: 710,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Liquidation\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tlockon: {\n\t\tnum: 199,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Lock-On\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tif (source.volatiles['lockon']) return false;\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tsource.addVolatile('lockon', target);\n\t\t\tthis.add('-activate', source, 'move: Lock-On', `[of] ${target}`);\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\n\t\t\tduration: 2,\n\t\t\tonSourceInvulnerabilityPriority: 1,\n\t\t\tonSourceInvulnerability(target, source, move) {\n\t\t\t\tif (move && source === this.effectState.target && target === this.effectState.source) return 0;\n\t\t\t},\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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tlovelykiss: {\n\t\tnum: 142,\n\t\taccuracy: 75,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Lovely Kiss\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'slp',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tlowkick: {\n\t\tnum: 67,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tconst targetWeight = target.getWeight();\n\t\t\tlet bp;\n\t\t\tif (targetWeight >= 2000) {\n\t\t\t\tbp = 120;\n\t\t\t} else if (targetWeight >= 1000) {\n\t\t\t\tbp = 100;\n\t\t\t} else if (targetWeight >= 500) {\n\t\t\t\tbp = 80;\n\t\t\t} else if (targetWeight >= 250) {\n\t\t\t\tbp = 60;\n\t\t\t} else if (targetWeight >= 100) {\n\t\t\t\tbp = 40;\n\t\t\t} else {\n\t\t\t\tbp = 20;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Low Kick\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryHit(target, pokemon, move) {\n\t\t\tif (target.volatiles['dynamax']) {\n\t\t\t\tthis.add('-fail', pokemon, 'Dynamax');\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { basePower: 160 },\n\t\tcontestType: \"Tough\",\n\t},\n\tlowsweep: {\n\t\tnum: 490,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Low Sweep\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Clever\",\n\t},\n\tluckychant: {\n\t\tnum: 381,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Lucky Chant\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tsideCondition: 'luckychant',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: Lucky Chant'); // \"The Lucky Chant shielded [side.name]'s team from critical hits!\"\n\t\t\t},\n\t\t\tonCriticalHit: false,\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 6,\n\t\t\tonSideEnd(side) {\n\t\t\t\tthis.add('-sideend', side, 'move: Lucky Chant'); // \"[side.name]'s team's Lucky Chant wore off!\"\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tluminacrash: {\n\t\tnum: 855,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Lumina Crash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspd: -2,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tlunarblessing: {\n\t\tnum: 849,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Lunar Blessing\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, 0.25));\n\t\t\treturn pokemon.cureStatus() || success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allies\",\n\t\ttype: \"Psychic\",\n\t},\n\tlunardance: {\n\t\tnum: 461,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Lunar Dance\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, dance: 1, heal: 1, metronome: 1 },\n\t\tonTryHit(source) {\n\t\t\tif (!this.canSwitch(source.side)) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('-fail', source);\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t},\n\t\tselfdestruct: \"ifHit\",\n\t\tslotCondition: 'lunardance',\n\t\tcondition: {\n\t\t\tonSwitchIn(target) {\n\t\t\t\tthis.singleEvent('Swap', this.effect, this.effectState, target);\n\t\t\t},\n\t\t\tonSwap(target) {\n\t\t\t\tif (\n\t\t\t\t\t!target.fainted && (\n\t\t\t\t\t\ttarget.hp < target.maxhp ||\n\t\t\t\t\t\ttarget.status ||\n\t\t\t\t\t\ttarget.moveSlots.some(moveSlot => moveSlot.pp < moveSlot.maxpp)\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\ttarget.heal(target.maxhp);\n\t\t\t\t\ttarget.clearStatus();\n\t\t\t\t\tfor (const moveSlot of target.moveSlots) {\n\t\t\t\t\t\tmoveSlot.pp = moveSlot.maxpp;\n\t\t\t\t\t}\n\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Lunar Dance');\n\t\t\t\t\ttarget.side.removeSlotCondition(target, 'lunardance');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tlunge: {\n\t\tnum: 679,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Lunge\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tlusterpurge: {\n\t\tnum: 295,\n\t\taccuracy: 100,\n\t\tbasePower: 95,\n\t\tcategory: \"Special\",\n\t\tname: \"Luster Purge\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tmachpunch: {\n\t\tnum: 183,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Mach Punch\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmagicalleaf: {\n\t\tnum: 345,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Magical Leaf\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmagicaltorque: {\n\t\tnum: 900,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Magical Torque\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t},\n\tmagiccoat: {\n\t\tnum: 277,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Magic Coat\",\n\t\tpp: 15,\n\t\tpriority: 4,\n\t\tflags: { metronome: 1 },\n\t\tvolatileStatus: 'magiccoat',\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tthis.add('-singleturn', target, 'move: Magic Coat');\n\t\t\t\tif (effect?.effectType === 'Move') {\n\t\t\t\t\tthis.effectState.pranksterBoosted = effect.pranksterBoosted;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonTryHitPriority: 2,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (target === source || move.hasBounced || !move.flags['reflectable'] || target.isSemiInvulnerable()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst newMove = this.dex.getActiveMove(move.id);\n\t\t\t\tnewMove.hasBounced = true;\n\t\t\t\tnewMove.pranksterBoosted = this.effectState.pranksterBoosted;\n\t\t\t\tthis.actions.useMove(newMove, target, { target: source });\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tonAllyTryHitSide(target, source, move) {\n\t\t\t\tif (target.isAlly(source) || move.hasBounced || !move.flags['reflectable'] || target.isSemiInvulnerable()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst newMove = this.dex.getActiveMove(move.id);\n\t\t\t\tnewMove.hasBounced = true;\n\t\t\t\tnewMove.pranksterBoosted = false;\n\t\t\t\tthis.actions.useMove(newMove, this.effectState.target, { target: source });\n\t\t\t\treturn null;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spd: 2 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmagicpowder: {\n\t\tnum: 750,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Magic Powder\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1, powder: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.getTypes().join() === 'Psychic' || !target.setType('Psychic')) return false;\n\t\t\tthis.add('-start', target, 'typechange', 'Psychic');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tmagicroom: {\n\t\tnum: 478,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Magic Room\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, metronome: 1 },\n\t\tpseudoWeather: 'magicroom',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Magic Room');\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\tonFieldStart(target, source) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Magic Room', `[of] ${source}`, '[persistent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Magic Room', `[of] ${source}`);\n\t\t\t\t}\n\t\t\t\tfor (const mon of this.getAllActive()) {\n\t\t\t\t\tthis.singleEvent('End', mon.getItem(), mon.itemState, mon);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldRestart(target, source) {\n\t\t\t\tthis.field.removePseudoWeather('magicroom');\n\t\t\t},\n\t\t\t// Item suppression implemented in Pokemon.ignoringItem() within sim/pokemon.js\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 6,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Magic Room', '[of] ' + this.effectState.source);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmagmastorm: {\n\t\tnum: 463,\n\t\taccuracy: 75,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Magma Storm\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Tough\",\n\t},\n\tmagnetbomb: {\n\t\tnum: 443,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Magnet Bomb\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmagneticflux: {\n\t\tnum: 602,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Magnetic Flux\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, distance: 1, bypasssub: 1, metronome: 1 },\n\t\tonHitSide(side, source, move) {\n\t\t\tconst targets = side.allies().filter(ally => (\n\t\t\t\tally.hasAbility(['plus', 'minus']) &&\n\t\t\t\t(!ally.volatiles['maxguard'] || this.runEvent('TryHit', ally, source, move))\n\t\t\t));\n\t\t\tif (!targets.length) return false;\n\n\t\t\tlet didSomething = false;\n\t\t\tfor (const target of targets) {\n\t\t\t\tdidSomething = this.boost({ def: 1, spd: 1 }, target, source, move, false, true) || didSomething;\n\t\t\t}\n\t\t\treturn didSomething;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmagnetrise: {\n\t\tnum: 393,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Magnet Rise\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, gravity: 1, metronome: 1 },\n\t\tvolatileStatus: 'magnetrise',\n\t\tonTry(source, target, move) {\n\t\t\tif (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false;\n\n\t\t\t// Additional Gravity check for Z-move variant\n\t\t\tif (this.field.getPseudoWeather('Gravity')) {\n\t\t\t\tthis.add('cant', source, 'move: Gravity', move);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'Magnet Rise');\n\t\t\t},\n\t\t\tonImmunity(type) {\n\t\t\t\tif (type === 'Ground') return false;\n\t\t\t},\n\t\t\tonResidualOrder: 18,\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'Magnet Rise');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmagnitude: {\n\t\tnum: 222,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Magnitude\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tonModifyMove(move, pokemon) {\n\t\t\tconst i = this.random(100);\n\t\t\tif (i < 5) {\n\t\t\t\tmove.magnitude = 4;\n\t\t\t\tmove.basePower = 10;\n\t\t\t} else if (i < 15) {\n\t\t\t\tmove.magnitude = 5;\n\t\t\t\tmove.basePower = 30;\n\t\t\t} else if (i < 35) {\n\t\t\t\tmove.magnitude = 6;\n\t\t\t\tmove.basePower = 50;\n\t\t\t} else if (i < 65) {\n\t\t\t\tmove.magnitude = 7;\n\t\t\t\tmove.basePower = 70;\n\t\t\t} else if (i < 85) {\n\t\t\t\tmove.magnitude = 8;\n\t\t\t\tmove.basePower = 90;\n\t\t\t} else if (i < 95) {\n\t\t\t\tmove.magnitude = 9;\n\t\t\t\tmove.basePower = 110;\n\t\t\t} else {\n\t\t\t\tmove.magnitude = 10;\n\t\t\t\tmove.basePower = 150;\n\t\t\t}\n\t\t},\n\t\tonUseMoveMessage(pokemon, target, move) {\n\t\t\tthis.add('-activate', pokemon, 'move: Magnitude', move.magnitude);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Ground\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 140 },\n\t\tcontestType: \"Tough\",\n\t},\n\tmakeitrain: {\n\t\tnum: 874,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Make It Rain\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmaliciousmoonsault: {\n\t\tnum: 696,\n\t\taccuracy: true,\n\t\tbasePower: 180,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Malicious Moonsault\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { contact: 1 },\n\t\tisZ: \"inciniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmalignantchain: {\n\t\tnum: 919,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Malignant Chain\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tstatus: 'tox',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t},\n\tmatblock: {\n\t\tnum: 561,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mat Block\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, nonsky: 1, noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tsideCondition: 'matblock',\n\t\tonTry(source) {\n\t\t\tif (source.activeMoveActions > 1) {\n\t\t\t\tthis.hint(\"Mat Block only works on your first turn out.\");\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn !!this.queue.willAct();\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonSideStart(target, source) {\n\t\t\t\tthis.add('-singleturn', source, 'Mat Block');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect']) {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move && (move.target === 'self' || move.category === 'Status')) return;\n\t\t\t\tthis.add('-activate', target, 'move: Mat Block', move.name);\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tmatchagotcha: {\n\t\tnum: 902,\n\t\taccuracy: 90,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Matcha Gotcha\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tthawsTarget: true,\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Grass\",\n\t},\n\tmaxairstream: {\n\t\tnum: 766,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Airstream\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tthis.boost({ spe: 1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxdarkness: {\n\t\tnum: 772,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Darkness\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ spd: -1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxflare: {\n\t\tnum: 757,\n\t\taccuracy: true,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Flare\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setWeather('sunnyday');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxflutterby: {\n\t\tnum: 758,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Flutterby\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ spa: -1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxgeyser: {\n\t\tnum: 765,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Geyser\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setWeather('raindance');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxguard: {\n\t\tnum: 743,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Guard\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'maxguard',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'Max Guard');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tconst bypassesMaxGuard = [\n\t\t\t\t\t'acupressure', 'afteryou', 'allyswitch', 'aromatherapy', 'aromaticmist', 'coaching', 'confide', 'copycat', 'curse', 'decorate', 'doomdesire', 'feint', 'futuresight', 'gmaxoneblow', 'gmaxrapidflow', 'healbell', 'holdhands', 'howl', 'junglehealing', 'lifedew', 'meanlook', 'perishsong', 'playnice', 'powertrick', 'roar', 'roleplay', 'tearfullook',\n\t\t\t\t];\n\t\t\t\tif (bypassesMaxGuard.includes(move.id)) return;\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Max Guard');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxhailstorm: {\n\t\tnum: 763,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Hailstorm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setWeather('hail');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxknuckle: {\n\t\tnum: 761,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Knuckle\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tthis.boost({ atk: 1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxlightning: {\n\t\tnum: 759,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Lightning\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setTerrain('electricterrain');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxmindstorm: {\n\t\tnum: 769,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Mindstorm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setTerrain('psychicterrain');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxooze: {\n\t\tnum: 764,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Ooze\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tthis.boost({ spa: 1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxovergrowth: {\n\t\tnum: 773,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Overgrowth\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setTerrain('grassyterrain');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxphantasm: {\n\t\tnum: 762,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Phantasm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ def: -1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxquake: {\n\t\tnum: 771,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Quake\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tthis.boost({ spd: 1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxrockfall: {\n\t\tnum: 770,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Rockfall\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setWeather('sandstorm');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxstarfall: {\n\t\tnum: 767,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Starfall\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tthis.field.setTerrain('mistyterrain');\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxsteelspike: {\n\t\tnum: 774,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Steelspike\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\n\t\t\t\t\tthis.boost({ def: 1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxstrike: {\n\t\tnum: 760,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Strike\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ spe: -1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmaxwyrmwind: {\n\t\tnum: 768,\n\t\taccuracy: true,\n\t\tbasePower: 10,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Max Wyrmwind\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisMax: true,\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tif (!source.volatiles['dynamax']) return;\n\t\t\t\tfor (const pokemon of source.foes()) {\n\t\t\t\t\tthis.boost({ atk: -1 }, pokemon);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmeanlook: {\n\t\tnum: 212,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Mean Look\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\treturn target.addVolatile('trapped', source, move, 'trapper');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmeditate: {\n\t\tnum: 96,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Meditate\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmefirst: {\n\t\tnum: 382,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Me First\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, bypasssub: 1,\n\t\t\tfailencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1,\n\t\t},\n\t\tonTryHit(target, pokemon) {\n\t\t\tconst action = this.queue.willMove(target);\n\t\t\tif (!action) return false;\n\t\t\tconst move = this.dex.getActiveMove(action.move.id);\n\t\t\tif (action.zmove || move.isZ || move.isMax) return false;\n\t\t\tif (target.volatiles['mustrecharge']) return false;\n\t\t\tif (move.category === 'Status' || move.flags['failmefirst']) return false;\n\n\t\t\tpokemon.addVolatile('mefirst');\n\t\t\tthis.actions.useMove(move, pokemon, { target });\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonBasePowerPriority: 12,\n\t\t\tonBasePower(basePower) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t},\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"adjacentFoe\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmegadrain: {\n\t\tnum: 72,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Mega Drain\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { basePower: 120 },\n\t\tcontestType: \"Clever\",\n\t},\n\tmegahorn: {\n\t\tnum: 224,\n\t\taccuracy: 85,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Megahorn\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmegakick: {\n\t\tnum: 25,\n\t\taccuracy: 75,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Mega Kick\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmegapunch: {\n\t\tnum: 5,\n\t\taccuracy: 85,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Mega Punch\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tmemento: {\n\t\tnum: 262,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Memento\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -2,\n\t\t\tspa: -2,\n\t\t},\n\t\tselfdestruct: \"ifHit\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { effect: 'healreplacement' },\n\t\tcontestType: \"Tough\",\n\t},\n\tmenacingmoonrazemaelstrom: {\n\t\tnum: 725,\n\t\taccuracy: true,\n\t\tbasePower: 200,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Menacing Moonraze Maelstrom\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"lunaliumz\",\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmetalburst: {\n\t\tnum: 368,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon) {\n\t\t\tconst lastDamagedBy = pokemon.getLastDamagedBy(true);\n\t\t\tif (lastDamagedBy !== undefined) {\n\t\t\t\treturn (lastDamagedBy.damage * 1.5) || 1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Metal Burst\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, failmefirst: 1 },\n\t\tonTry(source) {\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\n\t\t\tif (!lastDamagedBy?.thisTurn) return false;\n\t\t},\n\t\tonModifyTarget(targetRelayVar, source, target, move) {\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\n\t\t\tif (lastDamagedBy) {\n\t\t\t\ttargetRelayVar.target = this.getAtSlot(lastDamagedBy.slot);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"scripted\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmetalclaw: {\n\t\tnum: 232,\n\t\taccuracy: 95,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Metal Claw\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tatk: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmetalsound: {\n\t\tnum: 319,\n\t\taccuracy: 85,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Metal Sound\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspd: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmeteorassault: {\n\t\tnum: 794,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Meteor Assault\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, failinstruct: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\tmeteorbeam: {\n\t\tnum: 800,\n\t\taccuracy: 90,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Meteor Beam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tthis.boost({ spa: 1 }, attacker, attacker, move);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t},\n\tmeteormash: {\n\t\tnum: 309,\n\t\taccuracy: 90,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Meteor Mash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tatk: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmetronome: {\n\t\tnum: 118,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Metronome\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonHit(pokemon) {\n\t\t\tconst moves = this.dex.moves.all().filter(move => (\n\t\t\t\t(!move.isNonstandard || move.isNonstandard === 'Unobtainable') &&\n\t\t\t\tmove.flags['metronome']\n\t\t\t));\n\t\t\tlet randomMove = '';\n\t\t\tif (moves.length) {\n\t\t\t\tmoves.sort((a, b) => a.num - b.num);\n\t\t\t\trandomMove = this.sample(moves).id;\n\t\t\t}\n\t\t\tif (!randomMove) return false;\n\t\t\tthis.actions.useMove(randomMove, pokemon);\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tmightycleave: {\n\t\tnum: 910,\n\t\taccuracy: 100,\n\t\tbasePower: 95,\n\t\tcategory: \"Physical\",\n\t\tname: \"Mighty Cleave\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t},\n\tmilkdrink: {\n\t\tnum: 208,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Milk Drink\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\theal: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tmimic: {\n\t\tnum: 102,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Mimic\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, bypasssub: 1, allyanim: 1,\n\t\t\tfailencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1,\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tconst move = target.lastMove;\n\t\t\tif (source.transformed || !move || move.flags['failmimic'] || source.moves.includes(move.id)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (move.isZ || move.isMax) return false;\n\t\t\tconst mimicIndex = source.moves.indexOf('mimic');\n\t\t\tif (mimicIndex < 0) return false;\n\n\t\t\tsource.moveSlots[mimicIndex] = {\n\t\t\t\tmove: move.name,\n\t\t\t\tid: move.id,\n\t\t\t\tpp: move.pp,\n\t\t\t\tmaxpp: move.pp,\n\t\t\t\ttarget: move.target,\n\t\t\t\tdisabled: false,\n\t\t\t\tused: false,\n\t\t\t\tvirtual: true,\n\t\t\t};\n\t\t\tthis.add('-start', source, 'Mimic', move.name);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tmindblown: {\n\t\tnum: 720,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mind Blown\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tmindBlownRecoil: true,\n\t\tonAfterMove(pokemon, target, move) {\n\t\t\tif (move.mindBlownRecoil && !move.multihit) {\n\t\t\t\tconst hpBeforeRecoil = pokemon.hp;\n\t\t\t\tthis.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Mind Blown'), true);\n\t\t\t\tif (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) {\n\t\t\t\t\tthis.runEvent('EmergencyExit', pokemon, pokemon);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmindreader: {\n\t\tnum: 170,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mind Reader\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tif (source.volatiles['lockon']) return false;\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tsource.addVolatile('lockon', target);\n\t\t\tthis.add('-activate', source, 'move: Mind Reader', `[of] ${target}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tminimize: {\n\t\tnum: 107,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Minimize\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'minimize',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonRestart: () => null,\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\t\tconst boostedMoves = [\n\t\t\t\t\t'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault', 'supercellslam',\n\t\t\t\t];\n\t\t\t\tif (boostedMoves.includes(move.id)) {\n\t\t\t\t\treturn this.chainModify(2);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonAccuracy(accuracy, target, source, move) {\n\t\t\t\tconst boostedMoves = [\n\t\t\t\t\t'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault', 'supercellslam',\n\t\t\t\t];\n\t\t\t\tif (boostedMoves.includes(move.id)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn accuracy;\n\t\t\t},\n\t\t},\n\t\tboosts: {\n\t\t\tevasion: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tmiracleeye: {\n\t\tnum: 357,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Miracle Eye\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'miracleeye',\n\t\tonTryHit(target) {\n\t\t\tif (target.volatiles['foresight']) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Miracle Eye');\n\t\t\t},\n\t\t\tonNegateImmunity(pokemon, type) {\n\t\t\t\tif (pokemon.hasType('Dark') && type === 'Psychic') 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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmirrorcoat: {\n\t\tnum: 243,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon) {\n\t\t\tif (!pokemon.volatiles['mirrorcoat']) return 0;\n\t\t\treturn pokemon.volatiles['mirrorcoat'].damage || 1;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Mirror Coat\",\n\t\tpp: 20,\n\t\tpriority: -5,\n\t\tflags: { protect: 1, failmefirst: 1, noassist: 1 },\n\t\tbeforeTurnCallback(pokemon) {\n\t\t\tpokemon.addVolatile('mirrorcoat');\n\t\t},\n\t\tonTry(source) {\n\t\t\tif (!source.volatiles['mirrorcoat']) return false;\n\t\t\tif (source.volatiles['mirrorcoat'].slot === null) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tnoCopy: true,\n\t\t\tonStart(target, source, move) {\n\t\t\t\tthis.effectState.slot = null;\n\t\t\t\tthis.effectState.damage = 0;\n\t\t\t},\n\t\t\tonRedirectTargetPriority: -1,\n\t\t\tonRedirectTarget(target, source, source2, move) {\n\t\t\t\tif (move.id !== 'mirrorcoat') return;\n\t\t\t\tif (source !== this.effectState.target || !this.effectState.slot) return;\n\t\t\t\treturn this.getAtSlot(this.effectState.slot);\n\t\t\t},\n\t\t\tonDamagingHit(damage, target, source, move) {\n\t\t\t\tif (!source.isAlly(target) && this.getCategory(move) === 'Special') {\n\t\t\t\t\tthis.effectState.slot = source.getSlot();\n\t\t\t\t\tthis.effectState.damage = 2 * damage;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"scripted\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmirrormove: {\n\t\tnum: 119,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mirror Move\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonTryHit(target, pokemon) {\n\t\t\tconst move = target.lastMove;\n\t\t\tif (!move?.flags['mirror'] || move.isZ || move.isMax) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.actions.useMove(move.id, pokemon, { target });\n\t\t\treturn null;\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tzMove: { boost: { atk: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tmirrorshot: {\n\t\tnum: 429,\n\t\taccuracy: 85,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mirror Shot\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Beautiful\",\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: { snatch: 1, metronome: 1 },\n\t\tsideCondition: 'mist',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tonTryBoost(boost, target, source, effect) {\n\t\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\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\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'Mist');\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 4,\n\t\t\tonSideEnd(side) {\n\t\t\t\tthis.add('-sideend', side, 'Mist');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Ice\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmistball: {\n\t\tnum: 296,\n\t\taccuracy: 100,\n\t\tbasePower: 95,\n\t\tcategory: \"Special\",\n\t\tname: \"Mist Ball\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tmistyexplosion: {\n\t\tnum: 802,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Misty Explosion\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tselfdestruct: \"always\",\n\t\tonBasePower(basePower, source) {\n\t\t\tif (this.field.isTerrain('mistyterrain') && source.isGrounded()) {\n\t\t\t\tthis.debug('misty terrain boost');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Fairy\",\n\t},\n\tmistyterrain: {\n\t\tnum: 581,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Misty Terrain\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tterrain: 'mistyterrain',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasItem('terrainextender')) {\n\t\t\t\t\treturn 8;\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 (!target.isGrounded() || target.isSemiInvulnerable()) return;\n\t\t\t\tif (effect && ((effect as Move).status || effect.id === 'yawn')) {\n\t\t\t\t\tthis.add('-activate', target, 'move: Misty Terrain');\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonTryAddVolatile(status, target, source, effect) {\n\t\t\t\tif (!target.isGrounded() || target.isSemiInvulnerable()) return;\n\t\t\t\tif (status.id === 'confusion') {\n\t\t\t\t\tif (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Misty Terrain');\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBasePowerPriority: 6,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tif (move.type === 'Dragon' && defender.isGrounded() && !defender.isSemiInvulnerable()) {\n\t\t\t\t\tthis.debug('misty terrain weaken');\n\t\t\t\t\treturn this.chainModify(0.5);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldStart(field, source, effect) {\n\t\t\t\tif (effect?.effectType === 'Ability') {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Misty Terrain', '[from] ability: ' + effect.name, `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Misty Terrain');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 7,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'Misty Terrain');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmoonblast: {\n\t\tnum: 585,\n\t\taccuracy: 100,\n\t\tbasePower: 95,\n\t\tcategory: \"Special\",\n\t\tname: \"Moonblast\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmoongeistbeam: {\n\t\tnum: 714,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Moongeist Beam\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tmoonlight: {\n\t\tnum: 236,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Moonlight\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tlet factor = 0.5;\n\t\t\tswitch (pokemon.effectiveWeather()) {\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tfactor = 0.667;\n\t\t\t\tbreak;\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\tcase 'sandstorm':\n\t\t\tcase 'hail':\n\t\t\tcase 'snowscape':\n\t\t\t\tfactor = 0.25;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmorningsun: {\n\t\tnum: 234,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Morning Sun\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tlet factor = 0.5;\n\t\t\tswitch (pokemon.effectiveWeather()) {\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tfactor = 0.667;\n\t\t\t\tbreak;\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\tcase 'sandstorm':\n\t\t\tcase 'hail':\n\t\t\tcase 'snowscape':\n\t\t\t\tfactor = 0.25;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmortalspin: {\n\t\tnum: 866,\n\t\taccuracy: 100,\n\t\tbasePower: 30,\n\t\tcategory: \"Physical\",\n\t\tname: \"Mortal Spin\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonAfterHit(target, pokemon, move) {\n\t\t\tif (!move.hasSheerForce) {\n\t\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\n\t\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\t\tfor (const condition of sideConditions) {\n\t\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\n\t\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', `[of] ${pokemon}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\n\t\t\t\t\tpokemon.removeVolatile('partiallytrapped');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonAfterSubDamage(damage, target, pokemon, move) {\n\t\t\tif (!move.hasSheerForce) {\n\t\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\n\t\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\t\tfor (const condition of sideConditions) {\n\t\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\n\t\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', `[of] ${pokemon}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\n\t\t\t\t\tpokemon.removeVolatile('partiallytrapped');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Poison\",\n\t},\n\tmountaingale: {\n\t\tnum: 836,\n\t\taccuracy: 85,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Mountain Gale\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t},\n\tmudbomb: {\n\t\tnum: 426,\n\t\taccuracy: 85,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mud Bomb\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Cute\",\n\t},\n\tmudshot: {\n\t\tnum: 341,\n\t\taccuracy: 95,\n\t\tbasePower: 55,\n\t\tcategory: \"Special\",\n\t\tname: \"Mud Shot\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tmudslap: {\n\t\tnum: 189,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tcategory: \"Special\",\n\t\tname: \"Mud-Slap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Cute\",\n\t},\n\tmudsport: {\n\t\tnum: 300,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Mud Sport\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tpseudoWeather: 'mudsport',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tonFieldStart(field, source) {\n\t\t\t\tthis.add('-fieldstart', 'move: Mud Sport', `[of] ${source}`);\n\t\t\t},\n\t\t\tonBasePowerPriority: 1,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tif (move.type === 'Electric') {\n\t\t\t\t\tthis.debug('mud sport weaken');\n\t\t\t\t\treturn this.chainModify([1352, 4096]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 4,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Mud Sport');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Ground\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tmuddywater: {\n\t\tnum: 330,\n\t\taccuracy: 85,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Muddy Water\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\tmultiattack: {\n\t\tnum: 718,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Multi-Attack\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (pokemon.ignoringItem()) return;\n\t\t\tmove.type = this.runEvent('Memory', pokemon, null, move, 'Normal');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 185 },\n\t\tmaxMove: { basePower: 95 },\n\t\tcontestType: \"Tough\",\n\t},\n\tmysticalfire: {\n\t\tnum: 595,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tname: \"Mystical Fire\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tmysticalpower: {\n\t\tnum: 832,\n\t\taccuracy: 90,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tname: \"Mystical Power\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspa: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tnastyplot: {\n\t\tnum: 417,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Nasty Plot\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspa: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Dark\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tnaturalgift: {\n\t\tnum: 363,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Natural Gift\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (pokemon.ignoringItem()) return;\n\t\t\tconst item = pokemon.getItem();\n\t\t\tif (!item.naturalGift) return;\n\t\t\tmove.type = item.naturalGift.type;\n\t\t},\n\t\tonPrepareHit(target, pokemon, move) {\n\t\t\tif (pokemon.ignoringItem()) return false;\n\t\t\tconst item = pokemon.getItem();\n\t\t\tif (!item.naturalGift) return false;\n\t\t\tmove.basePower = item.naturalGift.basePower;\n\t\t\tthis.debug(`BP: ${move.basePower}`);\n\t\t\tpokemon.setItem('');\n\t\t\tpokemon.lastItem = item.id;\n\t\t\tpokemon.usedItemThisTurn = true;\n\t\t\tthis.runEvent('AfterUseItem', pokemon, null, null, item);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Clever\",\n\t},\n\tnaturepower: {\n\t\tnum: 267,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Nature Power\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonTryHit(target, pokemon) {\n\t\t\tlet move = 'triattack';\n\t\t\tif (this.field.isTerrain('electricterrain')) {\n\t\t\t\tmove = 'thunderbolt';\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tmove = 'energyball';\n\t\t\t} else if (this.field.isTerrain('mistyterrain')) {\n\t\t\t\tmove = 'moonblast';\n\t\t\t} else if (this.field.isTerrain('psychicterrain')) {\n\t\t\t\tmove = 'psychic';\n\t\t\t}\n\t\t\tthis.actions.useMove(move, pokemon, { target });\n\t\t\treturn null;\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tnaturesmadness: {\n\t\tnum: 717,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon, target) {\n\t\t\treturn this.clampIntRange(Math.floor(target.getUndynamaxedHP() / 2), 1);\n\t\t},\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Nature's Madness\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Tough\",\n\t},\n\tneedlearm: {\n\t\tnum: 302,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Needle Arm\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Clever\",\n\t},\n\tneverendingnightmare: {\n\t\tnum: 636,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Never-Ending Nightmare\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"ghostiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tnightdaze: {\n\t\tnum: 539,\n\t\taccuracy: 95,\n\t\tbasePower: 85,\n\t\tcategory: \"Special\",\n\t\tname: \"Night Daze\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 40,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tnightmare: {\n\t\tnum: 171,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Nightmare\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'nightmare',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon) {\n\t\t\t\tif (pokemon.status !== 'slp' && !pokemon.hasAbility('comatose')) {\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\tonResidualOrder: 11,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tthis.damage(pokemon.baseMaxhp / 4);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tnightshade: {\n\t\tnum: 101,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamage: 'level',\n\t\tcategory: \"Special\",\n\t\tname: \"Night Shade\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Clever\",\n\t},\n\tnightslash: {\n\t\tnum: 400,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Night Slash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Cool\",\n\t},\n\tnobleroar: {\n\t\tnum: 568,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Noble Roar\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -1,\n\t\t\tspa: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tnoretreat: {\n\t\tnum: 748,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"No Retreat\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'noretreat',\n\t\tonTry(source, target, move) {\n\t\t\tif (source.volatiles['noretreat']) return false;\n\t\t\tif (source.volatiles['trapped']) {\n\t\t\t\tdelete move.volatileStatus;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'move: No Retreat');\n\t\t\t},\n\t\t\tonTrapPokemon(pokemon) {\n\t\t\t\tpokemon.tryTrap();\n\t\t\t},\n\t\t},\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tdef: 1,\n\t\t\tspa: 1,\n\t\t\tspd: 1,\n\t\t\tspe: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fighting\",\n\t},\n\tnoxioustorque: {\n\t\tnum: 898,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Noxious Torque\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t},\n\tnuzzle: {\n\t\tnum: 609,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tcategory: \"Physical\",\n\t\tname: \"Nuzzle\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cute\",\n\t},\n\toblivionwing: {\n\t\tnum: 613,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Oblivion Wing\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, heal: 1, metronome: 1 },\n\t\tdrain: [3, 4],\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tobstruct: {\n\t\tnum: 792,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Obstruct\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { failinstruct: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'obstruct',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.boost({ def: -2 }, source, target, this.dex.getActiveMove(\"Obstruct\"));\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.boost({ def: -2 }, source, target, this.dex.getActiveMove(\"Obstruct\"));\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Dark\",\n\t},\n\toceanicoperetta: {\n\t\tnum: 697,\n\t\taccuracy: true,\n\t\tbasePower: 195,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Oceanic Operetta\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"primariumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\toctazooka: {\n\t\tnum: 190,\n\t\taccuracy: 85,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Octazooka\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\taccuracy: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\toctolock: {\n\t\tnum: 753,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Octolock\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryImmunity(target) {\n\t\t\treturn this.dex.getImmunity('trapped', target);\n\t\t},\n\t\tvolatileStatus: 'octolock',\n\t\tcondition: {\n\t\t\tonStart(pokemon, source) {\n\t\t\t\tthis.add('-start', pokemon, 'move: Octolock', `[of] ${source}`);\n\t\t\t},\n\t\t\tonResidualOrder: 14,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tconst source = this.effectState.source;\n\t\t\t\tif (source && (!source.isActive || source.hp <= 0 || !source.activeTurns)) {\n\t\t\t\t\tdelete pokemon.volatiles['octolock'];\n\t\t\t\t\tthis.add('-end', pokemon, 'Octolock', '[partiallytrapped]', '[silent]');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.boost({ def: -1, spd: -1 }, pokemon, source, this.dex.getActiveMove('octolock'));\n\t\t\t},\n\t\t\tonTrapPokemon(pokemon) {\n\t\t\t\tif (this.effectState.source?.isActive) pokemon.tryTrap();\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\todorsleuth: {\n\t\tnum: 316,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Odor Sleuth\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'foresight',\n\t\tonTryHit(target) {\n\t\t\tif (target.volatiles['miracleeye']) return false;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tominouswind: {\n\t\tnum: 466,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Ominous Wind\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tatk: 1,\n\t\t\t\t\tdef: 1,\n\t\t\t\t\tspa: 1,\n\t\t\t\t\tspd: 1,\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\torderup: {\n\t\tnum: 856,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Order Up\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1 },\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\n\t\t\tif (!pokemon.volatiles['commanded']) return;\n\t\t\tconst tatsugiri = pokemon.volatiles['commanded'].source;\n\t\t\tif (tatsugiri.baseSpecies.baseSpecies !== 'Tatsugiri') return; // Should never happen\n\t\t\tswitch (tatsugiri.baseSpecies.forme) {\n\t\t\tcase 'Droopy':\n\t\t\t\tthis.boost({ def: 1 }, pokemon, pokemon);\n\t\t\t\tbreak;\n\t\t\tcase 'Stretchy':\n\t\t\t\tthis.boost({ spe: 1 }, pokemon, pokemon);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.boost({ atk: 1 }, pokemon, pokemon);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\thasSheerForce: true,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t},\n\toriginpulse: {\n\t\tnum: 618,\n\t\taccuracy: 85,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Origin Pulse\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, pulse: 1 },\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\toutrage: {\n\t\tnum: 200,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Outrage\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: '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\tsecondary: null,\n\t\ttarget: \"randomNormal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\toverdrive: {\n\t\tnum: 786,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Overdrive\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Electric\",\n\t},\n\toverheat: {\n\t\tnum: 315,\n\t\taccuracy: 90,\n\t\tbasePower: 130,\n\t\tcategory: \"Special\",\n\t\tname: \"Overheat\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspa: -2,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpainsplit: {\n\t\tnum: 220,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Pain Split\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, pokemon) {\n\t\t\tconst targetHP = target.getUndynamaxedHP();\n\t\t\tconst averagehp = Math.floor((targetHP + pokemon.hp) / 2) || 1;\n\t\t\tconst targetChange = targetHP - averagehp;\n\t\t\ttarget.sethp(target.hp - targetChange);\n\t\t\tthis.add('-sethp', target, target.getHealth, '[from] move: Pain Split', '[silent]');\n\t\t\tpokemon.sethp(averagehp);\n\t\t\tthis.add('-sethp', pokemon, pokemon.getHealth, '[from] move: Pain Split');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tparaboliccharge: {\n\t\tnum: 570,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Parabolic Charge\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tdrain: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpartingshot: {\n\t\tnum: 575,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Parting Shot\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tconst success = this.boost({ atk: -1, spa: -1 }, target, source);\n\t\t\tif (!success && !target.hasAbility('mirrorarmor')) {\n\t\t\t\tdelete move.selfSwitch;\n\t\t\t}\n\t\t},\n\t\tselfSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { effect: 'healreplacement' },\n\t\tcontestType: \"Cool\",\n\t},\n\tpayback: {\n\t\tnum: 371,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) {\n\t\t\t\tthis.debug('Payback NOT boosted');\n\t\t\t\treturn move.basePower;\n\t\t\t}\n\t\t\tthis.debug('Payback damage boost');\n\t\t\treturn move.basePower * 2;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Payback\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tpayday: {\n\t\tnum: 6,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Pay Day\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpeck: {\n\t\tnum: 64,\n\t\taccuracy: 100,\n\t\tbasePower: 35,\n\t\tcategory: \"Physical\",\n\t\tname: \"Peck\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tperishsong: {\n\t\tnum: 195,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Perish Song\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { sound: 1, distance: 1, bypasssub: 1, metronome: 1 },\n\t\tonHitField(target, source, move) {\n\t\t\tlet result = false;\n\t\t\tlet message = false;\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tif (this.runEvent('Invulnerability', pokemon, source, move) === false) {\n\t\t\t\t\tthis.add('-miss', source, pokemon);\n\t\t\t\t\tresult = true;\n\t\t\t\t} else if (this.runEvent('TryHit', pokemon, source, move) === null) {\n\t\t\t\t\tresult = true;\n\t\t\t\t} else if (!pokemon.volatiles['perishsong']) {\n\t\t\t\t\tpokemon.addVolatile('perishsong');\n\t\t\t\t\tthis.add('-start', pokemon, 'perish3', '[silent]');\n\t\t\t\t\tresult = true;\n\t\t\t\t\tmessage = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!result) return false;\n\t\t\tif (message) this.add('-fieldactivate', 'move: Perish Song');\n\t\t},\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: 24,\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\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpetalblizzard: {\n\t\tnum: 572,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Petal Blizzard\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpetaldance: {\n\t\tnum: 80,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Petal Dance\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, dance: 1, metronome: 1, failinstruct: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: '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\tsecondary: null,\n\t\ttarget: \"randomNormal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tphantomforce: {\n\t\tnum: 566,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Phantom Force\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, charge: 1, mirror: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1 },\n\t\tbreaksProtect: true,\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonInvulnerability: false,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tphotongeyser: {\n\t\tnum: 722,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Photon Geyser\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical';\n\t\t},\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tpikapapow: {\n\t\tnum: 732,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\tconst bp = Math.floor((pokemon.happiness * 10) / 25) || 1;\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Pika Papow\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cute\",\n\t},\n\tpinmissile: {\n\t\tnum: 42,\n\t\taccuracy: 95,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Pin Missile\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\tplasmafists: {\n\t\tnum: 721,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Plasma Fists\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1 },\n\t\tpseudoWeather: 'iondeluge',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tplaynice: {\n\t\tnum: 589,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Play Nice\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tplayrough: {\n\t\tnum: 583,\n\t\taccuracy: 90,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Play Rough\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cute\",\n\t},\n\tpluck: {\n\t\tnum: 365,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Pluck\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst item = target.getItem();\n\t\t\tif (source.hp && item.isBerry && target.takeItem(source)) {\n\t\t\t\tthis.add('-enditem', target, item.name, '[from] stealeat', '[move] Pluck', `[of] ${source}`);\n\t\t\t\tif (this.singleEvent('Eat', item, null, source, null, null)) {\n\t\t\t\t\tthis.runEvent('EatItem', source, null, null, item);\n\t\t\t\t\tif (item.id === 'leppaberry') target.staleness = 'external';\n\t\t\t\t}\n\t\t\t\tif (item.onEat) source.ateBerry = true;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cute\",\n\t},\n\tpoisonfang: {\n\t\tnum: 305,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Poison Fang\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tstatus: 'tox',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpoisongas: {\n\t\tnum: 139,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Poison Gas\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'psn',\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpoisonjab: {\n\t\tnum: 398,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Poison Jab\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tpoisonpowder: {\n\t\tnum: 77,\n\t\taccuracy: 75,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Poison Powder\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1 },\n\t\tstatus: 'psn',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpoisonsting: {\n\t\tnum: 40,\n\t\taccuracy: 100,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tname: \"Poison Sting\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpoisontail: {\n\t\tnum: 342,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Poison Tail\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpollenpuff: {\n\t\tnum: 676,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Pollen Puff\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, metronome: 1, bullet: 1 },\n\t\tonTryHit(target, source, move) {\n\t\t\tif (source.isAlly(target)) {\n\t\t\t\tmove.basePower = 0;\n\t\t\t\tmove.infiltrates = true;\n\t\t\t}\n\t\t},\n\t\tonTryMove(source, target, move) {\n\t\t\tif (source.isAlly(target) && source.volatiles['healblock']) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('cant', source, 'move: Heal Block', move);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonHit(target, source, move) {\n\t\t\tif (source.isAlly(target)) {\n\t\t\t\tif (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {\n\t\t\t\t\tif (target.volatiles['healblock'] && target.hp !== target.maxhp) {\n\t\t\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\t\t\t// Wrong error message, correct one not supported yet\n\t\t\t\t\t\tthis.add('cant', source, 'move: Heal Block', move);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.add('-immune', target);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.NOT_FAIL;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tpoltergeist: {\n\t\tnum: 809,\n\t\taccuracy: 90,\n\t\tbasePower: 110,\n\t\tcategory: \"Physical\",\n\t\tname: \"Poltergeist\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source, target) {\n\t\t\treturn !!target.item;\n\t\t},\n\t\tonTryHit(target, source, move) {\n\t\t\tthis.add('-activate', target, 'move: Poltergeist', this.dex.items.get(target.item).name);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t},\n\tpopulationbomb: {\n\t\tnum: 860,\n\t\taccuracy: 90,\n\t\tbasePower: 20,\n\t\tcategory: \"Physical\",\n\t\tname: \"Population Bomb\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, slicing: 1 },\n\t\tmultihit: 10,\n\t\tmultiaccuracy: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t},\n\tpounce: {\n\t\tnum: 884,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Pounce\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tpound: {\n\t\tnum: 1,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Pound\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tpowder: {\n\t\tnum: 600,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Powder\",\n\t\tpp: 20,\n\t\tpriority: 1,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1, powder: 1 },\n\t\tvolatileStatus: 'powder',\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'Powder');\n\t\t\t},\n\t\t\tonTryMovePriority: -1,\n\t\t\tonTryMove(pokemon, target, move) {\n\t\t\t\tif (move.type === 'Fire') {\n\t\t\t\t\tthis.add('-activate', pokemon, 'move: Powder');\n\t\t\t\t\tthis.damage(this.clampIntRange(Math.round(pokemon.maxhp / 4), 1));\n\t\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tzMove: { boost: { spd: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpowdersnow: {\n\t\tnum: 181,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Powder Snow\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'frz',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpowergem: {\n\t\tnum: 408,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Power Gem\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpowershift: {\n\t\tnum: 829,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Power Shift\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1 },\n\t\tvolatileStatus: 'powershift',\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Power Shift');\n\t\t\t\tconst newatk = pokemon.storedStats.def;\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\n\t\t\t\tpokemon.storedStats.atk = newatk;\n\t\t\t\tpokemon.storedStats.def = newdef;\n\t\t\t},\n\t\t\tonCopy(pokemon) {\n\t\t\t\tconst newatk = pokemon.storedStats.def;\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\n\t\t\t\tpokemon.storedStats.atk = newatk;\n\t\t\t\tpokemon.storedStats.def = newdef;\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Power Shift');\n\t\t\t\tconst newatk = pokemon.storedStats.def;\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\n\t\t\t\tpokemon.storedStats.atk = newatk;\n\t\t\t\tpokemon.storedStats.def = newdef;\n\t\t\t},\n\t\t\tonRestart(pokemon) {\n\t\t\t\tpokemon.removeVolatile('Power Shift');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\tpowersplit: {\n\t\tnum: 471,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Power Split\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst newatk = Math.floor((target.storedStats.atk + source.storedStats.atk) / 2);\n\t\t\ttarget.storedStats.atk = newatk;\n\t\t\tsource.storedStats.atk = newatk;\n\t\t\tconst newspa = Math.floor((target.storedStats.spa + source.storedStats.spa) / 2);\n\t\t\ttarget.storedStats.spa = newspa;\n\t\t\tsource.storedStats.spa = newspa;\n\t\t\tthis.add('-activate', source, 'move: Power Split', `[of] ${target}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpowerswap: {\n\t\tnum: 384,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Power Swap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst targetBoosts: SparseBoostsTable = {};\n\t\t\tconst sourceBoosts: SparseBoostsTable = {};\n\n\t\t\tconst atkSpa: BoostID[] = ['atk', 'spa'];\n\t\t\tfor (const stat of atkSpa) {\n\t\t\t\ttargetBoosts[stat] = target.boosts[stat];\n\t\t\t\tsourceBoosts[stat] = source.boosts[stat];\n\t\t\t}\n\n\t\t\tsource.setBoost(targetBoosts);\n\t\t\ttarget.setBoost(sourceBoosts);\n\n\t\t\tthis.add('-swapboost', source, target, 'atk, spa', '[from] move: Power Swap');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpowertrick: {\n\t\tnum: 379,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Power Trick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tvolatileStatus: 'powertrick',\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Power Trick');\n\t\t\t\tconst newatk = pokemon.storedStats.def;\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\n\t\t\t\tpokemon.storedStats.atk = newatk;\n\t\t\t\tpokemon.storedStats.def = newdef;\n\t\t\t},\n\t\t\tonCopy(pokemon) {\n\t\t\t\tconst newatk = pokemon.storedStats.def;\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\n\t\t\t\tpokemon.storedStats.atk = newatk;\n\t\t\t\tpokemon.storedStats.def = newdef;\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Power Trick');\n\t\t\t\tconst newatk = pokemon.storedStats.def;\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\n\t\t\t\tpokemon.storedStats.atk = newatk;\n\t\t\t\tpokemon.storedStats.def = newdef;\n\t\t\t},\n\t\t\tonRestart(pokemon) {\n\t\t\t\tpokemon.removeVolatile('Power Trick');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpowertrip: {\n\t\tnum: 681,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst bp = move.basePower + 20 * pokemon.positiveBoosts();\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Power Trip\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Clever\",\n\t},\n\tpoweruppunch: {\n\t\tnum: 612,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Power-Up Punch\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tatk: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tpowerwhip: {\n\t\tnum: 438,\n\t\taccuracy: 85,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Power Whip\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Tough\",\n\t},\n\tprecipiceblades: {\n\t\tnum: 619,\n\t\taccuracy: 85,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Precipice Blades\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1 },\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Cool\",\n\t},\n\tpresent: {\n\t\tnum: 217,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tcategory: \"Physical\",\n\t\tname: \"Present\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tconst rand = this.random(10);\n\t\t\tif (rand < 2) {\n\t\t\t\tmove.heal = [1, 4];\n\t\t\t\tmove.infiltrates = true;\n\t\t\t} else if (rand < 6) {\n\t\t\t\tmove.basePower = 40;\n\t\t\t} else if (rand < 9) {\n\t\t\t\tmove.basePower = 80;\n\t\t\t} else {\n\t\t\t\tmove.basePower = 120;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tprismaticlaser: {\n\t\tnum: 711,\n\t\taccuracy: 100,\n\t\tbasePower: 160,\n\t\tcategory: \"Special\",\n\t\tname: \"Prismatic Laser\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tprotect: {\n\t\tnum: 182,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Protect\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'protect',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect']) {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tpsybeam: {\n\t\tnum: 60,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Psybeam\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpsyblade: {\n\t\tnum: 875,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Psyblade\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\tonBasePower(basePower, source) {\n\t\t\tif (this.field.isTerrain('electricterrain')) {\n\t\t\t\tthis.debug('psyblade electric terrain boost');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tpsychup: {\n\t\tnum: 244,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Psych Up\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tlet i: BoostID;\n\t\t\tfor (i in target.boosts) {\n\t\t\t\tsource.boosts[i] = target.boosts[i];\n\t\t\t}\n\n\t\t\tconst volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus'];\n\t\t\t// we need to remove all crit stage volatiles first; otherwise copying e.g. dragoncheer onto a mon with focusenergy\n\t\t\t// will crash the server (since addVolatile fails due to overlap, leaving the source mon with no hasDragonType to set)\n\t\t\tfor (const volatile of volatilesToCopy) source.removeVolatile(volatile);\n\t\t\tfor (const volatile of volatilesToCopy) {\n\t\t\t\tif (target.volatiles[volatile]) {\n\t\t\t\t\tsource.addVolatile(volatile);\n\t\t\t\t\tif (volatile === 'gmaxchistrike') source.volatiles[volatile].layers = target.volatiles[volatile].layers;\n\t\t\t\t\tif (volatile === 'dragoncheer') source.volatiles[volatile].hasDragonType = target.volatiles[volatile].hasDragonType;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.add('-copyboost', source, target, '[from] move: Psych Up');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Clever\",\n\t},\n\tpsychic: {\n\t\tnum: 94,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Psychic\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpsychicfangs: {\n\t\tnum: 706,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tname: \"Psychic Fangs\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tonTryHit(pokemon) {\n\t\t\t// will shatter screens through sub, before you hit\n\t\t\tpokemon.side.removeSideCondition('reflect');\n\t\t\tpokemon.side.removeSideCondition('lightscreen');\n\t\t\tpokemon.side.removeSideCondition('auroraveil');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpsychicnoise: {\n\t\tnum: 917,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tname: \"Psychic Noise\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'healblock',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tpsychicterrain: {\n\t\tnum: 678,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Psychic Terrain\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tterrain: 'psychicterrain',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasItem('terrainextender')) {\n\t\t\t\t\treturn 8;\n\t\t\t\t}\n\t\t\t\treturn 5;\n\t\t\t},\n\t\t\tonTryHitPriority: 4,\n\t\t\tonTryHit(target, source, effect) {\n\t\t\t\tif (effect && (effect.priority <= 0.1 || effect.target === 'self')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (target.isSemiInvulnerable() || target.isAlly(source)) return;\n\t\t\t\tif (!target.isGrounded()) {\n\t\t\t\t\tconst baseMove = this.dex.moves.get(effect.id);\n\t\t\t\t\tif (baseMove.priority > 0) {\n\t\t\t\t\t\tthis.hint(\"Psychic Terrain doesn't affect Pok\u00E9mon immune to Ground.\");\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.add('-activate', target, 'move: Psychic Terrain');\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tonBasePowerPriority: 6,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tif (move.type === 'Psychic' && attacker.isGrounded() && !attacker.isSemiInvulnerable()) {\n\t\t\t\t\tthis.debug('psychic terrain boost');\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldStart(field, source, effect) {\n\t\t\t\tif (effect?.effectType === 'Ability') {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Psychic Terrain', '[from] ability: ' + effect.name, `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Psychic Terrain');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 7,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Psychic Terrain');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpsychoboost: {\n\t\tnum: 354,\n\t\taccuracy: 90,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tname: \"Psycho Boost\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspa: -2,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpsychocut: {\n\t\tnum: 427,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Psycho Cut\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tpsychoshift: {\n\t\tnum: 375,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Psycho Shift\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryHit(target, source, move) {\n\t\t\tif (!source.status) return false;\n\t\t\tmove.status = source.status;\n\t\t},\n\t\tself: {\n\t\t\tonHit(pokemon) {\n\t\t\t\tpokemon.cureStatus();\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tpsyshieldbash: {\n\t\tnum: 828,\n\t\taccuracy: 90,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Psyshield Bash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tdef: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t},\n\tpsyshock: {\n\t\tnum: 473,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\toverrideDefensiveStat: 'def',\n\t\tname: \"Psyshock\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpsystrike: {\n\t\tnum: 540,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\toverrideDefensiveStat: 'def',\n\t\tname: \"Psystrike\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tpsywave: {\n\t\tnum: 149,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon) {\n\t\t\treturn (this.random(50, 151) * pokemon.level) / 100;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Psywave\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpulverizingpancake: {\n\t\tnum: 701,\n\t\taccuracy: true,\n\t\tbasePower: 210,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Pulverizing Pancake\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { contact: 1 },\n\t\tisZ: \"snorliumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tpunishment: {\n\t\tnum: 386,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target) {\n\t\t\tlet power = 60 + 20 * target.positiveBoosts();\n\t\t\tif (power > 200) power = 200;\n\t\t\tthis.debug(`BP: ${power}`);\n\t\t\treturn power;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Punishment\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\tpurify: {\n\t\tnum: 685,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Purify\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, heal: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tif (!target.cureStatus()) {\n\t\t\t\tthis.add('-fail', source);\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\tthis.heal(Math.ceil(source.maxhp * 0.5), source);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tpursuit: {\n\t\tnum: 228,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\t// You can't get here unless the pursuit succeeds\n\t\t\tif (target.beingCalledBack || target.switchFlag) {\n\t\t\t\tthis.debug('Pursuit damage boost');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Pursuit\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tbeforeTurnCallback(pokemon) {\n\t\t\tfor (const side of this.sides) {\n\t\t\t\tif (side.hasAlly(pokemon)) continue;\n\t\t\t\tside.addSideCondition('pursuit', pokemon);\n\t\t\t\tconst data = side.getSideConditionData('pursuit');\n\t\t\t\tif (!data.sources) {\n\t\t\t\t\tdata.sources = [];\n\t\t\t\t}\n\t\t\t\tdata.sources.push(pokemon);\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, source, target) {\n\t\t\tif (target?.beingCalledBack || target?.switchFlag) move.accuracy = true;\n\t\t},\n\t\tonTryHit(target, pokemon) {\n\t\t\ttarget.side.removeSideCondition('pursuit');\n\t\t},\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\tpokemon.removeVolatile('destinybond');\n\t\t\t\tfor (const source of this.effectState.sources) {\n\t\t\t\t\tif (!source.isAdjacent(pokemon) || !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 || source.canTerastallize) {\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) {\n\t\t\t\t\t\t\t\tif (action.choice === 'megaEvo') {\n\t\t\t\t\t\t\t\t\tthis.actions.runMegaEvo(source);\n\t\t\t\t\t\t\t\t} else if (action.choice === 'terastallize') {\n\t\t\t\t\t\t\t\t\t// Also a \"forme\" change that happens before moves, though only possible in NatDex\n\t\t\t\t\t\t\t\t\tthis.actions.terastallize(source);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t}\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\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tpyroball: {\n\t\tnum: 780,\n\t\taccuracy: 90,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Pyro Ball\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t},\n\tquash: {\n\t\tnum: 511,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Quash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tonHit(target) {\n\t\t\tif (this.activePerHalf === 1) return false; // fails in singles\n\t\t\tconst action = this.queue.willMove(target);\n\t\t\tif (!action) return false;\n\n\t\t\taction.order = 201;\n\t\t\tthis.add('-activate', target, 'move: Quash');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tquickattack: {\n\t\tnum: 98,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Quick Attack\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tquickguard: {\n\t\tnum: 501,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Quick Guard\",\n\t\tpp: 15,\n\t\tpriority: 3,\n\t\tflags: { snatch: 1 },\n\t\tsideCondition: 'quickguard',\n\t\tonTry() {\n\t\t\treturn !!this.queue.willAct();\n\t\t},\n\t\tonHitSide(side, source) {\n\t\t\tsource.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonSideStart(target, source) {\n\t\t\t\tthis.add('-singleturn', source, 'Quick Guard');\n\t\t\t},\n\t\t\tonTryHitPriority: 4,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\t// Quick Guard blocks moves with positive priority, even those given increased priority by Prankster or Gale Wings.\n\t\t\t\t// (e.g. it blocks 0 priority moves boosted by Prankster or Gale Wings; Quick Claw/Custap Berry do not count)\n\t\t\t\tif (move.priority <= 0.1) return;\n\t\t\t\tif (!move.flags['protect']) {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.add('-activate', target, 'move: Quick Guard');\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tquiverdance: {\n\t\tnum: 483,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Quiver Dance\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, dance: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspa: 1,\n\t\t\tspd: 1,\n\t\t\tspe: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Bug\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\trage: {\n\t\tnum: 99,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Rage\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'rage',\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singlemove', pokemon, 'Rage');\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (target !== source && move.category !== 'Status') {\n\t\t\t\t\tthis.boost({ atk: 1 });\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBeforeMovePriority: 100,\n\t\t\tonBeforeMove(pokemon) {\n\t\t\t\tthis.debug('removing Rage before attack');\n\t\t\t\tpokemon.removeVolatile('rage');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tragefist: {\n\t\tnum: 889,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tbasePowerCallback(pokemon) {\n\t\t\treturn Math.min(350, 50 + 50 * pokemon.timesAttacked);\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Rage Fist\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t},\n\tragepowder: {\n\t\tnum: 476,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Rage Powder\",\n\t\tpp: 20,\n\t\tpriority: 2,\n\t\tflags: { noassist: 1, failcopycat: 1, powder: 1 },\n\t\tvolatileStatus: 'ragepowder',\n\t\tonTry(source) {\n\t\t\treturn this.activePerHalf > 1;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Rage Powder');\n\t\t\t},\n\t\t\tonFoeRedirectTargetPriority: 1,\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\n\t\t\t\tconst ragePowderUser = this.effectState.target;\n\t\t\t\tif (ragePowderUser.isSkyDropped()) return;\n\n\t\t\t\tif (source.runStatusImmunity('powder') && this.validTarget(ragePowderUser, source, move.target)) {\n\t\t\t\t\tif (move.smartTarget) move.smartTarget = false;\n\t\t\t\t\tthis.debug(\"Rage Powder redirected target of move\");\n\t\t\t\t\treturn ragePowderUser;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Bug\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tragingbull: {\n\t\tnum: 873,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Raging Bull\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tonTryHit(pokemon) {\n\t\t\t// will shatter screens through sub, before you hit\n\t\t\tpokemon.side.removeSideCondition('reflect');\n\t\t\tpokemon.side.removeSideCondition('lightscreen');\n\t\t\tpokemon.side.removeSideCondition('auroraveil');\n\t\t},\n\t\tonModifyType(move, pokemon) {\n\t\t\tswitch (pokemon.species.name) {\n\t\t\tcase 'Tauros-Paldea-Combat':\n\t\t\t\tmove.type = 'Fighting';\n\t\t\t\tbreak;\n\t\t\tcase 'Tauros-Paldea-Blaze':\n\t\t\t\tmove.type = 'Fire';\n\t\t\t\tbreak;\n\t\t\tcase 'Tauros-Paldea-Aqua':\n\t\t\t\tmove.type = 'Water';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t},\n\tragingfury: {\n\t\tnum: 833,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Raging Fury\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'lockedmove',\n\t\t},\n\t\tonAfterMove(pokemon) {\n\t\t\tif (pokemon.volatiles['lockedmove']?.duration === 1) {\n\t\t\t\tpokemon.removeVolatile('lockedmove');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"randomNormal\",\n\t\ttype: \"Fire\",\n\t},\n\traindance: {\n\t\tnum: 240,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Rain Dance\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tweather: 'RainDance',\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Water\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\trapidspin: {\n\t\tnum: 229,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rapid Spin\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonAfterHit(target, pokemon, move) {\n\t\t\tif (!move.hasSheerForce) {\n\t\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\n\t\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\t\tfor (const condition of sideConditions) {\n\t\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\n\t\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', `[of] ${pokemon}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\n\t\t\t\t\tpokemon.removeVolatile('partiallytrapped');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonAfterSubDamage(damage, target, pokemon, move) {\n\t\t\tif (!move.hasSheerForce) {\n\t\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\n\t\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\t\tfor (const condition of sideConditions) {\n\t\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\n\t\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', `[of] ${pokemon}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\n\t\t\t\t\tpokemon.removeVolatile('partiallytrapped');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\trazorleaf: {\n\t\tnum: 75,\n\t\taccuracy: 95,\n\t\tbasePower: 55,\n\t\tcategory: \"Physical\",\n\t\tname: \"Razor Leaf\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\trazorshell: {\n\t\tnum: 534,\n\t\taccuracy: 95,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Razor Shell\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\trazorwind: {\n\t\tnum: 13,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Razor Wind\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\trecover: {\n\t\tnum: 105,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Recover\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\theal: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\trecycle: {\n\t\tnum: 278,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Recycle\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tif (pokemon.item || !pokemon.lastItem) return false;\n\t\t\tconst item = pokemon.lastItem;\n\t\t\tpokemon.lastItem = '';\n\t\t\tthis.add('-item', pokemon, this.dex.items.get(item), '[from] move: Recycle');\n\t\t\tpokemon.setItem(item);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\treflect: {\n\t\tnum: 115,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Reflect\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tsideCondition: 'reflect',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(target, source, effect) {\n\t\t\t\tif (source?.hasItem('lightclay')) {\n\t\t\t\t\treturn 8;\n\t\t\t\t}\n\t\t\t\treturn 5;\n\t\t\t},\n\t\t\tonAnyModifyDamage(damage, source, target, move) {\n\t\t\t\tif (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Physical') {\n\t\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\n\t\t\t\t\t\tthis.debug('Reflect weaken');\n\t\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\n\t\t\t\t\t\treturn this.chainModify(0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'Reflect');\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 1,\n\t\t\tonSideEnd(side) {\n\t\t\t\tthis.add('-sideend', side, 'Reflect');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\treflecttype: {\n\t\tnum: 513,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Reflect Type\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tif (source.species && (source.species.num === 493 || source.species.num === 773)) return false;\n\t\t\tif (source.terastallized) return false;\n\t\t\tconst oldApparentType = source.apparentType;\n\t\t\tlet newBaseTypes = target.getTypes(true).filter(type => type !== '???');\n\t\t\tif (!newBaseTypes.length) {\n\t\t\t\tif (target.addedType) {\n\t\t\t\t\tnewBaseTypes = ['Normal'];\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\tthis.add('-start', source, 'typechange', '[from] move: Reflect Type', `[of] ${target}`);\n\t\t\tsource.setType(newBaseTypes);\n\t\t\tsource.addedType = target.addedType;\n\t\t\tsource.knownType = target.isAlly(source) && target.knownType;\n\t\t\tif (!source.knownType) source.apparentType = oldApparentType;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\trefresh: {\n\t\tnum: 287,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Refresh\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tif (['', 'slp', 'frz'].includes(pokemon.status)) return false;\n\t\t\tpokemon.cureStatus();\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Cute\",\n\t},\n\trelicsong: {\n\t\tnum: 547,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tname: \"Relic Song\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'slp',\n\t\t},\n\t\tonHit(target, pokemon, move) {\n\t\t\tif (pokemon.baseSpecies.baseSpecies === 'Meloetta' && !pokemon.transformed) {\n\t\t\t\tmove.willChangeForme = true;\n\t\t\t}\n\t\t},\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\n\t\t\tif (move.willChangeForme) {\n\t\t\t\tconst meloettaForme = pokemon.species.id === 'meloettapirouette' ? '' : '-Pirouette';\n\t\t\t\tpokemon.formeChange('Meloetta' + meloettaForme, this.effect, false, '0', '[msg]');\n\t\t\t}\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\trest: {\n\t\tnum: 156,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Rest\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.status === 'slp' || source.hasAbility('comatose')) return false;\n\n\t\t\tif (source.hp === source.maxhp) {\n\t\t\t\tthis.add('-fail', source, 'heal');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t// insomnia and vital spirit checks are separate so that the message is accurate in multi-ability mods\n\t\t\tif (source.hasAbility('insomnia')) {\n\t\t\t\tthis.add('-fail', source, '[from] ability: Insomnia', `[of] ${source}`);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (source.hasAbility('vitalspirit')) {\n\t\t\t\tthis.add('-fail', source, '[from] ability: Vital Spirit', `[of] ${source}`);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonHit(target, source, move) {\n\t\t\tconst result = target.setStatus('slp', source, move);\n\t\t\tif (!result) return result;\n\t\t\ttarget.statusState.time = 3;\n\t\t\ttarget.statusState.startTime = 3;\n\t\t\tthis.heal(target.maxhp); // Aesthetic only as the healing happens after you fall asleep in-game\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tretaliate: {\n\t\tnum: 514,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Retaliate\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon) {\n\t\t\tif (pokemon.side.faintedLastTurn) {\n\t\t\t\tthis.debug('Boosted for a faint last turn');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\treturn: {\n\t\tnum: 216,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\treturn Math.floor((pokemon.happiness * 10) / 25) || 1;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Return\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cute\",\n\t},\n\trevelationdance: {\n\t\tnum: 686,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Revelation Dance\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, dance: 1, metronome: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tconst types = pokemon.getTypes();\n\t\t\tlet type = types[0];\n\t\t\tif (type === 'Bird') type = '???';\n\t\t\tif (type === '???' && types[1]) type = types[1];\n\t\t\tmove.type = type;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\trevenge: {\n\t\tnum: 279,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst damagedByTarget = pokemon.attackedBy.some(\n\t\t\t\tp => p.source === target && p.damage > 0 && p.thisTurn\n\t\t\t);\n\t\t\tif (damagedByTarget) {\n\t\t\t\tthis.debug(`BP doubled for getting hit by ${target}`);\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Revenge\",\n\t\tpp: 10,\n\t\tpriority: -4,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\treversal: {\n\t\tnum: 179,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\tconst ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1);\n\t\t\tlet bp;\n\t\t\tif (ratio < 2) {\n\t\t\t\tbp = 200;\n\t\t\t} else if (ratio < 5) {\n\t\t\t\tbp = 150;\n\t\t\t} else if (ratio < 10) {\n\t\t\t\tbp = 100;\n\t\t\t} else if (ratio < 17) {\n\t\t\t\tbp = 80;\n\t\t\t} else if (ratio < 33) {\n\t\t\t\tbp = 40;\n\t\t\t} else {\n\t\t\t\tbp = 20;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Reversal\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { basePower: 160 },\n\t\tcontestType: \"Cool\",\n\t},\n\trevivalblessing: {\n\t\tnum: 863,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Revival Blessing\",\n\t\tpp: 1,\n\t\tnoPPBoosts: true,\n\t\tpriority: 0,\n\t\tflags: { heal: 1, nosketch: 1 },\n\t\tonTryHit(source) {\n\t\t\tif (!source.side.pokemon.filter(ally => ally.fainted).length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tslotCondition: 'revivalblessing',\n\t\t// No this not a real switchout move\n\t\t// This is needed to trigger a switch protocol to choose a fainted party member\n\t\t// Feel free to refactor\n\t\tselfSwitch: true,\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\t// reviving implemented in side.ts, kind of\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\trisingvoltage: {\n\t\tnum: 804,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tbasePowerCallback(source, target, move) {\n\t\t\tif (this.field.isTerrain('electricterrain') && target.isGrounded()) {\n\t\t\t\tif (!source.isAlly(target)) this.hint(`${move.name}'s BP doubled on grounded target.`);\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Rising Voltage\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tmaxMove: { basePower: 140 },\n\t},\n\troar: {\n\t\tnum: 46,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Roar\",\n\t\tpp: 20,\n\t\tpriority: -6,\n\t\tflags: { reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1 },\n\t\tforceSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\troaroftime: {\n\t\tnum: 459,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tname: \"Roar of Time\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\trockblast: {\n\t\tnum: 350,\n\t\taccuracy: 90,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rock Blast\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Tough\",\n\t},\n\trockclimb: {\n\t\tnum: 431,\n\t\taccuracy: 85,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Rock Climb\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\trockpolish: {\n\t\tnum: 397,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Rock Polish\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspe: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Rock\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\trockslide: {\n\t\tnum: 157,\n\t\taccuracy: 90,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rock Slide\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\trocksmash: {\n\t\tnum: 249,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rock Smash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\trockthrow: {\n\t\tnum: 88,\n\t\taccuracy: 90,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rock Throw\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\trocktomb: {\n\t\tnum: 317,\n\t\taccuracy: 95,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rock Tomb\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Clever\",\n\t},\n\trockwrecker: {\n\t\tnum: 439,\n\t\taccuracy: 90,\n\t\tbasePower: 150,\n\t\tcategory: \"Physical\",\n\t\tname: \"Rock Wrecker\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { recharge: 1, protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'mustrecharge',\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\troleplay: {\n\t\tnum: 272,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Role Play\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tif (target.ability === source.ability) return false;\n\t\t\tif (target.getAbility().flags['failroleplay'] || source.getAbility().flags['cantsuppress']) return false;\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tconst oldAbility = source.setAbility(target.ability);\n\t\t\tif (oldAbility) {\n\t\t\t\tthis.add('-ability', source, source.getAbility().name, '[from] move: Role Play', `[of] ${target}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn oldAbility as false | null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\trollingkick: {\n\t\tnum: 27,\n\t\taccuracy: 85,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Rolling Kick\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\trollout: {\n\t\tnum: 205,\n\t\taccuracy: 90,\n\t\tbasePower: 30,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tlet bp = move.basePower;\n\t\t\tconst rolloutData = pokemon.volatiles['rollout'];\n\t\t\tif (rolloutData?.hitCount) {\n\t\t\t\tbp *= 2 ** rolloutData.contactHitCount;\n\t\t\t}\n\t\t\tif (rolloutData && pokemon.status !== 'slp') {\n\t\t\t\trolloutData.hitCount++;\n\t\t\t\trolloutData.contactHitCount++;\n\t\t\t\tif (rolloutData.hitCount < 5) {\n\t\t\t\t\trolloutData.duration = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pokemon.volatiles['defensecurl']) {\n\t\t\t\tbp *= 2;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Rollout\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1, noparentalbond: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (pokemon.volatiles['rollout'] || pokemon.status === 'slp' || !target) return;\n\t\t\tpokemon.addVolatile('rollout');\n\t\t\tif (move.sourceEffect) pokemon.lastMoveTargetLoc = pokemon.getLocOf(target);\n\t\t},\n\t\tonAfterMove(source, target, move) {\n\t\t\tconst rolloutData = source.volatiles[\"rollout\"];\n\t\t\tif (\n\t\t\t\trolloutData &&\n\t\t\t\trolloutData.hitCount === 5 &&\n\t\t\t\trolloutData.contactHitCount < 5\n\t\t\t\t// this conditions can only be met in gen7 and gen8dlc1\n\t\t\t\t// see `disguise` and `iceface` abilities in the resp mod folders\n\t\t\t) {\n\t\t\t\tsource.addVolatile(\"rolloutstorage\");\n\t\t\t\tsource.volatiles[\"rolloutstorage\"].contactHitCount =\n\t\t\t\t\trolloutData.contactHitCount;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonLockMove: 'rollout',\n\t\t\tonStart() {\n\t\t\t\tthis.effectState.hitCount = 0;\n\t\t\t\tthis.effectState.contactHitCount = 0;\n\t\t\t},\n\t\t\tonResidual(target) {\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\n\t\t\t\t\t// don't lock\n\t\t\t\t\tdelete target.volatiles['rollout'];\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Cute\",\n\t},\n\troost: {\n\t\tnum: 355,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Roost\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\theal: [1, 2],\n\t\tself: {\n\t\t\tvolatileStatus: 'roost',\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonResidualOrder: 25,\n\t\t\tonStart(target) {\n\t\t\t\tif (target.terastallized) {\n\t\t\t\t\tif (target.hasType('Flying')) {\n\t\t\t\t\t\tthis.add('-hint', \"If a Terastallized Pokemon uses Roost, it remains Flying-type.\");\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tthis.add('-singleturn', target, 'move: Roost');\n\t\t\t},\n\t\t\tonTypePriority: -1,\n\t\t\tonType(types, pokemon) {\n\t\t\t\tthis.effectState.typeWas = types;\n\t\t\t\treturn types.filter(type => type !== 'Flying');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Flying\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\trototiller: {\n\t\tnum: 563,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Rototiller\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { distance: 1, nonsky: 1, metronome: 1 },\n\t\tonHitField(target, source) {\n\t\t\tconst targets: Pokemon[] = [];\n\t\t\tlet anyAirborne = false;\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tif (!pokemon.runImmunity('Ground')) {\n\t\t\t\t\tthis.add('-immune', pokemon);\n\t\t\t\t\tanyAirborne = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pokemon.hasType('Grass')) {\n\t\t\t\t\t// This move affects every grounded Grass-type Pokemon in play.\n\t\t\t\t\ttargets.push(pokemon);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!targets.length && !anyAirborne) return false; // Fails when there are no grounded Grass types or airborne Pokemon\n\t\t\tfor (const pokemon of targets) {\n\t\t\t\tthis.boost({ atk: 1, spa: 1 }, pokemon, source);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Ground\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tround: {\n\t\tnum: 496,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tbasePowerCallback(target, source, move) {\n\t\t\tif (move.sourceEffect === 'round') {\n\t\t\t\tthis.debug('BP doubled');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Round\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tonTry(source, target, move) {\n\t\t\tfor (const action of this.queue.list as MoveAction[]) {\n\t\t\t\tif (!action.pokemon || !action.move || action.maxMove || action.zmove) continue;\n\t\t\t\tif (action.move.id === 'round') {\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\truination: {\n\t\tnum: 877,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon, target) {\n\t\t\treturn this.clampIntRange(Math.floor(target.getUndynamaxedHP() / 2), 1);\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Ruination\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsacredfire: {\n\t\tnum: 221,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Sacred Fire\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsacredsword: {\n\t\tnum: 533,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Sacred Sword\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tignoreEvasion: true,\n\t\tignoreDefensive: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsafeguard: {\n\t\tnum: 219,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Safeguard\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tsideCondition: 'safeguard',\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', '[move] Safeguard');\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.name === '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, source) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-sidestart', side, 'Safeguard', '[persistent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-sidestart', side, 'Safeguard');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 3,\n\t\t\tonSideEnd(side) {\n\t\t\t\tthis.add('-sideend', side, 'Safeguard');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsaltcure: {\n\t\tnum: 864,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Salt Cure\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Salt Cure');\n\t\t\t},\n\t\t\tonResidualOrder: 13,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tthis.damage(pokemon.baseMaxhp / (pokemon.hasType(['Water', 'Steel']) ? 4 : 8));\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Salt Cure');\n\t\t\t},\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'saltcure',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t},\n\tsandattack: {\n\t\tnum: 28,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sand Attack\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\taccuracy: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tsandsearstorm: {\n\t\tnum: 848,\n\t\taccuracy: 80,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Sandsear Storm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) {\n\t\t\t\tmove.accuracy = true;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ground\",\n\t},\n\tsandstorm: {\n\t\tnum: 201,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sandstorm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1, wind: 1 },\n\t\tweather: 'Sandstorm',\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Rock\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tsandtomb: {\n\t\tnum: 328,\n\t\taccuracy: 85,\n\t\tbasePower: 35,\n\t\tcategory: \"Physical\",\n\t\tname: \"Sand Tomb\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsappyseed: {\n\t\tnum: 738,\n\t\taccuracy: 90,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Sappy Seed\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1 },\n\t\tonHit(target, source) {\n\t\t\tif (target.hasType('Grass')) return null;\n\t\t\ttarget.addVolatile('leechseed', source);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsavagespinout: {\n\t\tnum: 634,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Savage Spin-Out\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"buginiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tscald: {\n\t\tnum: 503,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Scald\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\tthawsTarget: true,\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\tscaleshot: {\n\t\tnum: 799,\n\t\taccuracy: 90,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Scale Shot\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tselfBoost: {\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t\tspe: 1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t},\n\tscaryface: {\n\t\tnum: 184,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Scary Face\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspe: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tscorchingsands: {\n\t\tnum: 815,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tname: \"Scorching Sands\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1, metronome: 1 },\n\t\tthawsTarget: true,\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t},\n\tscratch: {\n\t\tnum: 10,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Scratch\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tscreech: {\n\t\tnum: 103,\n\t\taccuracy: 85,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Screech\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tsearingshot: {\n\t\tnum: 545,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Searing Shot\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsearingsunrazesmash: {\n\t\tnum: 724,\n\t\taccuracy: true,\n\t\tbasePower: 200,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Searing Sunraze Smash\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { contact: 1 },\n\t\tisZ: \"solganiumz\",\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsecretpower: {\n\t\tnum: 290,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Secret Power\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (this.field.isTerrain('')) return;\n\t\t\tmove.secondaries = [];\n\t\t\tif (this.field.isTerrain('electricterrain')) {\n\t\t\t\tmove.secondaries.push({\n\t\t\t\t\tchance: 30,\n\t\t\t\t\tstatus: 'par',\n\t\t\t\t});\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tmove.secondaries.push({\n\t\t\t\t\tchance: 30,\n\t\t\t\t\tstatus: 'slp',\n\t\t\t\t});\n\t\t\t} else if (this.field.isTerrain('mistyterrain')) {\n\t\t\t\tmove.secondaries.push({\n\t\t\t\t\tchance: 30,\n\t\t\t\t\tboosts: {\n\t\t\t\t\t\tspa: -1,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else if (this.field.isTerrain('psychicterrain')) {\n\t\t\t\tmove.secondaries.push({\n\t\t\t\t\tchance: 30,\n\t\t\t\t\tboosts: {\n\t\t\t\t\t\tspe: -1,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsecretsword: {\n\t\tnum: 548,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Special\",\n\t\toverrideDefensiveStat: 'def',\n\t\tname: \"Secret Sword\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tseedbomb: {\n\t\tnum: 402,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Seed Bomb\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Tough\",\n\t},\n\tseedflare: {\n\t\tnum: 465,\n\t\taccuracy: 85,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Seed Flare\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 40,\n\t\t\tboosts: {\n\t\t\t\tspd: -2,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tseismictoss: {\n\t\tnum: 69,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tdamage: 'level',\n\t\tcategory: \"Physical\",\n\t\tname: \"Seismic Toss\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tmaxMove: { basePower: 75 },\n\t\tcontestType: \"Tough\",\n\t},\n\tselfdestruct: {\n\t\tnum: 120,\n\t\taccuracy: 100,\n\t\tbasePower: 200,\n\t\tcategory: \"Physical\",\n\t\tname: \"Self-Destruct\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, noparentalbond: 1 },\n\t\tselfdestruct: \"always\",\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tshadowball: {\n\t\tnum: 247,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Shadow Ball\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tboosts: {\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Clever\",\n\t},\n\tshadowbone: {\n\t\tnum: 708,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Shadow Bone\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tshadowclaw: {\n\t\tnum: 421,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Shadow Claw\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tshadowforce: {\n\t\tnum: 467,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Shadow Force\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, charge: 1, mirror: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1 },\n\t\tbreaksProtect: true,\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonInvulnerability: false,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tshadowpunch: {\n\t\tnum: 325,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Shadow Punch\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Clever\",\n\t},\n\tshadowsneak: {\n\t\tnum: 425,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Shadow Sneak\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsharpen: {\n\t\tnum: 159,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Sharpen\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tshatteredpsyche: {\n\t\tnum: 648,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Shattered Psyche\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"psychiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\tshedtail: {\n\t\tnum: 880,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Shed Tail\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tvolatileStatus: 'substitute',\n\t\tonTryHit(source) {\n\t\t\tif (!this.canSwitch(source.side) || source.volatiles['commanded']) {\n\t\t\t\tthis.add('-fail', source);\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\tif (source.volatiles['substitute']) {\n\t\t\t\tthis.add('-fail', source, 'move: Shed Tail');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\tif (source.hp <= Math.ceil(source.maxhp / 2)) {\n\t\t\t\tthis.add('-fail', source, 'move: Shed Tail', '[weak]');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t},\n\t\tonHit(target) {\n\t\t\tthis.directDamage(Math.ceil(target.maxhp / 2));\n\t\t},\n\t\tself: {\n\t\t\tonHit(source) {\n\t\t\t\tsource.skipBeforeSwitchOutEventFlag = true;\n\t\t\t},\n\t\t},\n\t\tselfSwitch: 'shedtail',\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t},\n\tsheercold: {\n\t\tnum: 329,\n\t\taccuracy: 30,\n\t\tbasePower: 0,\n\t\tcategory: \"Special\",\n\t\tname: \"Sheer Cold\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\tohko: 'Ice',\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tshellsidearm: {\n\t\tnum: 801,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Shell Side Arm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonPrepareHit(target, source, move) {\n\t\t\tif (!source.isAlly(target)) {\n\t\t\t\tthis.attrLastMove('[anim] Shell Side Arm ' + move.category);\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (!target) return;\n\t\t\tconst atk = pokemon.getStat('atk', false, true);\n\t\t\tconst spa = pokemon.getStat('spa', false, true);\n\t\t\tconst def = target.getStat('def', false, true);\n\t\t\tconst spd = target.getStat('spd', false, true);\n\t\t\tconst physical = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * atk) / def) / 50);\n\t\t\tconst special = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * spa) / spd) / 50);\n\t\t\tif (physical > special || (physical === special && this.randomChance(1, 2))) {\n\t\t\t\tmove.category = 'Physical';\n\t\t\t\tmove.flags.contact = 1;\n\t\t\t}\n\t\t},\n\t\tonHit(target, source, move) {\n\t\t\t// Shell Side Arm normally reveals its category via animation on cart, but doesn't play either custom animation against allies\n\t\t\tif (!source.isAlly(target)) this.hint(move.category + \" Shell Side Arm\");\n\t\t},\n\t\tonAfterSubDamage(damage, target, source, move) {\n\t\t\tif (!source.isAlly(target)) this.hint(move.category + \" Shell Side Arm\");\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t},\n\tshellsmash: {\n\t\tnum: 504,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Shell Smash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: -1,\n\t\t\tspd: -1,\n\t\t\tatk: 2,\n\t\t\tspa: 2,\n\t\t\tspe: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\tshelltrap: {\n\t\tnum: 704,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Shell Trap\",\n\t\tpp: 5,\n\t\tpriority: -3,\n\t\tflags: { protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 },\n\t\tpriorityChargeCallback(pokemon) {\n\t\t\tpokemon.addVolatile('shelltrap');\n\t\t},\n\t\tonTryMove(pokemon) {\n\t\t\tif (!pokemon.volatiles['shelltrap']?.gotHit) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('cant', pokemon, 'Shell Trap', 'Shell Trap');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Shell Trap');\n\t\t\t},\n\t\t\tonHit(pokemon, source, move) {\n\t\t\t\tif (!pokemon.isAlly(source) && move.category === 'Physical') {\n\t\t\t\t\tthis.effectState.gotHit = true;\n\t\t\t\t\tconst action = this.queue.willMove(pokemon);\n\t\t\t\t\tif (action) {\n\t\t\t\t\t\tthis.queue.prioritizeAction(action);\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: \"allAdjacentFoes\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Tough\",\n\t},\n\tshelter: {\n\t\tnum: 842,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Shelter\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Steel\",\n\t},\n\tshiftgear: {\n\t\tnum: 508,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Shift Gear\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspe: 2,\n\t\t\tatk: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Steel\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tshockwave: {\n\t\tnum: 351,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Shock Wave\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tshoreup: {\n\t\tnum: 659,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Shore Up\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tlet factor = 0.5;\n\t\t\tif (this.field.isWeather('sandstorm')) {\n\t\t\t\tfactor = 0.667;\n\t\t\t}\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Ground\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsignalbeam: {\n\t\tnum: 324,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Signal Beam\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsilktrap: {\n\t\tnum: 852,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Silk Trap\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: {},\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'silktrap',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.boost({ spe: -1 }, source, target, this.dex.getActiveMove(\"Silk Trap\"));\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.boost({ spe: -1 }, source, target, this.dex.getActiveMove(\"Silk Trap\"));\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"self\",\n\t\ttype: \"Bug\",\n\t},\n\tsilverwind: {\n\t\tnum: 318,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Silver Wind\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tatk: 1,\n\t\t\t\t\tdef: 1,\n\t\t\t\t\tspa: 1,\n\t\t\t\t\tspd: 1,\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsimplebeam: {\n\t\tnum: 493,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Simple Beam\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonTryHit(target) {\n\t\t\tif (target.getAbility().flags['cantsuppress'] || target.ability === 'simple' || target.ability === 'truant') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tconst oldAbility = pokemon.setAbility('simple');\n\t\t\tif (oldAbility) {\n\t\t\t\tthis.add('-ability', pokemon, 'Simple', '[from] move: Simple Beam');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn oldAbility as false | null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tsing: {\n\t\tnum: 47,\n\t\taccuracy: 55,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sing\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tstatus: 'slp',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tsinisterarrowraid: {\n\t\tnum: 695,\n\t\taccuracy: true,\n\t\tbasePower: 180,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Sinister Arrow Raid\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"decidiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsizzlyslide: {\n\t\tnum: 735,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Sizzly Slide\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, defrost: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsketch: {\n\t\tnum: 166,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sketch\",\n\t\tpp: 1,\n\t\tnoPPBoosts: true,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tbypasssub: 1, allyanim: 1, failencore: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tconst move = target.lastMove;\n\t\t\tif (source.transformed || !move || source.moves.includes(move.id)) return false;\n\t\t\tif (move.flags['nosketch'] || move.isZ || move.isMax) return false;\n\t\t\tconst sketchIndex = source.moves.indexOf('sketch');\n\t\t\tif (sketchIndex < 0) return false;\n\t\t\tconst sketchedMove = {\n\t\t\t\tmove: move.name,\n\t\t\t\tid: move.id,\n\t\t\t\tpp: move.pp,\n\t\t\t\tmaxpp: move.pp,\n\t\t\t\ttarget: move.target,\n\t\t\t\tdisabled: false,\n\t\t\t\tused: false,\n\t\t\t};\n\t\t\tsource.moveSlots[sketchIndex] = sketchedMove;\n\t\t\tsource.baseMoveSlots[sketchIndex] = sketchedMove;\n\t\t\tthis.add('-activate', source, 'move: Sketch', move.name);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tskillswap: {\n\t\tnum: 285,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Skill Swap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonTryHit(target, source) {\n\t\t\tconst targetAbility = target.getAbility();\n\t\t\tconst sourceAbility = source.getAbility();\n\t\t\tif (sourceAbility.flags['failskillswap'] || targetAbility.flags['failskillswap'] || target.volatiles['dynamax']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst sourceCanBeSet = this.runEvent('SetAbility', source, source, this.effect, targetAbility);\n\t\t\tif (!sourceCanBeSet) return sourceCanBeSet;\n\t\t\tconst targetCanBeSet = this.runEvent('SetAbility', target, source, this.effect, sourceAbility);\n\t\t\tif (!targetCanBeSet) return targetCanBeSet;\n\t\t},\n\t\tonHit(target, source, move) {\n\t\t\tconst targetAbility = target.getAbility();\n\t\t\tconst sourceAbility = source.getAbility();\n\t\t\tif (target.isAlly(source)) {\n\t\t\t\tthis.add('-activate', source, 'move: Skill Swap', '', '', `[of] ${target}`);\n\t\t\t} else {\n\t\t\t\tthis.add('-activate', source, 'move: Skill Swap', targetAbility, sourceAbility, `[of] ${target}`);\n\t\t\t}\n\t\t\tthis.singleEvent('End', sourceAbility, source.abilityState, source);\n\t\t\tthis.singleEvent('End', targetAbility, target.abilityState, target);\n\t\t\tsource.ability = targetAbility.id;\n\t\t\ttarget.ability = sourceAbility.id;\n\t\t\tsource.abilityState = this.initEffectState({ id: this.toID(source.ability), target: source });\n\t\t\ttarget.abilityState = this.initEffectState({ id: this.toID(target.ability), target });\n\t\t\tsource.volatileStaleness = undefined;\n\t\t\tif (!target.isAlly(source)) target.volatileStaleness = 'external';\n\t\t\tthis.singleEvent('Start', targetAbility, source.abilityState, source);\n\t\t\tthis.singleEvent('Start', sourceAbility, target.abilityState, target);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tskittersmack: {\n\t\tnum: 806,\n\t\taccuracy: 90,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Skitter Smack\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t},\n\tskullbash: {\n\t\tnum: 130,\n\t\taccuracy: 100,\n\t\tbasePower: 130,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Skull Bash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tthis.boost({ def: 1 }, attacker, attacker, move);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tskyattack: {\n\t\tnum: 143,\n\t\taccuracy: 90,\n\t\tbasePower: 140,\n\t\tcategory: \"Physical\",\n\t\tname: \"Sky Attack\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, distance: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tcritRatio: 2,\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tskydrop: {\n\t\tnum: 507,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Sky Drop\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1,\n\t\t\tmetronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\n\t\t},\n\t\tonModifyMove(move, source) {\n\t\t\tif (!source.volatiles['skydrop']) {\n\t\t\t\tmove.accuracy = true;\n\t\t\t\tdelete move.flags['contact'];\n\t\t\t}\n\t\t},\n\t\tonMoveFail(target, source) {\n\t\t\tif (source.volatiles['twoturnmove'] && source.volatiles['twoturnmove'].duration === 1) {\n\t\t\t\tsource.removeVolatile('skydrop');\n\t\t\t\tsource.removeVolatile('twoturnmove');\n\t\t\t\tif (target === this.effectState.target) {\n\t\t\t\t\tthis.add('-end', target, 'Sky Drop', '[interrupt]');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonTry(source, target) {\n\t\t\treturn !target.fainted;\n\t\t},\n\t\tonTryHit(target, source, move) {\n\t\t\tif (source.removeVolatile(move.id)) {\n\t\t\t\tif (target !== source.volatiles['twoturnmove'].source) return false;\n\n\t\t\t\tif (target.hasType('Flying')) {\n\t\t\t\t\tthis.add('-immune', target);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (target.volatiles['substitute'] || target.isAlly(source)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (target.getWeight() >= 2000) {\n\t\t\t\t\tthis.add('-fail', target, 'move: Sky Drop', '[heavy]');\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tthis.add('-prepare', source, move.name, target);\n\t\t\t\tsource.addVolatile('twoturnmove', target);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\tif (target.hp) this.add('-end', target, 'Sky Drop');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonAnyDragOut(pokemon) {\n\t\t\t\tif (pokemon === this.effectState.target || pokemon === this.effectState.source) return false;\n\t\t\t},\n\t\t\tonFoeTrapPokemonPriority: -15,\n\t\t\tonFoeTrapPokemon(defender) {\n\t\t\t\tif (defender !== this.effectState.source) return;\n\t\t\t\tdefender.trapped = true;\n\t\t\t},\n\t\t\tonFoeBeforeMovePriority: 12,\n\t\t\tonFoeBeforeMove(attacker, defender, move) {\n\t\t\t\tif (attacker === this.effectState.source) {\n\t\t\t\t\tattacker.activeMoveActions--;\n\t\t\t\t\tthis.debug('Sky drop nullifying.');\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonRedirectTargetPriority: 99,\n\t\t\tonRedirectTarget(target, source, source2) {\n\t\t\t\tif (source !== this.effectState.target) return;\n\t\t\t\tif (this.effectState.source.fainted) return;\n\t\t\t\treturn this.effectState.source;\n\t\t\t},\n\t\t\tonAnyInvulnerability(target, source, move) {\n\t\t\t\tif (target !== this.effectState.target && target !== this.effectState.source) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (source === this.effectState.target && target === this.effectState.source) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (['gust', 'twister', 'skyuppercut', 'thunder', 'hurricane', 'smackdown', 'thousandarrows'].includes(move.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonAnyBasePower(basePower, target, source, move) {\n\t\t\t\tif (target !== this.effectState.target && target !== this.effectState.source) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (source === this.effectState.target && target === this.effectState.source) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.id === 'gust' || move.id === 'twister') {\n\t\t\t\t\tthis.debug('BP doubled on midair target');\n\t\t\t\t\treturn this.chainModify(2);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFaint(target) {\n\t\t\t\tif (target.volatiles['skydrop'] && target.volatiles['twoturnmove'].source) {\n\t\t\t\t\tthis.add('-end', target.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Tough\",\n\t},\n\tskyuppercut: {\n\t\tnum: 327,\n\t\taccuracy: 90,\n\t\tbasePower: 85,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Sky Uppercut\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tslackoff: {\n\t\tnum: 303,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Slack Off\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\theal: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tslam: {\n\t\tnum: 21,\n\t\taccuracy: 75,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Slam\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tslash: {\n\t\tnum: 163,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Slash\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsleeppowder: {\n\t\tnum: 79,\n\t\taccuracy: 75,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sleep Powder\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1 },\n\t\tstatus: 'slp',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tsleeptalk: {\n\t\tnum: 214,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sleep Talk\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tsleepUsable: true,\n\t\tonTry(source) {\n\t\t\treturn source.status === 'slp' || source.hasAbility('comatose');\n\t\t},\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\tif (!moveid) continue;\n\t\t\t\tconst move = this.dex.moves.get(moveid);\n\t\t\t\tif (move.flags['nosleeptalk'] || move.flags['charge'] || (move.isZ && move.basePower !== 1) || move.isMax) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tmoves.push(moveid);\n\t\t\t}\n\t\t\tlet randomMove = '';\n\t\t\tif (moves.length) randomMove = this.sample(moves);\n\t\t\tif (!randomMove) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.actions.useMove(randomMove, pokemon);\n\t\t},\n\t\tcallsMove: true,\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'crit2' },\n\t\tcontestType: \"Cute\",\n\t},\n\tsludge: {\n\t\tnum: 124,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Sludge\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsludgebomb: {\n\t\tnum: 188,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Sludge Bomb\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsludgewave: {\n\t\tnum: 482,\n\t\taccuracy: 100,\n\t\tbasePower: 95,\n\t\tcategory: \"Special\",\n\t\tname: \"Sludge Wave\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsmackdown: {\n\t\tnum: 479,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Smack Down\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tvolatileStatus: 'smackdown',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon) {\n\t\t\t\tlet applies = false;\n\t\t\t\tif (pokemon.hasType('Flying') || pokemon.hasAbility('levitate')) applies = true;\n\t\t\t\tif (pokemon.hasItem('ironball') || pokemon.volatiles['ingrain'] ||\n\t\t\t\t\tthis.field.getPseudoWeather('gravity')) applies = false;\n\t\t\t\tif (pokemon.removeVolatile('fly') || pokemon.removeVolatile('bounce')) {\n\t\t\t\t\tapplies = true;\n\t\t\t\t\tthis.queue.cancelMove(pokemon);\n\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\n\t\t\t\t}\n\t\t\t\tif (pokemon.volatiles['magnetrise']) {\n\t\t\t\t\tapplies = true;\n\t\t\t\t\tdelete pokemon.volatiles['magnetrise'];\n\t\t\t\t}\n\t\t\t\tif (pokemon.volatiles['telekinesis']) {\n\t\t\t\t\tapplies = true;\n\t\t\t\t\tdelete pokemon.volatiles['telekinesis'];\n\t\t\t\t}\n\t\t\t\tif (!applies) return false;\n\t\t\t\tthis.add('-start', pokemon, 'Smack Down');\n\t\t\t},\n\t\t\tonRestart(pokemon) {\n\t\t\t\tif (pokemon.removeVolatile('fly') || pokemon.removeVolatile('bounce')) {\n\t\t\t\t\tthis.queue.cancelMove(pokemon);\n\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\n\t\t\t\t\tthis.add('-start', pokemon, 'Smack Down');\n\t\t\t\t}\n\t\t\t},\n\t\t\t// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsmartstrike: {\n\t\tnum: 684,\n\t\taccuracy: true,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Smart Strike\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsmellingsalts: {\n\t\tnum: 265,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.status === 'par') {\n\t\t\t\tthis.debug('BP doubled on paralyzed target');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Smelling Salts\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.status === 'par') target.cureStatus();\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsmog: {\n\t\tnum: 123,\n\t\taccuracy: 70,\n\t\tbasePower: 30,\n\t\tcategory: \"Special\",\n\t\tname: \"Smog\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 40,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsmokescreen: {\n\t\tnum: 108,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Smokescreen\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\taccuracy: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { evasion: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tsnaptrap: {\n\t\tnum: 779,\n\t\taccuracy: 100,\n\t\tbasePower: 35,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Snap Trap\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tsnarl: {\n\t\tnum: 555,\n\t\taccuracy: 95,\n\t\tbasePower: 55,\n\t\tcategory: \"Special\",\n\t\tname: \"Snarl\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsnatch: {\n\t\tnum: 289,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Snatch\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { bypasssub: 1, mustpressure: 1, noassist: 1, failcopycat: 1 },\n\t\tvolatileStatus: 'snatch',\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singleturn', pokemon, 'Snatch');\n\t\t\t},\n\t\t\tonAnyPrepareHitPriority: -1,\n\t\t\tonAnyPrepareHit(source, target, move) {\n\t\t\t\tconst snatchUser = this.effectState.source;\n\t\t\t\tif (snatchUser.isSkyDropped()) return;\n\t\t\t\tif (!move || move.isZ || move.isMax || !move.flags['snatch'] || move.sourceEffect === 'snatch') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsnatchUser.removeVolatile('snatch');\n\t\t\t\tthis.add('-activate', snatchUser, 'move: Snatch', `[of] ${source}`);\n\t\t\t\tthis.actions.useMove(move.id, snatchUser);\n\t\t\t\treturn null;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tsnipeshot: {\n\t\tnum: 745,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Snipe Shot\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\ttracksTarget: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t},\n\tsnore: {\n\t\tnum: 173,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Snore\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1 },\n\t\tsleepUsable: true,\n\t\tonTry(source) {\n\t\t\treturn source.status === 'slp' || source.hasAbility('comatose');\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tsnowscape: {\n\t\tnum: 883,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Snowscape\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tweather: 'snowscape',\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Ice\",\n\t},\n\tsoak: {\n\t\tnum: 487,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Soak\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.getTypes().join() === 'Water' || !target.setType('Water')) {\n\t\t\t\t// Soak should animate even when it fails.\n\t\t\t\t// Returning false would suppress the animation.\n\t\t\t\tthis.add('-fail', target);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis.add('-start', target, 'typechange', 'Water');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tsoftboiled: {\n\t\tnum: 135,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Soft-Boiled\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\theal: [1, 2],\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tsolarbeam: {\n\t\tnum: 76,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Solar Beam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.addMove('-anim', attacker, move.name, defender);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tonBasePower(basePower, pokemon, target) {\n\t\t\tconst weakWeathers = ['raindance', 'primordialsea', 'sandstorm', 'hail', 'snowscape'];\n\t\t\tif (weakWeathers.includes(pokemon.effectiveWeather())) {\n\t\t\t\tthis.debug('weakened by weather');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsolarblade: {\n\t\tnum: 669,\n\t\taccuracy: 100,\n\t\tbasePower: 125,\n\t\tcategory: \"Physical\",\n\t\tname: \"Solar Blade\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1, slicing: 1 },\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile(move.id)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tif (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.addMove('-anim', attacker, move.name, defender);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t\tonBasePower(basePower, pokemon, target) {\n\t\t\tconst weakWeathers = ['raindance', 'primordialsea', 'sandstorm', 'hail', 'snowscape'];\n\t\t\tif (weakWeathers.includes(pokemon.effectiveWeather())) {\n\t\t\t\tthis.debug('weakened by weather');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsonicboom: {\n\t\tnum: 49,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tdamage: 20,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Sonic Boom\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsoulstealing7starstrike: {\n\t\tnum: 699,\n\t\taccuracy: true,\n\t\tbasePower: 195,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Soul-Stealing 7-Star Strike\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: { contact: 1 },\n\t\tisZ: \"marshadiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tspacialrend: {\n\t\tnum: 460,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Spacial Rend\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tspark: {\n\t\tnum: 209,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Spark\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsparklingaria: {\n\t\tnum: 664,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Sparkling Aria\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tdustproof: true,\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'sparklingaria',\n\t\t},\n\t\tonAfterMove(source, target, move) {\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tif (pokemon !== source && pokemon.removeVolatile('sparklingaria') && pokemon.status === 'brn' && !source.fainted) {\n\t\t\t\t\tpokemon.cureStatus();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsparklyswirl: {\n\t\tnum: 740,\n\t\taccuracy: 85,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Sparkly Swirl\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tonHit(pokemon, source, move) {\n\t\t\t\tthis.add('-activate', source, 'move: Aromatherapy');\n\t\t\t\tfor (const ally of source.side.pokemon) {\n\t\t\t\t\tif (ally !== source && (ally.volatiles['substitute'] && !move.infiltrates)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tally.cureStatus();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Clever\",\n\t},\n\tspectralthief: {\n\t\tnum: 712,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Spectral Thief\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, bypasssub: 1 },\n\t\tstealsBoosts: true,\n\t\t// Boost stealing implemented in scripts.js\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Cool\",\n\t},\n\tspeedswap: {\n\t\tnum: 683,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Speed Swap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst targetSpe = target.storedStats.spe;\n\t\t\ttarget.storedStats.spe = source.storedStats.spe;\n\t\t\tsource.storedStats.spe = targetSpe;\n\t\t\tthis.add('-activate', source, 'move: Speed Swap', `[of] ${target}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tspicyextract: {\n\t\tnum: 858,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Spicy Extract\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1 },\n\t\tboosts: {\n\t\t\tatk: 2,\n\t\t\tdef: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\tspiderweb: {\n\t\tnum: 169,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Spider Web\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\treturn target.addVolatile('trapped', source, move, 'trapper');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tspikecannon: {\n\t\tnum: 131,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Spike Cannon\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tmaxMove: { basePower: 120 },\n\t\tcontestType: \"Cool\",\n\t},\n\tspikes: {\n\t\tnum: 191,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Spikes\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, nonsky: 1, metronome: 1, mustpressure: 1 },\n\t\tsideCondition: 'spikes',\n\t\tcondition: {\n\t\t\t// this is a side condition\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'Spikes');\n\t\t\t\tthis.effectState.layers = 1;\n\t\t\t},\n\t\t\tonSideRestart(side) {\n\t\t\t\tif (this.effectState.layers >= 3) return false;\n\t\t\t\tthis.add('-sidestart', side, 'Spikes');\n\t\t\t\tthis.effectState.layers++;\n\t\t\t},\n\t\t\tonSwitchIn(pokemon) {\n\t\t\t\tif (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return;\n\t\t\t\tconst damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4\n\t\t\t\tthis.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"foeSide\",\n\t\ttype: \"Ground\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tspikyshield: {\n\t\tnum: 596,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Spiky Shield\",\n\t\tpp: 10,\n\t\tpriority: 4,\n\t\tflags: { noassist: 1, failcopycat: 1 },\n\t\tstallingMove: true,\n\t\tvolatileStatus: 'spikyshield',\n\t\tonPrepareHit(pokemon) {\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tpokemon.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-singleturn', target, 'move: Protect');\n\t\t\t},\n\t\t\tonTryHitPriority: 3,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (!move.flags['protect']) {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.smartTarget) {\n\t\t\t\t\tmove.smartTarget = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\n\t\t\t\t}\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.damage(source.baseMaxhp / 8, source, target);\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\t\tthis.damage(source.baseMaxhp / 8, source, target);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tspinout: {\n\t\tnum: 859,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Spin Out\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspe: -2,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\tspiritbreak: {\n\t\tnum: 789,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Spirit Break\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t},\n\tspiritshackle: {\n\t\tnum: 662,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Spirit Shackle\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (source.isActive) target.addVolatile('trapped', source, move, 'trapper');\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Tough\",\n\t},\n\tspitup: {\n\t\tnum: 255,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\tif (!pokemon.volatiles['stockpile']?.layers) return false;\n\t\t\treturn pokemon.volatiles['stockpile'].layers * 100;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Spit Up\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, metronome: 1 },\n\t\tonTry(source) {\n\t\t\treturn !!source.volatiles['stockpile'];\n\t\t},\n\t\tonAfterMove(pokemon) {\n\t\t\tpokemon.removeVolatile('stockpile');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tspite: {\n\t\tnum: 180,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Spite\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tlet move: Move | ActiveMove | null = target.lastMove;\n\t\t\tif (!move || move.isZ) return false;\n\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\n\n\t\t\tconst ppDeducted = target.deductPP(move.id, 4);\n\t\t\tif (!ppDeducted) return false;\n\t\t\tthis.add(\"-activate\", target, 'move: Spite', move.name, ppDeducted);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Tough\",\n\t},\n\tsplash: {\n\t\tnum: 150,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Splash\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { gravity: 1, metronome: 1 },\n\t\tonTry(source, target, move) {\n\t\t\t// Additional Gravity check for Z-move variant\n\t\t\tif (this.field.getPseudoWeather('Gravity')) {\n\t\t\t\tthis.add('cant', source, 'move: Gravity', move);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonTryHit(target, source) {\n\t\t\tthis.add('-nothing');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 3 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tsplinteredstormshards: {\n\t\tnum: 727,\n\t\taccuracy: true,\n\t\tbasePower: 190,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Splintered Stormshards\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tonHit() {\n\t\t\tthis.field.clearTerrain();\n\t\t},\n\t\tonAfterSubDamage() {\n\t\t\tthis.field.clearTerrain();\n\t\t},\n\t\tisZ: \"lycaniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsplishysplash: {\n\t\tnum: 730,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Splishy Splash\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\tspore: {\n\t\tnum: 147,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Spore\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1 },\n\t\tstatus: 'slp',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tspotlight: {\n\t\tnum: 671,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Spotlight\",\n\t\tpp: 15,\n\t\tpriority: 3,\n\t\tflags: { protect: 1, reflectable: 1, allyanim: 1, noassist: 1, failcopycat: 1 },\n\t\tvolatileStatus: 'spotlight',\n\t\tonTryHit(target) {\n\t\t\tif (this.activePerHalf === 1) return false;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Spotlight');\n\t\t\t},\n\t\t\tonFoeRedirectTargetPriority: 2,\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\n\t\t\t\tif (this.validTarget(this.effectState.target, source, move.target)) {\n\t\t\t\t\tthis.debug(\"Spotlight redirected target of move\");\n\t\t\t\t\treturn this.effectState.target;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tspringtidestorm: {\n\t\tnum: 831,\n\t\taccuracy: 80,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Springtide Storm\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, wind: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Fairy\",\n\t},\n\tstealthrock: {\n\t\tnum: 446,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Stealth Rock\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, metronome: 1, mustpressure: 1 },\n\t\tsideCondition: 'stealthrock',\n\t\tcondition: {\n\t\t\t// this is a side condition\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: Stealth Rock');\n\t\t\t},\n\t\t\tonSwitchIn(pokemon) {\n\t\t\t\tif (pokemon.hasItem('heavydutyboots')) return;\n\t\t\t\tconst typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6);\n\t\t\t\tthis.damage(pokemon.maxhp * (2 ** typeMod) / 8);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"foeSide\",\n\t\ttype: \"Rock\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\tsteameruption: {\n\t\tnum: 592,\n\t\taccuracy: 95,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Steam Eruption\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, defrost: 1 },\n\t\tthawsTarget: true,\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsteamroller: {\n\t\tnum: 537,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Steamroller\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsteelbeam: {\n\t\tnum: 796,\n\t\taccuracy: 95,\n\t\tbasePower: 140,\n\t\tcategory: \"Special\",\n\t\tname: \"Steel Beam\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tmindBlownRecoil: true,\n\t\tonAfterMove(pokemon, target, move) {\n\t\t\tif (move.mindBlownRecoil && !move.multihit) {\n\t\t\t\tconst hpBeforeRecoil = pokemon.hp;\n\t\t\t\tthis.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Steel Beam'), true);\n\t\t\t\tif (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) {\n\t\t\t\t\tthis.runEvent('EmergencyExit', pokemon, pokemon);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\tsteelroller: {\n\t\tnum: 798,\n\t\taccuracy: 100,\n\t\tbasePower: 130,\n\t\tcategory: \"Physical\",\n\t\tname: \"Steel Roller\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry() {\n\t\t\treturn !this.field.isTerrain('');\n\t\t},\n\t\tonHit() {\n\t\t\tthis.field.clearTerrain();\n\t\t},\n\t\tonAfterSubDamage() {\n\t\t\tthis.field.clearTerrain();\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t},\n\tsteelwing: {\n\t\tnum: 211,\n\t\taccuracy: 90,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Steel Wing\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tdef: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tstickyweb: {\n\t\tnum: 564,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sticky Web\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, metronome: 1 },\n\t\tsideCondition: 'stickyweb',\n\t\tcondition: {\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: Sticky Web');\n\t\t\t},\n\t\t\tonSwitchIn(pokemon) {\n\t\t\t\tif (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return;\n\t\t\t\tthis.add('-activate', pokemon, 'move: Sticky Web');\n\t\t\t\tthis.boost({ spe: -1 }, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb'));\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"foeSide\",\n\t\ttype: \"Bug\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tstockpile: {\n\t\tnum: 254,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Stockpile\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonTry(source) {\n\t\t\tif (source.volatiles['stockpile'] && source.volatiles['stockpile'].layers >= 3) return false;\n\t\t},\n\t\tvolatileStatus: 'stockpile',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(target) {\n\t\t\t\tthis.effectState.layers = 1;\n\t\t\t\tthis.effectState.def = 0;\n\t\t\t\tthis.effectState.spd = 0;\n\t\t\t\tthis.add('-start', target, 'stockpile' + this.effectState.layers);\n\t\t\t\tconst [curDef, curSpD] = [target.boosts.def, target.boosts.spd];\n\t\t\t\tthis.boost({ def: 1, spd: 1 }, target, target);\n\t\t\t\tif (curDef !== target.boosts.def) this.effectState.def--;\n\t\t\t\tif (curSpD !== target.boosts.spd) this.effectState.spd--;\n\t\t\t},\n\t\t\tonRestart(target) {\n\t\t\t\tif (this.effectState.layers >= 3) return false;\n\t\t\t\tthis.effectState.layers++;\n\t\t\t\tthis.add('-start', target, 'stockpile' + this.effectState.layers);\n\t\t\t\tconst curDef = target.boosts.def;\n\t\t\t\tconst curSpD = target.boosts.spd;\n\t\t\t\tthis.boost({ def: 1, spd: 1 }, target, target);\n\t\t\t\tif (curDef !== target.boosts.def) this.effectState.def--;\n\t\t\t\tif (curSpD !== target.boosts.spd) this.effectState.spd--;\n\t\t\t},\n\t\t\tonEnd(target) {\n\t\t\t\tif (this.effectState.def || this.effectState.spd) {\n\t\t\t\t\tconst boosts: SparseBoostsTable = {};\n\t\t\t\t\tif (this.effectState.def) boosts.def = this.effectState.def;\n\t\t\t\t\tif (this.effectState.spd) boosts.spd = this.effectState.spd;\n\t\t\t\t\tthis.boost(boosts, target, target);\n\t\t\t\t}\n\t\t\t\tthis.add('-end', target, 'Stockpile');\n\t\t\t\tif (this.effectState.def !== this.effectState.layers * -1 || this.effectState.spd !== this.effectState.layers * -1) {\n\t\t\t\t\tthis.hint(\"In Gen 7, Stockpile keeps track of how many times it successfully altered each stat individually.\");\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Tough\",\n\t},\n\tstokedsparksurfer: {\n\t\tnum: 700,\n\t\taccuracy: true,\n\t\tbasePower: 175,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Stoked Sparksurfer\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"aloraichiumz\",\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tstomp: {\n\t\tnum: 23,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Stomp\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tstompingtantrum: {\n\t\tnum: 707,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (pokemon.moveLastTurnResult === false) {\n\t\t\t\tthis.debug('doubling Stomping Tantrum BP due to previous move failure');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Stomping Tantrum\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tstoneaxe: {\n\t\tnum: 830,\n\t\taccuracy: 90,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Stone Axe\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tonAfterHit(target, source, move) {\n\t\t\tif (!move.hasSheerForce && source.hp) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('stealthrock');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonAfterSubDamage(damage, target, source, move) {\n\t\t\tif (!move.hasSheerForce && source.hp) {\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\n\t\t\t\t\tside.addSideCondition('stealthrock');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: {}, // Sheer Force-boosted\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t},\n\tstoneedge: {\n\t\tnum: 444,\n\t\taccuracy: 80,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Stone Edge\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Tough\",\n\t},\n\tstoredpower: {\n\t\tnum: 500,\n\t\taccuracy: 100,\n\t\tbasePower: 20,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst bp = move.basePower + 20 * pokemon.positiveBoosts();\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Stored Power\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Clever\",\n\t},\n\tstormthrow: {\n\t\tnum: 480,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Storm Throw\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\twillCrit: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tstrangesteam: {\n\t\tnum: 790,\n\t\taccuracy: 95,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Strange Steam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t},\n\tstrength: {\n\t\tnum: 70,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Strength\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tstrengthsap: {\n\t\tnum: 668,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Strength Sap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, heal: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tif (target.boosts.atk === -6) return false;\n\t\t\tconst atk = target.getStat('atk', false, true);\n\t\t\tconst success = this.boost({ atk: -1 }, target, source, null, false, true);\n\t\t\treturn !!(this.heal(atk, source, target) || success);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tstringshot: {\n\t\tnum: 81,\n\t\taccuracy: 95,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"String Shot\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspe: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Bug\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tstruggle: {\n\t\tnum: 165,\n\t\taccuracy: true,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Struggle\",\n\t\tpp: 1,\n\t\tnoPPBoosts: true,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tcontact: 1, protect: 1,\n\t\t\tfailencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tmove.type = '???';\n\t\t\tthis.add('-activate', pokemon, 'move: Struggle');\n\t\t},\n\t\tstruggleRecoil: true,\n\t\tsecondary: null,\n\t\ttarget: \"randomNormal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tstrugglebug: {\n\t\tnum: 522,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Struggle Bug\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tstuffcheeks: {\n\t\tnum: 747,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Stuff Cheeks\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonDisableMove(pokemon) {\n\t\t\tif (!pokemon.getItem().isBerry) pokemon.disableMove('stuffcheeks');\n\t\t},\n\t\tonTry(source) {\n\t\t\treturn source.getItem().isBerry;\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tif (!this.boost({ def: 2 })) return null;\n\t\t\tpokemon.eatItem(true);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\tstunspore: {\n\t\tnum: 78,\n\t\taccuracy: 75,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Stun Spore\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1 },\n\t\tstatus: 'par',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tsubmission: {\n\t\tnum: 66,\n\t\taccuracy: 80,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Submission\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [1, 4],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsubstitute: {\n\t\tnum: 164,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Substitute\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, nonsky: 1, metronome: 1 },\n\t\tvolatileStatus: 'substitute',\n\t\tonTryHit(source) {\n\t\t\tif (source.volatiles['substitute']) {\n\t\t\t\tthis.add('-fail', source, 'move: Substitute');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\tif (source.hp <= source.maxhp / 4 || source.maxhp === 1) { // Shedinja clause\n\t\t\t\tthis.add('-fail', source, 'move: Substitute', '[weak]');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t},\n\t\tonHit(target) {\n\t\t\tthis.directDamage(target.maxhp / 4);\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tif (effect?.id === 'shedtail') {\n\t\t\t\t\tthis.add('-start', target, 'Substitute', '[from] move: Shed Tail');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-start', target, 'Substitute');\n\t\t\t\t}\n\t\t\t\tthis.effectState.hp = Math.floor(target.maxhp / 4);\n\t\t\t\tif (target.volatiles['partiallytrapped']) {\n\t\t\t\t\tthis.add('-end', target, target.volatiles['partiallytrapped'].sourceEffect, '[partiallytrapped]', '[silent]');\n\t\t\t\t\tdelete target.volatiles['partiallytrapped'];\n\t\t\t\t}\n\t\t\t},\n\t\t\tonTryPrimaryHitPriority: -1,\n\t\t\tonTryPrimaryHit(target, source, move) {\n\t\t\t\tif (target === source || move.flags['bypasssub'] || move.infiltrates) {\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 && damage !== 0) {\n\t\t\t\t\tthis.add('-fail', source);\n\t\t\t\t\tthis.attrLastMove('[still]');\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\tif (move.ohko) this.add('-ohko');\n\t\t\t\t\ttarget.removeVolatile('substitute');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'move: Substitute', '[damage]');\n\t\t\t\t}\n\t\t\t\tif (move.recoil || move.id === 'chloroblast') {\n\t\t\t\t\tthis.damage(this.actions.calcRecoilDamage(damage, move, source), source, target, 'recoil');\n\t\t\t\t}\n\t\t\t\tif (move.drain) {\n\t\t\t\t\tthis.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain');\n\t\t\t\t}\n\t\t\t\tthis.singleEvent('AfterSubDamage', move, null, target, source, move, damage);\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\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tsubzeroslammer: {\n\t\tnum: 650,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Subzero Slammer\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"iciumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsuckerpunch: {\n\t\tnum: 389,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Sucker Punch\",\n\t\tpp: 5,\n\t\tpriority: 1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source, target) {\n\t\t\tconst action = this.queue.willMove(target);\n\t\t\tconst move = action?.choice === 'move' ? action.move : null;\n\t\t\tif (!move || (move.category === 'Status' && move.id !== 'mefirst') || target.volatiles['mustrecharge']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsunnyday: {\n\t\tnum: 241,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sunny Day\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tweather: 'sunnyday',\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Fire\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsunsteelstrike: {\n\t\tnum: 713,\n\t\taccuracy: 100,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Sunsteel Strike\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tignoreAbility: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsupercellslam: {\n\t\tnum: 916,\n\t\taccuracy: 95,\n\t\tbasePower: 100,\n\t\tcategory: \"Physical\",\n\t\tname: \"Supercell Slam\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\thasCrashDamage: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('Supercell Slam'));\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t},\n\tsuperfang: {\n\t\tnum: 162,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tdamageCallback(pokemon, target) {\n\t\t\treturn this.clampIntRange(target.getUndynamaxedHP() / 2, 1);\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Super Fang\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsuperpower: {\n\t\tnum: 276,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Superpower\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\tsupersonic: {\n\t\tnum: 48,\n\t\taccuracy: 55,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Supersonic\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'confusion',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tsupersonicskystrike: {\n\t\tnum: 626,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Supersonic Skystrike\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"flyiniumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\tsurf: {\n\t\tnum: 57,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Surf\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsurgingstrikes: {\n\t\tnum: 818,\n\t\taccuracy: 100,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Surging Strikes\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1 },\n\t\twillCrit: true,\n\t\tmultihit: 3,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t},\n\tswagger: {\n\t\tnum: 207,\n\t\taccuracy: 85,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Swagger\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'confusion',\n\t\tboosts: {\n\t\t\tatk: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Cute\",\n\t},\n\tswallow: {\n\t\tnum: 256,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Swallow\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonTry(source, target, move) {\n\t\t\tif (move.sourceEffect === 'snatch') return;\n\t\t\treturn !!source.volatiles['stockpile'];\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tconst layers = pokemon.volatiles['stockpile']?.layers || 1;\n\t\t\tconst healAmount = [0.25, 0.5, 1];\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, healAmount[layers - 1]));\n\t\t\tif (!success) this.add('-fail', pokemon, 'heal');\n\t\t\tpokemon.removeVolatile('stockpile');\n\t\t\treturn success || this.NOT_FAIL;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Tough\",\n\t},\n\tsweetkiss: {\n\t\tnum: 186,\n\t\taccuracy: 75,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sweet Kiss\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'confusion',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tsweetscent: {\n\t\tnum: 230,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Sweet Scent\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tevasion: -2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tswift: {\n\t\tnum: 129,\n\t\taccuracy: true,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Swift\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\tswitcheroo: {\n\t\tnum: 415,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Switcheroo\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, noassist: 1, failcopycat: 1 },\n\t\tonTryImmunity(target) {\n\t\t\treturn !target.hasAbility('stickyhold');\n\t\t},\n\t\tonHit(target, source, move) {\n\t\t\tconst yourItem = target.takeItem(source);\n\t\t\tconst myItem = source.takeItem();\n\t\t\tif (target.item || source.item || (!yourItem && !myItem)) {\n\t\t\t\tif (yourItem) target.item = yourItem.id;\n\t\t\t\tif (myItem) source.item = myItem.id;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t(myItem && !this.singleEvent('TakeItem', myItem, source.itemState, target, source, move, myItem)) ||\n\t\t\t\t(yourItem && !this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem))\n\t\t\t) {\n\t\t\t\tif (yourItem) target.item = yourItem.id;\n\t\t\t\tif (myItem) source.item = myItem.id;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.add('-activate', source, 'move: Trick', `[of] ${target}`);\n\t\t\tif (myItem) {\n\t\t\t\ttarget.setItem(myItem);\n\t\t\t\tthis.add('-item', target, myItem, '[from] move: Switcheroo');\n\t\t\t} else {\n\t\t\t\tthis.add('-enditem', target, yourItem, '[silent]', '[from] move: Switcheroo');\n\t\t\t}\n\t\t\tif (yourItem) {\n\t\t\t\tsource.setItem(yourItem);\n\t\t\t\tthis.add('-item', source, yourItem, '[from] move: Switcheroo');\n\t\t\t} else {\n\t\t\t\tthis.add('-enditem', source, myItem, '[silent]', '[from] move: Switcheroo');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tswordsdance: {\n\t\tnum: 14,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Swords Dance\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, dance: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 2,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tsynchronoise: {\n\t\tnum: 485,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Synchronoise\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTryImmunity(target, source) {\n\t\t\treturn target.hasType(source.getTypes());\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tsynthesis: {\n\t\tnum: 235,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Synthesis\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tlet factor = 0.5;\n\t\t\tswitch (pokemon.effectiveWeather()) {\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tfactor = 0.667;\n\t\t\t\tbreak;\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\tcase 'sandstorm':\n\t\t\tcase 'hail':\n\t\t\tcase 'snowscape':\n\t\t\t\tfactor = 0.25;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\n\t\t\tif (!success) {\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\treturn success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Grass\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Clever\",\n\t},\n\tsyrupbomb: {\n\t\tnum: 903,\n\t\taccuracy: 85,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Syrup Bomb\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tduration: 4,\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Syrup Bomb');\n\t\t\t},\n\t\t\tonUpdate(pokemon) {\n\t\t\t\tif (this.effectState.source && !this.effectState.source.isActive) {\n\t\t\t\t\tpokemon.removeVolatile('syrupbomb');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidualOrder: 14,\n\t\t\tonResidual(pokemon) {\n\t\t\t\tthis.boost({ spe: -1 }, pokemon, this.effectState.source);\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Syrup Bomb', '[silent]');\n\t\t\t},\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'syrupbomb',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t},\n\ttachyoncutter: {\n\t\tnum: 911,\n\t\taccuracy: true,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Tachyon Cutter\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Steel\",\n\t\tzMove: { basePower: 180 },\n\t\tmaxMove: { basePower: 140 },\n\t\tcontestType: \"Clever\",\n\t},\n\ttackle: {\n\t\tnum: 33,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Physical\",\n\t\tname: \"Tackle\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\ttailglow: {\n\t\tnum: 294,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tail Glow\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tspa: 3,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Bug\",\n\t\tzMove: { effect: 'clearnegativeboost' },\n\t\tcontestType: \"Beautiful\",\n\t},\n\ttailslap: {\n\t\tnum: 541,\n\t\taccuracy: 85,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tname: \"Tail Slap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 140 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cute\",\n\t},\n\ttailwhip: {\n\t\tnum: 39,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tail Whip\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\ttailwind: {\n\t\tnum: 366,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tailwind\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1, wind: 1 },\n\t\tsideCondition: 'tailwind',\n\t\tcondition: {\n\t\t\tduration: 4,\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', '[move] Tailwind');\n\t\t\t\t\treturn 6;\n\t\t\t\t}\n\t\t\t\treturn 4;\n\t\t\t},\n\t\t\tonSideStart(side, source) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-sidestart', side, 'move: Tailwind', '[persistent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-sidestart', side, 'move: Tailwind');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifySpe(spe, pokemon) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 5,\n\t\t\tonSideEnd(side) {\n\t\t\t\tthis.add('-sideend', side, 'move: Tailwind');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Flying\",\n\t\tzMove: { effect: 'crit2' },\n\t\tcontestType: \"Cool\",\n\t},\n\ttakedown: {\n\t\tnum: 36,\n\t\taccuracy: 85,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Take Down\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [1, 4],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\ttakeheart: {\n\t\tnum: 850,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Take Heart\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tonHit(pokemon) {\n\t\t\tconst success = !!this.boost({ spa: 1, spd: 1 });\n\t\t\treturn pokemon.cureStatus() || success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t},\n\ttarshot: {\n\t\tnum: 749,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tar Shot\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'tarshot',\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tif (pokemon.terastallized) return false;\n\t\t\t\tthis.add('-start', pokemon, 'Tar Shot');\n\t\t\t},\n\t\t\tonEffectivenessPriority: -2,\n\t\t\tonEffectiveness(typeMod, target, type, move) {\n\t\t\t\tif (move.type !== 'Fire') return;\n\t\t\t\tif (!target) return;\n\t\t\t\tif (type !== target.getTypes()[0]) return;\n\t\t\t\treturn typeMod + 1;\n\t\t\t},\n\t\t},\n\t\tboosts: {\n\t\t\tspe: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t},\n\ttaunt: {\n\t\tnum: 269,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Taunt\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'taunt',\n\t\tcondition: {\n\t\t\tduration: 3,\n\t\t\tonStart(target) {\n\t\t\t\tif (target.activeTurns && !this.queue.willMove(target)) {\n\t\t\t\t\tthis.effectState.duration!++;\n\t\t\t\t}\n\t\t\t\tthis.add('-start', target, 'move: Taunt');\n\t\t\t},\n\t\t\tonResidualOrder: 15,\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'move: Taunt');\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tconst move = this.dex.moves.get(moveSlot.id);\n\t\t\t\t\tif (move.category === 'Status' && move.id !== 'mefirst') {\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\tonBeforeMovePriority: 5,\n\t\t\tonBeforeMove(attacker, defender, move) {\n\t\t\t\tif (!move.isZ && !move.isMax && move.category === 'Status' && move.id !== 'mefirst') {\n\t\t\t\t\tthis.add('cant', attacker, 'move: Taunt', move);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ttearfullook: {\n\t\tnum: 715,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tearful Look\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, mirror: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -1,\n\t\t\tspa: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tteatime: {\n\t\tnum: 752,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Teatime\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { bypasssub: 1, metronome: 1 },\n\t\tonHitField(target, source, move) {\n\t\t\tconst targets: Pokemon[] = [];\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tif (this.runEvent('Invulnerability', pokemon, source, move) === false) {\n\t\t\t\t\tthis.add('-miss', source, pokemon);\n\t\t\t\t} else if (this.runEvent('TryHit', pokemon, source, move) && pokemon.getItem().isBerry) {\n\t\t\t\t\ttargets.push(pokemon);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.add('-fieldactivate', 'move: Teatime');\n\t\t\tif (!targets.length) {\n\t\t\t\tthis.add('-fail', source, 'move: Teatime');\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t}\n\t\t\tfor (const pokemon of targets) {\n\t\t\t\tpokemon.eatItem(true);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Normal\",\n\t},\n\ttechnoblast: {\n\t\tnum: 546,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Techno Blast\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (pokemon.ignoringItem()) return;\n\t\t\tmove.type = this.runEvent('Drive', pokemon, null, move, 'Normal');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cool\",\n\t},\n\ttectonicrage: {\n\t\tnum: 630,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Tectonic Rage\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"groundiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Cool\",\n\t},\n\tteeterdance: {\n\t\tnum: 298,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Teeter Dance\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, dance: 1, metronome: 1 },\n\t\tvolatileStatus: 'confusion',\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacent\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\ttelekinesis: {\n\t\tnum: 477,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Telekinesis\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, gravity: 1, allyanim: 1, metronome: 1 },\n\t\tvolatileStatus: 'telekinesis',\n\t\tonTry(source, target, move) {\n\t\t\t// Additional Gravity check for Z-move variant\n\t\t\tif (this.field.getPseudoWeather('Gravity')) {\n\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\tthis.add('cant', source, 'move: Gravity', move);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 3,\n\t\t\tonStart(target) {\n\t\t\t\tif (['Diglett', 'Dugtrio', 'Palossand', 'Sandygast'].includes(target.baseSpecies.baseSpecies) ||\n\t\t\t\t\ttarget.baseSpecies.name === 'Gengar-Mega') {\n\t\t\t\t\tthis.add('-immune', target);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false;\n\t\t\t\tthis.add('-start', target, 'Telekinesis');\n\t\t\t},\n\t\t\tonAccuracyPriority: -1,\n\t\t\tonAccuracy(accuracy, target, source, move) {\n\t\t\t\tif (move && !move.ohko) return true;\n\t\t\t},\n\t\t\tonImmunity(type) {\n\t\t\t\tif (type === 'Ground') return false;\n\t\t\t},\n\t\t\tonUpdate(pokemon) {\n\t\t\t\tif (pokemon.baseSpecies.name === 'Gengar-Mega') {\n\t\t\t\t\tdelete pokemon.volatiles['telekinesis'];\n\t\t\t\t\tthis.add('-end', pokemon, 'Telekinesis', '[silent]');\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidualOrder: 19,\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'Telekinesis');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spa: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tteleport: {\n\t\tnum: 100,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Teleport\",\n\t\tpp: 20,\n\t\tpriority: -6,\n\t\tflags: { metronome: 1 },\n\t\tonTry(source) {\n\t\t\treturn !!this.canSwitch(source.side);\n\t\t},\n\t\tselfSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Cool\",\n\t},\n\ttemperflare: {\n\t\tnum: 915,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (pokemon.moveLastTurnResult === false) {\n\t\t\t\tthis.debug('doubling Temper Flare BP due to previous move failure');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Temper Flare\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t},\n\tterablast: {\n\t\tnum: 851,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (pokemon.terastallized === 'Stellar') {\n\t\t\t\treturn 100;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Tera Blast\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, mustpressure: 1 },\n\t\tonPrepareHit(target, source, move) {\n\t\t\tif (source.terastallized) {\n\t\t\t\tthis.attrLastMove('[anim] Tera Blast ' + source.teraType);\n\t\t\t}\n\t\t},\n\t\tonModifyType(move, pokemon, target) {\n\t\t\tif (pokemon.terastallized) {\n\t\t\t\tmove.type = pokemon.teraType;\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (pokemon.terastallized && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) {\n\t\t\t\tmove.category = 'Physical';\n\t\t\t}\n\t\t\tif (pokemon.terastallized === 'Stellar') {\n\t\t\t\tmove.self = { boosts: { atk: -1, spa: -1 } };\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t},\n\tterastarstorm: {\n\t\tnum: 906,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Tera Starstorm\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, noassist: 1, failcopycat: 1, failmimic: 1, nosketch: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (pokemon.species.name === 'Terapagos-Stellar') {\n\t\t\t\tmove.type = 'Stellar';\n\t\t\t\tif (pokemon.terastallized && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) {\n\t\t\t\t\tmove.category = 'Physical';\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (pokemon.species.name === 'Terapagos-Stellar') {\n\t\t\t\tmove.target = 'allAdjacentFoes';\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t},\n\tterrainpulse: {\n\t\tnum: 805,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Terrain Pulse\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, pulse: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tif (!pokemon.isGrounded()) return;\n\t\t\tswitch (this.field.terrain) {\n\t\t\tcase 'electricterrain':\n\t\t\t\tmove.type = 'Electric';\n\t\t\t\tbreak;\n\t\t\tcase 'grassyterrain':\n\t\t\t\tmove.type = 'Grass';\n\t\t\t\tbreak;\n\t\t\tcase 'mistyterrain':\n\t\t\t\tmove.type = 'Fairy';\n\t\t\t\tbreak;\n\t\t\tcase 'psychicterrain':\n\t\t\t\tmove.type = 'Psychic';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (this.field.terrain && pokemon.isGrounded()) {\n\t\t\t\tmove.basePower *= 2;\n\t\t\t\tthis.debug('BP doubled in Terrain');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t},\n\tthief: {\n\t\tnum: 168,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Thief\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, failmefirst: 1, noassist: 1, failcopycat: 1 },\n\t\tonAfterHit(target, source, move) {\n\t\t\tif (source.item || source.volatiles['gem']) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst yourItem = target.takeItem(source);\n\t\t\tif (!yourItem) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem) ||\n\t\t\t\t!source.setItem(yourItem)) {\n\t\t\t\ttarget.item = yourItem.id; // bypass setItem so we don't break choicelock or anything\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-enditem', target, yourItem, '[silent]', '[from] move: Thief', `[of] ${source}`);\n\t\t\tthis.add('-item', source, yourItem, '[from] move: Thief', `[of] ${target}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Tough\",\n\t},\n\tthousandarrows: {\n\t\tnum: 614,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Thousand Arrows\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1 },\n\t\tonEffectiveness(typeMod, target, type, move) {\n\t\t\tif (move.type !== 'Ground') return;\n\t\t\tif (!target) return; // avoid crashing when called from a chat plugin\n\t\t\t// ignore effectiveness if the target is Flying type and immune to Ground\n\t\t\tif (!target.runImmunity('Ground')) {\n\t\t\t\tif (target.hasType('Flying')) return 0;\n\t\t\t}\n\t\t},\n\t\tvolatileStatus: 'smackdown',\n\t\tignoreImmunity: { 'Ground': true },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ground\",\n\t\tzMove: { basePower: 180 },\n\t\tcontestType: \"Beautiful\",\n\t},\n\tthousandwaves: {\n\t\tnum: 615,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Thousand Waves\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tif (source.isActive) target.addVolatile('trapped', source, move, 'trapper');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Ground\",\n\t\tcontestType: \"Tough\",\n\t},\n\tthrash: {\n\t\tnum: 37,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Thrash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: '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\tsecondary: null,\n\t\ttarget: \"randomNormal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tthroatchop: {\n\t\tnum: 675,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Throat Chop\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tcondition: {\n\t\t\tduration: 2,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'Throat Chop', '[silent]');\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.id).flags['sound']) {\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\tonBeforeMovePriority: 6,\n\t\t\tonBeforeMove(pokemon, target, move) {\n\t\t\t\tif (!move.isZ && !move.isMax && move.flags['sound']) {\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Throat Chop');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonModifyMove(move, pokemon, target) {\n\t\t\t\tif (!move.isZ && !move.isMax && move.flags['sound']) {\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Throat Chop');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidualOrder: 22,\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'Throat Chop', '[silent]');\n\t\t\t},\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tonHit(target) {\n\t\t\t\ttarget.addVolatile('throatchop');\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tcontestType: \"Clever\",\n\t},\n\tthunder: {\n\t\tnum: 87,\n\t\taccuracy: 70,\n\t\tbasePower: 110,\n\t\tcategory: \"Special\",\n\t\tname: \"Thunder\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tswitch (target?.effectiveWeather()) {\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\t\tmove.accuracy = true;\n\t\t\t\tbreak;\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tmove.accuracy = 50;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tthunderbolt: {\n\t\tnum: 85,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Thunderbolt\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tthundercage: {\n\t\tnum: 819,\n\t\taccuracy: 90,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Thunder Cage\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t},\n\tthunderclap: {\n\t\tnum: 909,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tname: \"Thunderclap\",\n\t\tpp: 5,\n\t\tpriority: 1,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source, target) {\n\t\t\tconst action = this.queue.willMove(target);\n\t\t\tconst move = action?.choice === 'move' ? action.move : null;\n\t\t\tif (!move || (move.category === 'Status' && move.id !== 'mefirst') || target.volatiles['mustrecharge']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Clever\",\n\t},\n\tthunderfang: {\n\t\tnum: 422,\n\t\taccuracy: 95,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Thunder Fang\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1 },\n\t\tsecondaries: [\n\t\t\t{\n\t\t\t\tchance: 10,\n\t\t\t\tstatus: 'par',\n\t\t\t}, {\n\t\t\t\tchance: 10,\n\t\t\t\tvolatileStatus: 'flinch',\n\t\t\t},\n\t\t],\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tthunderouskick: {\n\t\tnum: 823,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Thunderous Kick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\tthunderpunch: {\n\t\tnum: 9,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Thunder Punch\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tthundershock: {\n\t\tnum: 84,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Thunder Shock\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tthunderwave: {\n\t\tnum: 86,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Thunder Wave\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'par',\n\t\tignoreImmunity: false,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cool\",\n\t},\n\ttickle: {\n\t\tnum: 321,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tickle\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: -1,\n\t\t\tdef: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\ttidyup: {\n\t\tnum: 882,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Tidy Up\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tonHit(pokemon) {\n\t\t\tlet success = false;\n\t\t\tfor (const active of this.getAllActive()) {\n\t\t\t\tif (active.removeVolatile('substitute')) success = true;\n\t\t\t}\n\t\t\tconst removeAll = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\tconst sides = [pokemon.side, ...pokemon.side.foeSidesWithConditions()];\n\t\t\tfor (const side of sides) {\n\t\t\t\tfor (const sideCondition of removeAll) {\n\t\t\t\t\tif (side.removeSideCondition(sideCondition)) {\n\t\t\t\t\t\tthis.add('-sideend', side, this.dex.conditions.get(sideCondition).name);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (success) this.add('-activate', pokemon, 'move: Tidy Up');\n\t\t\treturn !!this.boost({ atk: 1, spe: 1 }, pokemon, pokemon, null, false, true) || success;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\ttopsyturvy: {\n\t\tnum: 576,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Topsy-Turvy\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tlet success = false;\n\t\t\tlet i: BoostID;\n\t\t\tfor (i in target.boosts) {\n\t\t\t\tif (target.boosts[i] === 0) continue;\n\t\t\t\ttarget.boosts[i] = -target.boosts[i];\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t\tif (!success) return false;\n\t\t\tthis.add('-invertboost', target, '[from] move: Topsy-Turvy');\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ttorchsong: {\n\t\tnum: 871,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Torch Song\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspa: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ttorment: {\n\t\tnum: 259,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Torment\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'torment',\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon, source, effect) {\n\t\t\t\tif (pokemon.volatiles['dynamax']) {\n\t\t\t\t\tdelete pokemon.volatiles['torment'];\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (effect?.id === 'gmaxmeltdown') this.effectState.duration = 3;\n\t\t\t\tthis.add('-start', pokemon, 'Torment');\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Torment');\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tif (pokemon.lastMove && pokemon.lastMove.id !== 'struggle') pokemon.disableMove(pokemon.lastMove.id);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\ttoxic: {\n\t\tnum: 92,\n\t\taccuracy: 90,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Toxic\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\t// No Guard-like effect for Poison-type users implemented in Scripts#tryMoveHit\n\t\tstatus: 'tox',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ttoxicspikes: {\n\t\tnum: 390,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Toxic Spikes\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { reflectable: 1, nonsky: 1, metronome: 1, mustpressure: 1 },\n\t\tsideCondition: 'toxicspikes',\n\t\tcondition: {\n\t\t\t// this is a side condition\n\t\t\tonSideStart(side) {\n\t\t\t\tthis.add('-sidestart', side, 'move: Toxic Spikes');\n\t\t\t\tthis.effectState.layers = 1;\n\t\t\t},\n\t\t\tonSideRestart(side) {\n\t\t\t\tif (this.effectState.layers >= 2) return false;\n\t\t\t\tthis.add('-sidestart', side, 'move: Toxic Spikes');\n\t\t\t\tthis.effectState.layers++;\n\t\t\t},\n\t\t\tonSwitchIn(pokemon) {\n\t\t\t\tif (!pokemon.isGrounded()) return;\n\t\t\t\tif (pokemon.hasType('Poison')) {\n\t\t\t\t\tthis.add('-sideend', pokemon.side, 'move: Toxic Spikes', `[of] ${pokemon}`);\n\t\t\t\t\tpokemon.side.removeSideCondition('toxicspikes');\n\t\t\t\t} else if (pokemon.hasType('Steel') || pokemon.hasItem('heavydutyboots')) {\n\t\t\t\t\t// do nothing\n\t\t\t\t} else if (this.effectState.layers >= 2) {\n\t\t\t\t\tpokemon.trySetStatus('tox', pokemon.side.foe.active[0]);\n\t\t\t\t} else {\n\t\t\t\t\tpokemon.trySetStatus('psn', pokemon.side.foe.active[0]);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"foeSide\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ttoxicthread: {\n\t\tnum: 672,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Toxic Thread\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'psn',\n\t\tboosts: {\n\t\t\tspe: -1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\ttrailblaze: {\n\t\tnum: 885,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Physical\",\n\t\tname: \"Trailblaze\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tspe: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\ttransform: {\n\t\tnum: 144,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Transform\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { allyanim: 1, failencore: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1 },\n\t\tonHit(target, pokemon) {\n\t\t\tif (!pokemon.transformInto(target)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { effect: 'heal' },\n\t\tcontestType: \"Clever\",\n\t},\n\ttriattack: {\n\t\tnum: 161,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Special\",\n\t\tname: \"Tri Attack\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tonHit(target, source) {\n\t\t\t\tconst result = this.random(3);\n\t\t\t\tif (result === 0) {\n\t\t\t\t\ttarget.trySetStatus('brn', source);\n\t\t\t\t} else if (result === 1) {\n\t\t\t\t\ttarget.trySetStatus('par', source);\n\t\t\t\t} else {\n\t\t\t\t\ttarget.trySetStatus('frz', source);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\ttrick: {\n\t\tnum: 271,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Trick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, allyanim: 1, noassist: 1, failcopycat: 1 },\n\t\tonTryImmunity(target) {\n\t\t\treturn !target.hasAbility('stickyhold');\n\t\t},\n\t\tonHit(target, source, move) {\n\t\t\tconst yourItem = target.takeItem(source);\n\t\t\tconst myItem = source.takeItem();\n\t\t\tif (target.item || source.item || (!yourItem && !myItem)) {\n\t\t\t\tif (yourItem) target.item = yourItem.id;\n\t\t\t\tif (myItem) source.item = myItem.id;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t(myItem && !this.singleEvent('TakeItem', myItem, source.itemState, target, source, move, myItem)) ||\n\t\t\t\t(yourItem && !this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem))\n\t\t\t) {\n\t\t\t\tif (yourItem) target.item = yourItem.id;\n\t\t\t\tif (myItem) source.item = myItem.id;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.add('-activate', source, 'move: Trick', `[of] ${target}`);\n\t\t\tif (myItem) {\n\t\t\t\ttarget.setItem(myItem);\n\t\t\t\tthis.add('-item', target, myItem, '[from] move: Trick');\n\t\t\t} else {\n\t\t\t\tthis.add('-enditem', target, yourItem, '[silent]', '[from] move: Trick');\n\t\t\t}\n\t\t\tif (yourItem) {\n\t\t\t\tsource.setItem(yourItem);\n\t\t\t\tthis.add('-item', source, yourItem, '[from] move: Trick');\n\t\t\t} else {\n\t\t\t\tthis.add('-enditem', source, myItem, '[silent]', '[from] move: Trick');\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spe: 2 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ttrickortreat: {\n\t\tnum: 567,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Trick-or-Treat\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.hasType('Ghost')) return false;\n\t\t\tif (!target.addType('Ghost')) return false;\n\t\t\tthis.add('-start', target, 'typeadd', 'Ghost', '[from] move: Trick-or-Treat');\n\n\t\t\tif (target.side.active.length === 2 && target.position === 1) {\n\t\t\t\t// Curse Glitch\n\t\t\t\tconst action = this.queue.willMove(target);\n\t\t\t\tif (action && action.move.id === 'curse') {\n\t\t\t\t\taction.targetLoc = -1;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tzMove: { boost: { atk: 1, def: 1, spa: 1, spd: 1, spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\ttrickroom: {\n\t\tnum: 433,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Trick Room\",\n\t\tpp: 5,\n\t\tpriority: -7,\n\t\tflags: { mirror: 1, metronome: 1 },\n\t\tpseudoWeather: 'trickroom',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Trick Room');\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\tonFieldStart(target, source) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Trick Room', `[of] ${source}`, '[persistent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Trick Room', `[of] ${source}`);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldRestart(target, source) {\n\t\t\t\tthis.field.removePseudoWeather('trickroom');\n\t\t\t},\n\t\t\t// Speed modification is changed in Pokemon.getActionSpeed() in sim/pokemon.js\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 1,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Trick Room');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { accuracy: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\ttriplearrows: {\n\t\tnum: 843,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Triple Arrows\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tcritRatio: 2,\n\t\tsecondaries: [\n\t\t\t{\n\t\t\t\tchance: 50,\n\t\t\t\tboosts: {\n\t\t\t\t\tdef: -1,\n\t\t\t\t},\n\t\t\t}, {\n\t\t\t\tchance: 30,\n\t\t\t\tvolatileStatus: 'flinch',\n\t\t\t},\n\t\t],\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\ttripleaxel: {\n\t\tnum: 813,\n\t\taccuracy: 90,\n\t\tbasePower: 20,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\treturn 20 * move.hit;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Triple Axel\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 3,\n\t\tmultiaccuracy: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Ice\",\n\t\tzMove: { basePower: 120 },\n\t\tmaxMove: { basePower: 140 },\n\t},\n\ttripledive: {\n\t\tnum: 865,\n\t\taccuracy: 95,\n\t\tbasePower: 30,\n\t\tcategory: \"Physical\",\n\t\tname: \"Triple Dive\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 3,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t},\n\ttriplekick: {\n\t\tnum: 167,\n\t\taccuracy: 90,\n\t\tbasePower: 10,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\treturn 10 * move.hit;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tname: \"Triple Kick\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 3,\n\t\tmultiaccuracy: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tzMove: { basePower: 120 },\n\t\tmaxMove: { basePower: 80 },\n\t\tcontestType: \"Cool\",\n\t},\n\ttropkick: {\n\t\tnum: 688,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"Trop Kick\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cute\",\n\t},\n\ttrumpcard: {\n\t\tnum: 376,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(source, target, move) {\n\t\t\tconst callerMoveId = move.sourceEffect || move.id;\n\t\t\tconst moveSlot = callerMoveId === 'instruct' ? source.getMoveData(move.id) : source.getMoveData(callerMoveId);\n\t\t\tlet bp;\n\t\t\tif (!moveSlot) {\n\t\t\t\tbp = 40;\n\t\t\t} else {\n\t\t\t\tswitch (moveSlot.pp) {\n\t\t\t\tcase 0:\n\t\t\t\t\tbp = 200;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tbp = 80;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tbp = 60;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tbp = 50;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbp = 40;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Trump Card\",\n\t\tpp: 5,\n\t\tnoPPBoosts: true,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Cool\",\n\t},\n\ttwinbeam: {\n\t\tnum: 888,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Twin Beam\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Cool\",\n\t},\n\ttwineedle: {\n\t\tnum: 41,\n\t\taccuracy: 100,\n\t\tbasePower: 25,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Twineedle\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: 2,\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'psn',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tmaxMove: { basePower: 100 },\n\t\tcontestType: \"Cool\",\n\t},\n\ttwinkletackle: {\n\t\tnum: 656,\n\t\taccuracy: true,\n\t\tbasePower: 1,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Twinkle Tackle\",\n\t\tpp: 1,\n\t\tpriority: 0,\n\t\tflags: {},\n\t\tisZ: \"fairiumz\",\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fairy\",\n\t\tcontestType: \"Cool\",\n\t},\n\ttwister: {\n\t\tnum: 239,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Twister\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Dragon\",\n\t\tcontestType: \"Cool\",\n\t},\n\tuturn: {\n\t\tnum: 369,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tname: \"U-turn\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tselfSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cute\",\n\t},\n\tupperhand: {\n\t\tnum: 918,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Physical\",\n\t\tname: \"Upper Hand\",\n\t\tpp: 15,\n\t\tpriority: 3,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonTry(source, target) {\n\t\t\tconst action = this.queue.willMove(target);\n\t\t\tconst move = action?.choice === 'move' ? action.move : null;\n\t\t\tif (!move || move.priority <= 0.1 || move.category === 'Status') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t},\n\tuproar: {\n\t\tnum: 253,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Special\",\n\t\tname: \"Uproar\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1 },\n\t\tself: {\n\t\t\tvolatileStatus: 'uproar',\n\t\t},\n\t\tonTryHit(target) {\n\t\t\tconst activeTeam = target.side.activeTeam();\n\t\t\tconst foeActiveTeam = target.side.foe.activeTeam();\n\t\t\tfor (const [i, allyActive] of activeTeam.entries()) {\n\t\t\t\tif (allyActive && allyActive.status === 'slp') allyActive.cureStatus();\n\t\t\t\tconst foeActive = foeActiveTeam[i];\n\t\t\t\tif (foeActive && foeActive.status === 'slp') foeActive.cureStatus();\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 3,\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'Uproar');\n\t\t\t},\n\t\t\tonResidual(target) {\n\t\t\t\tif (target.volatiles['throatchop']) {\n\t\t\t\t\ttarget.removeVolatile('uproar');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\n\t\t\t\t\t// don't lock\n\t\t\t\t\tdelete target.volatiles['uproar'];\n\t\t\t\t}\n\t\t\t\tthis.add('-start', target, 'Uproar', '[upkeep]');\n\t\t\t},\n\t\t\tonResidualOrder: 28,\n\t\t\tonResidualSubOrder: 1,\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'Uproar');\n\t\t\t},\n\t\t\tonLockMove: 'uproar',\n\t\t\tonAnySetStatus(status, pokemon) {\n\t\t\t\tif (status.id === 'slp') {\n\t\t\t\t\tif (pokemon === this.effectState.target) {\n\t\t\t\t\t\tthis.add('-fail', pokemon, 'slp', '[from] Uproar', '[msg]');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.add('-fail', pokemon, 'slp', '[from] Uproar');\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},\n\t\tsecondary: null,\n\t\ttarget: \"randomNormal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tvacuumwave: {\n\t\tnum: 410,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Vacuum Wave\",\n\t\tpp: 30,\n\t\tpriority: 1,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tvcreate: {\n\t\tnum: 557,\n\t\taccuracy: 95,\n\t\tbasePower: 180,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"V-create\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tself: {\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t\tdef: -1,\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tzMove: { basePower: 220 },\n\t\tcontestType: \"Cool\",\n\t},\n\tveeveevolley: {\n\t\tnum: 741,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon) {\n\t\t\tconst bp = Math.floor((pokemon.happiness * 10) / 25) || 1;\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Veevee Volley\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Cute\",\n\t},\n\tvenomdrench: {\n\t\tnum: 599,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Venom Drench\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target, source, move) {\n\t\t\tif (target.status === 'psn' || target.status === 'tox') {\n\t\t\t\treturn !!this.boost({ atk: -1, spa: -1, spe: -1 }, target, source, move);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Poison\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\tvenoshock: {\n\t\tnum: 474,\n\t\taccuracy: 100,\n\t\tbasePower: 65,\n\t\tcategory: \"Special\",\n\t\tname: \"Venoshock\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tonBasePower(basePower, pokemon, target) {\n\t\t\tif (target.status === 'psn' || target.status === 'tox') {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Poison\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tvictorydance: {\n\t\tnum: 837,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Victory Dance\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, dance: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tdef: 1,\n\t\t\tspe: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Fighting\",\n\t},\n\tvinewhip: {\n\t\tnum: 22,\n\t\taccuracy: 100,\n\t\tbasePower: 45,\n\t\tcategory: \"Physical\",\n\t\tname: \"Vine Whip\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Cool\",\n\t},\n\tvisegrip: {\n\t\tnum: 11,\n\t\taccuracy: 100,\n\t\tbasePower: 55,\n\t\tcategory: \"Physical\",\n\t\tname: \"Vise Grip\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\tvitalthrow: {\n\t\tnum: 233,\n\t\taccuracy: true,\n\t\tbasePower: 70,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Vital Throw\",\n\t\tpp: 10,\n\t\tpriority: -1,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Cool\",\n\t},\n\tvoltswitch: {\n\t\tnum: 521,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tcategory: \"Special\",\n\t\tname: \"Volt Switch\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tselfSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tvolttackle: {\n\t\tnum: 344,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Volt Tackle\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [33, 100],\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\twakeupslap: {\n\t\tnum: 358,\n\t\taccuracy: 100,\n\t\tbasePower: 70,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (target.status === 'slp' || target.hasAbility('comatose')) {\n\t\t\t\tthis.debug('BP doubled on sleeping target');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Wake-Up Slap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tonHit(target) {\n\t\t\tif (target.status === 'slp') target.cureStatus();\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fighting\",\n\t\tcontestType: \"Tough\",\n\t},\n\twaterfall: {\n\t\tnum: 127,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Waterfall\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Tough\",\n\t},\n\twatergun: {\n\t\tnum: 55,\n\t\taccuracy: 100,\n\t\tbasePower: 40,\n\t\tcategory: \"Special\",\n\t\tname: \"Water Gun\",\n\t\tpp: 25,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cute\",\n\t},\n\twaterpledge: {\n\t\tnum: 518,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tbasePowerCallback(target, source, move) {\n\t\t\tif (['firepledge', 'grasspledge'].includes(move.sourceEffect)) {\n\t\t\t\tthis.add('-combine');\n\t\t\t\treturn 150;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Water Pledge\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, nonsky: 1, metronome: 1, pledgecombo: 1 },\n\t\tonPrepareHit(target, source, move) {\n\t\t\tfor (const action of this.queue) {\n\t\t\t\tif (action.choice !== 'move') continue;\n\t\t\t\tconst otherMove = action.move;\n\t\t\t\tconst otherMoveUser = action.pokemon;\n\t\t\t\tif (\n\t\t\t\t\t!otherMove || !action.pokemon || !otherMoveUser.isActive ||\n\t\t\t\t\totherMoveUser.fainted || action.maxMove || action.zmove\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (otherMoveUser.isAlly(source) && ['firepledge', 'grasspledge'].includes(otherMove.id)) {\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\n\t\t\t\t\tthis.add('-waiting', source, otherMoveUser);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move) {\n\t\t\tif (move.sourceEffect === 'grasspledge') {\n\t\t\t\tmove.type = 'Grass';\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t\tmove.sideCondition = 'grasspledge';\n\t\t\t}\n\t\t\tif (move.sourceEffect === 'firepledge') {\n\t\t\t\tmove.type = 'Water';\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t\tmove.self = { sideCondition: 'waterpledge' };\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 4,\n\t\t\tonSideStart(targetSide) {\n\t\t\t\tthis.add('-sidestart', targetSide, 'Water Pledge');\n\t\t\t},\n\t\t\tonSideResidualOrder: 26,\n\t\t\tonSideResidualSubOrder: 7,\n\t\t\tonSideEnd(targetSide) {\n\t\t\t\tthis.add('-sideend', targetSide, 'Water Pledge');\n\t\t\t},\n\t\t\tonModifyMove(move, pokemon) {\n\t\t\t\tif (move.secondaries && move.id !== 'secretpower') {\n\t\t\t\t\tthis.debug('doubling secondary chance');\n\t\t\t\t\tfor (const secondary of move.secondaries) {\n\t\t\t\t\t\tif (pokemon.hasAbility('serenegrace') && secondary.volatileStatus === 'flinch') continue;\n\t\t\t\t\t\tif (secondary.chance) secondary.chance *= 2;\n\t\t\t\t\t}\n\t\t\t\t\tif (move.self?.chance) move.self.chance *= 2;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\twaterpulse: {\n\t\tnum: 352,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Special\",\n\t\tname: \"Water Pulse\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'confusion',\n\t\t},\n\t\ttarget: \"any\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\twatershuriken: {\n\t\tnum: 594,\n\t\taccuracy: 100,\n\t\tbasePower: 15,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tif (pokemon.species.name === 'Greninja-Ash' && pokemon.hasAbility('battlebond') &&\n\t\t\t\t!pokemon.transformed) {\n\t\t\t\treturn move.basePower + 5;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Water Shuriken\",\n\t\tpp: 20,\n\t\tpriority: 1,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tmultihit: [2, 5],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Cool\",\n\t},\n\twatersport: {\n\t\tnum: 346,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Water Sport\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { nonsky: 1, metronome: 1 },\n\t\tpseudoWeather: 'watersport',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tonFieldStart(field, source) {\n\t\t\t\tthis.add('-fieldstart', 'move: Water Sport', `[of] ${source}`);\n\t\t\t},\n\t\t\tonBasePowerPriority: 1,\n\t\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\t\tif (move.type === 'Fire') {\n\t\t\t\t\tthis.debug('water sport weaken');\n\t\t\t\t\treturn this.chainModify([1352, 4096]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 3,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Water Sport');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Water\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\twaterspout: {\n\t\tnum: 323,\n\t\taccuracy: 100,\n\t\tbasePower: 150,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst bp = move.basePower * pokemon.hp / pokemon.maxhp;\n\t\t\tthis.debug(`BP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tname: \"Water Spout\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\twavecrash: {\n\t\tnum: 834,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Wave Crash\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [33, 100],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t},\n\tweatherball: {\n\t\tnum: 311,\n\t\taccuracy: 100,\n\t\tbasePower: 50,\n\t\tcategory: \"Special\",\n\t\tname: \"Weather Ball\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tonModifyType(move, pokemon) {\n\t\t\tswitch (pokemon.effectiveWeather()) {\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tmove.type = 'Fire';\n\t\t\t\tbreak;\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\t\tmove.type = 'Water';\n\t\t\t\tbreak;\n\t\t\tcase 'sandstorm':\n\t\t\t\tmove.type = 'Rock';\n\t\t\t\tbreak;\n\t\t\tcase 'hail':\n\t\t\tcase 'snowscape':\n\t\t\t\tmove.type = 'Ice';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, pokemon) {\n\t\t\tswitch (pokemon.effectiveWeather()) {\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tmove.basePower *= 2;\n\t\t\t\tbreak;\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\t\tmove.basePower *= 2;\n\t\t\t\tbreak;\n\t\t\tcase 'sandstorm':\n\t\t\t\tmove.basePower *= 2;\n\t\t\t\tbreak;\n\t\t\tcase 'hail':\n\t\t\tcase 'snowscape':\n\t\t\t\tmove.basePower *= 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.debug(`BP: ${move.basePower}`);\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 160 },\n\t\tmaxMove: { basePower: 130 },\n\t\tcontestType: \"Beautiful\",\n\t},\n\twhirlpool: {\n\t\tnum: 250,\n\t\taccuracy: 85,\n\t\tbasePower: 35,\n\t\tcategory: \"Special\",\n\t\tname: \"Whirlpool\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Water\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\twhirlwind: {\n\t\tnum: 18,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Whirlwind\",\n\t\tpp: 20,\n\t\tpriority: -6,\n\t\tflags: { reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1, wind: 1 },\n\t\tforceSwitch: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\twickedblow: {\n\t\tnum: 817,\n\t\taccuracy: 100,\n\t\tbasePower: 75,\n\t\tcategory: \"Physical\",\n\t\tname: \"Wicked Blow\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, punch: 1 },\n\t\twillCrit: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\twickedtorque: {\n\t\tnum: 897,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"Unobtainable\",\n\t\tname: \"Wicked Torque\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: {\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1,\n\t\t\tfailcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1,\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'slp',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Dark\",\n\t},\n\twideguard: {\n\t\tnum: 469,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Wide Guard\",\n\t\tpp: 10,\n\t\tpriority: 3,\n\t\tflags: { snatch: 1 },\n\t\tsideCondition: 'wideguard',\n\t\tonTry() {\n\t\t\treturn !!this.queue.willAct();\n\t\t},\n\t\tonHitSide(side, source) {\n\t\t\tsource.addVolatile('stall');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonSideStart(target, source) {\n\t\t\t\tthis.add('-singleturn', source, 'Wide Guard');\n\t\t\t},\n\t\t\tonTryHitPriority: 4,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\t// Wide Guard blocks all spread moves\n\t\t\t\tif (move?.target !== 'allAdjacent' && move.target !== 'allAdjacentFoes') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.isZ || move.isMax) {\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\n\t\t\t\t\ttarget.getMoveHitData(move).zBrokeProtect = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.add('-activate', target, 'move: Wide Guard');\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\n\t\t\t\tif (lockedmove) {\n\t\t\t\t\t// Outrage counter is reset\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.NOT_FAIL;\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"allySide\",\n\t\ttype: \"Rock\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\twildboltstorm: {\n\t\tnum: 847,\n\t\taccuracy: 80,\n\t\tbasePower: 100,\n\t\tcategory: \"Special\",\n\t\tname: \"Wildbolt Storm\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, wind: 1 },\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) {\n\t\t\t\tmove.accuracy = true;\n\t\t\t}\n\t\t},\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"allAdjacentFoes\",\n\t\ttype: \"Electric\",\n\t},\n\twildcharge: {\n\t\tnum: 528,\n\t\taccuracy: 100,\n\t\tbasePower: 90,\n\t\tcategory: \"Physical\",\n\t\tname: \"Wild Charge\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [1, 4],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Tough\",\n\t},\n\twillowisp: {\n\t\tnum: 261,\n\t\taccuracy: 85,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Will-O-Wisp\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tstatus: 'brn',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Fire\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Beautiful\",\n\t},\n\twingattack: {\n\t\tnum: 17,\n\t\taccuracy: 100,\n\t\tbasePower: 60,\n\t\tcategory: \"Physical\",\n\t\tname: \"Wing Attack\",\n\t\tpp: 35,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"any\",\n\t\ttype: \"Flying\",\n\t\tcontestType: \"Cool\",\n\t},\n\twish: {\n\t\tnum: 273,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Wish\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, heal: 1, metronome: 1 },\n\t\tslotCondition: 'Wish',\n\t\tcondition: {\n\t\t\tonStart(pokemon, source) {\n\t\t\t\tthis.effectState.hp = source.maxhp / 2;\n\t\t\t\tthis.effectState.startingTurn = this.getOverflowedTurnCount();\n\t\t\t\tif (this.effectState.startingTurn === 255) {\n\t\t\t\t\tthis.hint(`In Gen 8+, Wish will never resolve when used on the ${this.turn}th turn.`);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidualOrder: 4,\n\t\t\tonResidual(target: Pokemon) {\n\t\t\t\tif (this.getOverflowedTurnCount() <= this.effectState.startingTurn) return;\n\t\t\t\ttarget.side.removeSlotCondition(this.getAtSlot(this.effectState.sourceSlot), 'wish');\n\t\t\t},\n\t\t\tonEnd(target) {\n\t\t\t\tif (target && !target.fainted) {\n\t\t\t\t\tconst damage = this.heal(this.effectState.hp, target, target);\n\t\t\t\t\tif (damage) {\n\t\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Wish', '[wisher] ' + this.effectState.source.name);\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: \"Normal\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\twithdraw: {\n\t\tnum: 110,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Withdraw\",\n\t\tpp: 40,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tdef: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Water\",\n\t\tzMove: { boost: { def: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\twonderroom: {\n\t\tnum: 472,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Wonder Room\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { mirror: 1, metronome: 1 },\n\t\tpseudoWeather: 'wonderroom',\n\t\tcondition: {\n\t\t\tduration: 5,\n\t\t\tdurationCallback(source, effect) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Wonder Room');\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\tonModifyMove(move, source, target) {\n\t\t\t\t// This code is for moves that use defensive stats as the attacking stat; see below for most of the implementation\n\t\t\t\tif (!move.overrideOffensiveStat) return;\n\t\t\t\tconst statAndBoosts = move.overrideOffensiveStat;\n\t\t\t\tif (!['def', 'spd'].includes(statAndBoosts)) return;\n\t\t\t\tmove.overrideOffensiveStat = statAndBoosts === 'def' ? 'spd' : 'def';\n\t\t\t\tthis.hint(`${move.name} uses ${statAndBoosts === 'def' ? '' : 'Sp. '}Def boosts when Wonder Room is active.`);\n\t\t\t},\n\t\t\tonFieldStart(field, source) {\n\t\t\t\tif (source?.hasAbility('persistent')) {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Wonder Room', `[of] ${source}`, '[persistent]');\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-fieldstart', 'move: Wonder Room', `[of] ${source}`);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFieldRestart(target, source) {\n\t\t\t\tthis.field.removePseudoWeather('wonderroom');\n\t\t\t},\n\t\t\t// Swapping defenses partially implemented in sim/pokemon.js:Pokemon#calculateStat and Pokemon#getStat\n\t\t\tonFieldResidualOrder: 27,\n\t\t\tonFieldResidualSubOrder: 5,\n\t\t\tonFieldEnd() {\n\t\t\t\tthis.add('-fieldend', 'move: Wonder Room');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"all\",\n\t\ttype: \"Psychic\",\n\t\tzMove: { boost: { spd: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\twoodhammer: {\n\t\tnum: 452,\n\t\taccuracy: 100,\n\t\tbasePower: 120,\n\t\tcategory: \"Physical\",\n\t\tname: \"Wood Hammer\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\trecoil: [33, 100],\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tcontestType: \"Tough\",\n\t},\n\tworkup: {\n\t\tnum: 526,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Work Up\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { snatch: 1, metronome: 1 },\n\t\tboosts: {\n\t\t\tatk: 1,\n\t\t\tspa: 1,\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { atk: 1 } },\n\t\tcontestType: \"Tough\",\n\t},\n\tworryseed: {\n\t\tnum: 388,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Worry Seed\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1 },\n\t\tonTryImmunity(target) {\n\t\t\t// Truant and Insomnia have special treatment; they fail before\n\t\t\t// checking accuracy and will double Stomping Tantrum's BP\n\t\t\tif (target.ability === 'truant' || target.ability === 'insomnia') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonTryHit(target) {\n\t\t\tif (target.getAbility().flags['cantsuppress']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonHit(pokemon) {\n\t\t\tconst oldAbility = pokemon.setAbility('insomnia');\n\t\t\tif (oldAbility) {\n\t\t\t\tthis.add('-ability', pokemon, 'Insomnia', '[from] move: Worry Seed');\n\t\t\t\tif (pokemon.status === 'slp') {\n\t\t\t\t\tpokemon.cureStatus();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn oldAbility as false | null;\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Grass\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Clever\",\n\t},\n\twrap: {\n\t\tnum: 35,\n\t\taccuracy: 90,\n\t\tbasePower: 15,\n\t\tcategory: \"Physical\",\n\t\tname: \"Wrap\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tcontestType: \"Tough\",\n\t},\n\twringout: {\n\t\tnum: 378,\n\t\taccuracy: 100,\n\t\tbasePower: 0,\n\t\tbasePowerCallback(pokemon, target, move) {\n\t\t\tconst hp = target.hp;\n\t\t\tconst maxHP = target.maxhp;\n\t\t\tconst bp = Math.floor(Math.floor((120 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1;\n\t\t\tthis.debug(`BP for ${hp}/${maxHP} HP: ${bp}`);\n\t\t\treturn bp;\n\t\t},\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"Past\",\n\t\tname: \"Wring Out\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { basePower: 190 },\n\t\tmaxMove: { basePower: 140 },\n\t\tcontestType: \"Tough\",\n\t},\n\txscissor: {\n\t\tnum: 404,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"X-Scissor\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1 },\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Bug\",\n\t\tcontestType: \"Cool\",\n\t},\n\tyawn: {\n\t\tnum: 281,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Yawn\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 },\n\t\tvolatileStatus: 'yawn',\n\t\tonTryHit(target) {\n\t\t\tif (target.status || !target.runStatusImmunity('slp')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\n\t\t\tduration: 2,\n\t\t\tonStart(target, source) {\n\t\t\t\tthis.add('-start', target, 'move: Yawn', `[of] ${source}`);\n\t\t\t},\n\t\t\tonResidualOrder: 23,\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'move: Yawn', '[silent]');\n\t\t\t\ttarget.trySetStatus('slp', this.effectState.source);\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t\tzMove: { boost: { spe: 1 } },\n\t\tcontestType: \"Cute\",\n\t},\n\tzapcannon: {\n\t\tnum: 192,\n\t\taccuracy: 50,\n\t\tbasePower: 120,\n\t\tcategory: \"Special\",\n\t\tname: \"Zap Cannon\",\n\t\tpp: 5,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, metronome: 1, bullet: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tstatus: 'par',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tzenheadbutt: {\n\t\tnum: 428,\n\t\taccuracy: 90,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Zen Headbutt\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Psychic\",\n\t\tcontestType: \"Clever\",\n\t},\n\tzingzap: {\n\t\tnum: 716,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tname: \"Zing Zap\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1, metronome: 1 },\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\tzippyzap: {\n\t\tnum: 729,\n\t\taccuracy: 100,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"LGPE\",\n\t\tname: \"Zippy Zap\",\n\t\tpp: 10,\n\t\tpriority: 2,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 100,\n\t\t\tself: {\n\t\t\t\tboosts: {\n\t\t\t\t\tevasion: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Electric\",\n\t\tcontestType: \"Cool\",\n\t},\n\n\t// CAP moves\n\n\tpaleowave: {\n\t\tnum: 0,\n\t\taccuracy: 100,\n\t\tbasePower: 85,\n\t\tcategory: \"Special\",\n\t\tisNonstandard: \"CAP\",\n\t\tname: \"Paleo Wave\",\n\t\tpp: 15,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Rock\",\n\t\tcontestType: \"Beautiful\",\n\t},\n\tshadowstrike: {\n\t\tnum: 0,\n\t\taccuracy: 95,\n\t\tbasePower: 80,\n\t\tcategory: \"Physical\",\n\t\tisNonstandard: \"CAP\",\n\t\tname: \"Shadow Strike\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { contact: 1, protect: 1, mirror: 1 },\n\t\tsecondary: {\n\t\t\tchance: 50,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t\ttype: \"Ghost\",\n\t\tcontestType: \"Clever\",\n\t},\n};\n"], "mappings": "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", "names": [] }