{ "version": 3, "sources": ["../../../data/moves.ts"], "sourcesContent": ["// List of flags and their descriptions can be found in sim/dex-moves.ts\r\n\r\nexport const Moves: {[moveid: string]: MoveData} = {\r\n\t\"10000000voltthunderbolt\": {\r\n\t\tnum: 719,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 195,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"10,000,000 Volt Thunderbolt\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"pikashuniumz\",\r\n\t\tcritRatio: 3,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tabsorb: {\r\n\t\tnum: 71,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Absorb\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\taccelerock: {\r\n\t\tnum: 709,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Accelerock\",\r\n\t\tpp: 20,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tacid: {\r\n\t\tnum: 51,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Acid\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tacidarmor: {\r\n\t\tnum: 151,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Acid Armor\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\taciddownpour: {\r\n\t\tnum: 628,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Acid Downpour\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"poisoniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tacidspray: {\r\n\t\tnum: 491,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Acid Spray\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tacrobatics: {\r\n\t\tnum: 512,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 55,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (!pokemon.item) {\r\n\t\t\t\tthis.debug(\"BP doubled for no item\");\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Acrobatics\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tacupressure: {\r\n\t\tnum: 367,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Acupressure\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonHit(target) {\r\n\t\t\tconst stats: BoostID[] = [];\r\n\t\t\tlet stat: BoostID;\r\n\t\t\tfor (stat in target.boosts) {\r\n\t\t\t\tif (target.boosts[stat] < 6) {\r\n\t\t\t\t\tstats.push(stat);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (stats.length) {\r\n\t\t\t\tconst randomStat = this.sample(stats);\r\n\t\t\t\tconst boost: SparseBoostsTable = {};\r\n\t\t\t\tboost[randomStat] = 2;\r\n\t\t\t\tthis.boost(boost);\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentAllyOrSelf\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'crit2'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\taerialace: {\r\n\t\tnum: 332,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Aerial Ace\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1, slicing: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\taeroblast: {\r\n\t\tnum: 177,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Aeroblast\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, distance: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tafteryou: {\r\n\t\tnum: 495,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"After You\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.side.active.length < 2) return false; // fails in singles\r\n\t\t\tconst action = this.queue.willMove(target);\r\n\t\t\tif (action) {\r\n\t\t\t\tthis.queue.prioritizeAction(action);\r\n\t\t\t\tthis.add('-activate', target, 'move: After You');\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tagility: {\r\n\t\tnum: 97,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Agility\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\taircutter: {\r\n\t\tnum: 314,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Air Cutter\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, slicing: 1, wind: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tairslash: {\r\n\t\tnum: 403,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Air Slash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, distance: 1, slicing: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\talloutpummeling: {\r\n\t\tnum: 624,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"All-Out Pummeling\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"fightiniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tallyswitch: {\r\n\t\tnum: 502,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Ally Switch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 2,\r\n\t\tflags: {},\r\n\t\tstallingMove: true,\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonTryHit(source) {\r\n\t\t\tif (source.side.active.length === 1) return false;\r\n\t\t\tif (source.side.active.length === 3 && source.position === 1) return false;\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t\tconst newPosition = (pokemon.position === 0 ? pokemon.side.active.length - 1 : 0);\r\n\t\t\tif (!pokemon.side.active[newPosition]) return false;\r\n\t\t\tif (pokemon.side.active[newPosition].fainted) return false;\r\n\t\t\tthis.swapPosition(pokemon, newPosition, '[from] move: Ally Switch');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tamnesia: {\r\n\t\tnum: 133,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Amnesia\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspd: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tanchorshot: {\r\n\t\tnum: 677,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Anchor Shot\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (source.isActive) target.addVolatile('trapped', source, move, 'trapper');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tancientpower: {\r\n\t\tnum: 246,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Ancient Power\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tatk: 1,\r\n\t\t\t\t\tdef: 1,\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t\tspd: 1,\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tappleacid: {\r\n\t\tnum: 787,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Apple Acid\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\taquacutter: {\r\n\t\tnum: 895,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Aqua Cutter\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, slicing: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\taquajet: {\r\n\t\tnum: 453,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Aqua Jet\",\r\n\t\tpp: 20,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\taquaring: {\r\n\t\tnum: 392,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Aqua Ring\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'aquaring',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Aqua Ring');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 6,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 16);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Water\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\taquastep: {\r\n\t\tnum: 872,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Aqua Step\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, dance: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\taquatail: {\r\n\t\tnum: 401,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Aqua Tail\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tarmorcannon: {\r\n\t\tnum: 890,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Armor Cannon\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t},\r\n\tarmthrust: {\r\n\t\tnum: 292,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Arm Thrust\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\taromatherapy: {\r\n\t\tnum: 312,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Aromatherapy\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, distance: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tthis.add('-activate', source, 'move: Aromatherapy');\r\n\t\t\tlet success = false;\r\n\t\t\tconst allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];\r\n\t\t\tfor (const ally of allies) {\r\n\t\t\t\tif (ally !== source && ((ally.hasAbility('sapsipper')) ||\r\n\t\t\t\t\t\t(ally.volatiles['substitute'] && !move.infiltrates))) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (ally.cureStatus()) success = true;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\ttarget: \"allyTeam\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\taromaticmist: {\r\n\t\tnum: 597,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Aromatic Mist\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1},\r\n\t\tboosts: {\r\n\t\t\tspd: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentAlly\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {spd: 2}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tassist: {\r\n\t\tnum: 274,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Assist\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonHit(target) {\r\n\t\t\tconst moves = [];\r\n\t\t\tfor (const pokemon of target.side.pokemon) {\r\n\t\t\t\tif (pokemon === target) continue;\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tconst moveid = moveSlot.id;\r\n\t\t\t\t\tconst move = this.dex.moves.get(moveid);\r\n\t\t\t\t\tif (move.flags['noassist'] || move.isZ || move.isMax) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmoves.push(moveid);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet randomMove = '';\r\n\t\t\tif (moves.length) randomMove = this.sample(moves);\r\n\t\t\tif (!randomMove) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(randomMove, target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tassurance: {\r\n\t\tnum: 372,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.hurtThisTurn) {\r\n\t\t\t\tthis.debug('BP doubled on damaged target');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Assurance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tastonish: {\r\n\t\tnum: 310,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Astonish\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tastralbarrage: {\r\n\t\tnum: 825,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Astral Barrage\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ghost\",\r\n\t},\r\n\tattackorder: {\r\n\t\tnum: 454,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Attack Order\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tattract: {\r\n\t\tnum: 213,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Attract\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'attract',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\r\n\t\t\tonStart(pokemon, source, effect) {\r\n\t\t\t\tif (!(pokemon.gender === 'M' && source.gender === 'F') && !(pokemon.gender === 'F' && source.gender === 'M')) {\r\n\t\t\t\t\tthis.debug('incompatible gender');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (!this.runEvent('Attract', pokemon, source)) {\r\n\t\t\t\t\tthis.debug('Attract event failed');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (effect.name === 'Cute Charm') {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Attract', '[from] ability: Cute Charm', '[of] ' + source);\r\n\t\t\t\t} else if (effect.name === 'Destiny Knot') {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Attract', '[from] item: Destiny Knot', '[of] ' + source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Attract');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonUpdate(pokemon) {\r\n\t\t\t\tif (this.effectState.source && !this.effectState.source.isActive && pokemon.volatiles['attract']) {\r\n\t\t\t\t\tthis.debug('Removing Attract volatile on ' + pokemon);\r\n\t\t\t\t\tpokemon.removeVolatile('attract');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 2,\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tthis.add('-activate', pokemon, 'move: Attract', '[of] ' + this.effectState.source);\r\n\t\t\t\tif (this.randomChance(1, 2)) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'Attract');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Attract', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t\tonTryImmunity(target, source) {\r\n\t\t\treturn (target.gender === 'M' && source.gender === 'F') || (target.gender === 'F' && source.gender === 'M');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\taurasphere: {\r\n\t\tnum: 396,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Aura Sphere\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, pulse: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\taurawheel: {\r\n\t\tnum: 783,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Aura Wheel\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.species.baseSpecies === 'Morpeko') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-fail', source, 'move: Aura Wheel');\r\n\t\t\tthis.hint(\"Only a Pokemon whose form is Morpeko or Morpeko-Hangry can use this move.\");\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tif (pokemon.species.name === 'Morpeko-Hangry') {\r\n\t\t\t\tmove.type = 'Dark';\r\n\t\t\t} else {\r\n\t\t\t\tmove.type = 'Electric';\r\n\t\t\t}\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t},\r\n\taurorabeam: {\r\n\t\tnum: 62,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Aurora Beam\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tauroraveil: {\r\n\t\tnum: 694,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Aurora Veil\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'auroraveil',\r\n\t\tonTry() {\r\n\t\t\treturn this.field.isWeather(['hail', 'snow']);\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasItem('lightclay')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonAnyModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (target !== source && this.effectState.target.hasAlly(target)) {\r\n\t\t\t\t\tif ((target.side.getSideCondition('reflect') && this.getCategory(move) === 'Physical') ||\r\n\t\t\t\t\t\t\t(target.side.getSideCondition('lightscreen') && this.getCategory(move) === 'Special')) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\r\n\t\t\t\t\t\tthis.debug('Aurora Veil weaken');\r\n\t\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\r\n\t\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Aurora Veil');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 10,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'move: Aurora Veil');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tautotomize: {\r\n\t\tnum: 475,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Autotomize\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonTryHit(pokemon) {\r\n\t\t\tconst hasContrary = pokemon.hasAbility('contrary');\r\n\t\t\tif ((!hasContrary && pokemon.boosts.spe === 6) || (hasContrary && pokemon.boosts.spe === -6)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (pokemon.weighthg > 1) {\r\n\t\t\t\tpokemon.weighthg = Math.max(1, pokemon.weighthg - 1000);\r\n\t\t\t\tthis.add('-start', pokemon, 'Autotomize');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tavalanche: {\r\n\t\tnum: 419,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst damagedByTarget = pokemon.attackedBy.some(\r\n\t\t\t\tp => p.source === target && p.damage > 0 && p.thisTurn\r\n\t\t\t);\r\n\t\t\tif (damagedByTarget) {\r\n\t\t\t\tthis.debug('BP doubled for getting hit by ' + target);\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Avalanche\",\r\n\t\tpp: 10,\r\n\t\tpriority: -4,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\taxekick: {\r\n\t\tnum: 853,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Axe Kick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\thasCrashDamage: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick'));\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tbabydolleyes: {\r\n\t\tnum: 608,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Baby-Doll Eyes\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbaddybad: {\r\n\t\tnum: 737,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Baddy Bad\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tsideCondition: 'reflect',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tbanefulbunker: {\r\n\t\tnum: 661,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Baneful Bunker\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {noassist: 1, failcopycat: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'banefulbunker',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'move: Protect');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect']) {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tsource.trySetStatus('psn', target);\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tsource.trySetStatus('psn', target);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbarbbarrage: {\r\n\t\tnum: 839,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Barb Barrage\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, pokemon, target) {\r\n\t\t\tif (target.status === 'psn' || target.status === 'tox') {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t},\r\n\tbarrage: {\r\n\t\tnum: 140,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Barrage\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbarrier: {\r\n\t\tnum: 112,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Barrier\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tbatonpass: {\r\n\t\tnum: 226,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Baton Pass\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonTryHit(target) {\r\n\t\t\tif (!this.canSwitch(target.side) || target.volatiles['commanded']) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('-fail', target);\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tsource.skipBeforeSwitchOutEventFlag = true;\r\n\t\t\t},\r\n\t\t},\r\n\t\tselfSwitch: 'copyvolatile',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbeakblast: {\r\n\t\tnum: 690,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Beak Blast\",\r\n\t\tpp: 15,\r\n\t\tpriority: -3,\r\n\t\tflags: {bullet: 1, protect: 1, noassist: 1, failmefirst: 1, nosleeptalk: 1, failcopycat: 1, failinstruct: 1},\r\n\t\tpriorityChargeCallback(pokemon) {\r\n\t\t\tpokemon.addVolatile('beakblast');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Beak Blast');\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tsource.trySetStatus('brn', target);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\t// FIXME: onMoveAborted(pokemon) {pokemon.removeVolatile('beakblast')},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tpokemon.removeVolatile('beakblast');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbeatup: {\r\n\t\tnum: 251,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst currentSpecies = move.allies!.shift()!.species;\r\n\t\t\tconst bp = 5 + Math.floor(currentSpecies.baseStats.atk / 10);\r\n\t\t\tthis.debug('BP for ' + currentSpecies.name + ' hit: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Beat Up\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, allyanim: 1},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tmove.allies = pokemon.side.pokemon.filter(ally => ally === pokemon || !ally.fainted && !ally.status);\r\n\t\t\tmove.multihit = move.allies.length;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tbehemothbash: {\r\n\t\tnum: 782,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Behemoth Bash\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, failcopycat: 1, failmimic: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tbehemothblade: {\r\n\t\tnum: 781,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Behemoth Blade\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1, failcopycat: 1, failmimic: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tbelch: {\r\n\t\tnum: 562,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Belch\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonDisableMove(pokemon) {\r\n\t\t\tif (!pokemon.ateBerry) pokemon.disableMove('belch');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbellydrum: {\r\n\t\tnum: 187,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Belly Drum\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.hp <= target.maxhp / 2 || target.boosts.atk >= 6 || target.maxhp === 1) { // Shedinja clause\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.directDamage(target.maxhp / 2);\r\n\t\t\tthis.boost({atk: 12}, target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbestow: {\r\n\t\tnum: 516,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bestow\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1, bypasssub: 1, allyanim: 1, noassist: 1, failcopycat: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tif (target.item) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst myItem = source.takeItem();\r\n\t\t\tif (!myItem) return false;\r\n\t\t\tif (!this.singleEvent('TakeItem', myItem, source.itemState, target, source, move, myItem) || !target.setItem(myItem)) {\r\n\t\t\t\tsource.item = myItem.id;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.add('-item', target, myItem.name, '[from] move: Bestow', '[of] ' + source);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbide: {\r\n\t\tnum: 117,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bide\",\r\n\t\tpp: 10,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tvolatileStatus: 'bide',\r\n\t\tignoreImmunity: true,\r\n\t\tbeforeMoveCallback(pokemon) {\r\n\t\t\tif (pokemon.volatiles['bide']) return true;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\r\n\t\t\tonLockMove: 'bide',\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.effectState.totalDamage = 0;\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Bide');\r\n\t\t\t},\r\n\t\t\tonDamagePriority: -101,\r\n\t\t\tonDamage(damage, target, source, move) {\r\n\t\t\t\tif (!move || move.effectType !== 'Move' || !source) return;\r\n\t\t\t\tthis.effectState.totalDamage += damage;\r\n\t\t\t\tthis.effectState.lastDamageSource = source;\r\n\t\t\t},\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tif (this.effectState.duration === 1) {\r\n\t\t\t\t\tthis.add('-end', pokemon, 'move: Bide');\r\n\t\t\t\t\ttarget = this.effectState.lastDamageSource;\r\n\t\t\t\t\tif (!target || !this.effectState.totalDamage) {\r\n\t\t\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\t\t\tthis.add('-fail', pokemon);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!target.isActive) {\r\n\t\t\t\t\t\tconst possibleTarget = this.getRandomTarget(pokemon, this.dex.moves.get('pound'));\r\n\t\t\t\t\t\tif (!possibleTarget) {\r\n\t\t\t\t\t\t\tthis.add('-miss', pokemon);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttarget = possibleTarget;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst moveData: Partial = {\r\n\t\t\t\t\t\tid: 'bide' as ID,\r\n\t\t\t\t\t\tname: \"Bide\",\r\n\t\t\t\t\t\taccuracy: true,\r\n\t\t\t\t\t\tdamage: this.effectState.totalDamage * 2,\r\n\t\t\t\t\t\tcategory: \"Physical\",\r\n\t\t\t\t\t\tpriority: 1,\r\n\t\t\t\t\t\tflags: {contact: 1, protect: 1},\r\n\t\t\t\t\t\teffectType: 'Move',\r\n\t\t\t\t\t\ttype: 'Normal',\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.actions.tryMoveHit(target, pokemon, moveData as ActiveMove);\r\n\t\t\t\t\tpokemon.removeVolatile('bide');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-activate', pokemon, 'move: Bide');\r\n\t\t\t},\r\n\t\t\tonMoveAborted(pokemon) {\r\n\t\t\t\tpokemon.removeVolatile('bide');\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'move: Bide', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbind: {\r\n\t\tnum: 20,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bind\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbite: {\r\n\t\tnum: 44,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bite\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbitterblade: {\r\n\t\tnum: 891,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bitter Blade\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t},\r\n\tbittermalice: {\r\n\t\tnum: 841,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Bitter Malice\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t},\r\n\tblackholeeclipse: {\r\n\t\tnum: 654,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Black Hole Eclipse\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"darkiniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tblastburn: {\r\n\t\tnum: 307,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Blast Burn\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tblazekick: {\r\n\t\tnum: 299,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Blaze Kick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tblazingtorque: {\r\n\t\tnum: 896,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Blazing Torque\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t},\r\n\tbleakwindstorm: {\r\n\t\tnum: 846,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Bleakwind Storm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Flying\",\r\n\t},\r\n\tblizzard: {\r\n\t\tnum: 59,\r\n\t\taccuracy: 70,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Blizzard\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tonModifyMove(move) {\r\n\t\t\tif (this.field.isWeather(['hail', 'snow'])) move.accuracy = true;\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'frz',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tblock: {\r\n\t\tnum: 335,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Block\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, mirror: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\treturn target.addVolatile('trapped', source, move, 'trapper');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbloomdoom: {\r\n\t\tnum: 644,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bloom Doom\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"grassiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tblueflare: {\r\n\t\tnum: 551,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Blue Flare\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tbodypress: {\r\n\t\tnum: 776,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Body Press\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\toverrideOffensiveStat: 'def',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tbodyslam: {\r\n\t\tnum: 34,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Body Slam\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tboltbeak: {\r\n\t\tnum: 754,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) {\r\n\t\t\t\tthis.debug('Bolt Beak damage boost');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\tthis.debug('Bolt Beak NOT boosted');\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bolt Beak\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t},\r\n\tboltstrike: {\r\n\t\tnum: 550,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bolt Strike\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tboneclub: {\r\n\t\tnum: 125,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bone Club\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbonemerang: {\r\n\t\tnum: 155,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bonemerang\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbonerush: {\r\n\t\tnum: 198,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bone Rush\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tboomburst: {\r\n\t\tnum: 586,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Boomburst\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbounce: {\r\n\t\tnum: 340,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bounce\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\r\n\t\t},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonInvulnerability(target, source, move) {\r\n\t\t\t\tif (['gust', 'twister', 'skyuppercut', 'thunder', 'hurricane', 'smackdown', 'thousandarrows'].includes(move.id)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonSourceBasePower(basePower, target, source, move) {\r\n\t\t\t\tif (move.id === 'gust' || move.id === 'twister') {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbouncybubble: {\r\n\t\tnum: 733,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Bouncy Bubble\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tbranchpoke: {\r\n\t\tnum: 785,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Branch Poke\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tbravebird: {\r\n\t\tnum: 413,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Brave Bird\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\trecoil: [33, 100],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tbreakingswipe: {\r\n\t\tnum: 784,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Breaking Swipe\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\tbreakneckblitz: {\r\n\t\tnum: 622,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Breakneck Blitz\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"normaliumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tbrickbreak: {\r\n\t\tnum: 280,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Brick Break\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTryHit(pokemon) {\r\n\t\t\t// will shatter screens through sub, before you hit\r\n\t\t\tpokemon.side.removeSideCondition('reflect');\r\n\t\t\tpokemon.side.removeSideCondition('lightscreen');\r\n\t\t\tpokemon.side.removeSideCondition('auroraveil');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tbrine: {\r\n\t\tnum: 362,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Brine\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, pokemon, target) {\r\n\t\t\tif (target.hp * 2 <= target.maxhp) {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbrutalswing: {\r\n\t\tnum: 693,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Brutal Swing\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbubble: {\r\n\t\tnum: 145,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Bubble\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbubblebeam: {\r\n\t\tnum: 61,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Bubble Beam\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tbugbite: {\r\n\t\tnum: 450,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bug Bite\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst item = target.getItem();\r\n\t\t\tif (source.hp && item.isBerry && target.takeItem(source)) {\r\n\t\t\t\tthis.add('-enditem', target, item.name, '[from] stealeat', '[move] Bug Bite', '[of] ' + source);\r\n\t\t\t\tif (this.singleEvent('Eat', item, null, source, null, null)) {\r\n\t\t\t\t\tthis.runEvent('EatItem', source, null, null, item);\r\n\t\t\t\t\tif (item.id === 'leppaberry') target.staleness = 'external';\r\n\t\t\t\t}\r\n\t\t\t\tif (item.onEat) source.ateBerry = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tbugbuzz: {\r\n\t\tnum: 405,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Bug Buzz\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tbulkup: {\r\n\t\tnum: 339,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Bulk Up\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tdef: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tbulldoze: {\r\n\t\tnum: 523,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bulldoze\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbulletpunch: {\r\n\t\tnum: 418,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bullet Punch\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbulletseed: {\r\n\t\tnum: 331,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Bullet Seed\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tburningjealousy: {\r\n\t\tnum: 807,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Burning Jealousy\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (target?.statsRaisedThisTurn) {\r\n\t\t\t\t\ttarget.trySetStatus('brn', source, move);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tburnup: {\r\n\t\tnum: 682,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Burn Up\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tonTryMove(pokemon, target, move) {\r\n\t\t\tif (pokemon.hasType('Fire')) return;\r\n\t\t\tthis.add('-fail', pokemon, 'move: Burn Up');\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tpokemon.setType(pokemon.getTypes(true).map(type => type === \"Fire\" ? \"???\" : type));\r\n\t\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.getTypes().join('/'), '[from] move: Burn Up');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tbuzzybuzz: {\r\n\t\tnum: 734,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Buzzy Buzz\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tcalmmind: {\r\n\t\tnum: 347,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Calm Mind\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspa: 1,\r\n\t\t\tspd: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tcamouflage: {\r\n\t\tnum: 293,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Camouflage\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonHit(target) {\r\n\t\t\tlet newType = 'Normal';\r\n\t\t\tif (this.field.isTerrain('electricterrain')) {\r\n\t\t\t\tnewType = 'Electric';\r\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\r\n\t\t\t\tnewType = 'Grass';\r\n\t\t\t} else if (this.field.isTerrain('mistyterrain')) {\r\n\t\t\t\tnewType = 'Fairy';\r\n\t\t\t} else if (this.field.isTerrain('psychicterrain')) {\r\n\t\t\t\tnewType = 'Psychic';\r\n\t\t\t}\r\n\r\n\t\t\tif (target.getTypes().join() === newType || !target.setType(newType)) return false;\r\n\t\t\tthis.add('-start', target, 'typechange', newType);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tcaptivate: {\r\n\t\tnum: 445,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Captivate\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tonTryImmunity(pokemon, source) {\r\n\t\t\treturn (pokemon.gender === 'M' && source.gender === 'F') || (pokemon.gender === 'F' && source.gender === 'M');\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tspa: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 2}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tcatastropika: {\r\n\t\tnum: 658,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 210,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Catastropika\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1},\r\n\t\tisZ: \"pikaniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tceaselessedge: {\r\n\t\tnum: 845,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Ceaseless Edge\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('spikes');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: {}, // allows sheer force to trigger\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\tcelebrate: {\r\n\t\tnum: 606,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Celebrate\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tthis.add('-activate', target, 'move: Celebrate');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tcharge: {\r\n\t\tnum: 268,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Charge\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'charge',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon, source, effect) {\r\n\t\t\t\tif (effect && ['Electromorphosis', 'Wind Power'].includes(effect.name)) {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge', this.activeMove!.name, '[from] ability: ' + effect.name);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonRestart(pokemon, source, effect) {\r\n\t\t\t\tif (effect && ['Electromorphosis', 'Wind Power'].includes(effect.name)) {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge', this.activeMove!.name, '[from] ability: ' + effect.name);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Charge');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 9,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tif (move.type === 'Electric') {\r\n\t\t\t\t\tthis.debug('charge boost');\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonMoveAborted(pokemon, target, move) {\r\n\t\t\t\tif (move.type === 'Electric' && move.id !== 'charge') {\r\n\t\t\t\t\tpokemon.removeVolatile('charge');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonAfterMove(pokemon, target, move) {\r\n\t\t\t\tif (move.type === 'Electric' && move.id !== 'charge') {\r\n\t\t\t\t\tpokemon.removeVolatile('charge');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Charge', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tspd: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tchargebeam: {\r\n\t\tnum: 451,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Charge Beam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 70,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tcharm: {\r\n\t\tnum: 204,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Charm\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tchatter: {\r\n\t\tnum: 448,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Chatter\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, mirror: 1, sound: 1, distance: 1, bypasssub: 1, nosleeptalk: 1, noassist: 1,\r\n\t\t\tfailcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tnoSketch: true,\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tchillingwater: {\r\n\t\tnum: 886,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Chilling Water\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tchillyreception: {\r\n\t\tnum: 881,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Chilly Reception\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\t// TODO show prepare message before the \"POKEMON used MOVE!\" message\r\n\t\t// This happens even before sleep shows its \"POKEMON is fast asleep.\" message\r\n\t\tweather: 'snow',\r\n\t\tselfSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Ice\",\r\n\t},\r\n\tchipaway: {\r\n\t\tnum: 498,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Chip Away\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tignoreDefensive: true,\r\n\t\tignoreEvasion: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tchloroblast: {\r\n\t\tnum: 835,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Chloroblast\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmindBlownRecoil: true,\r\n\t\tonAfterMove(pokemon, target, move) {\r\n\t\t\tif (move.mindBlownRecoil && !move.multihit) {\r\n\t\t\t\tconst hpBeforeRecoil = pokemon.hp;\r\n\t\t\t\tthis.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Chloroblast'), true);\r\n\t\t\t\tif (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) {\r\n\t\t\t\t\tthis.runEvent('EmergencyExit', pokemon, pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tcirclethrow: {\r\n\t\tnum: 509,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Circle Throw\",\r\n\t\tpp: 10,\r\n\t\tpriority: -6,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, noassist: 1, failcopycat: 1},\r\n\t\tforceSwitch: true,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tclamp: {\r\n\t\tnum: 128,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Clamp\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tclangingscales: {\r\n\t\tnum: 691,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Clanging Scales\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tselfBoost: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tclangoroussoul: {\r\n\t\tnum: 775,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Clangorous Soul\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, sound: 1, dance: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.hp <= (source.maxhp * 33 / 100) || source.maxhp === 1) return false;\r\n\t\t},\r\n\t\tonTryHit(pokemon, target, move) {\r\n\t\t\tif (!this.boost(move.boosts as SparseBoostsTable)) return null;\r\n\t\t\tdelete move.boosts;\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tthis.directDamage(pokemon.maxhp * 33 / 100);\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tdef: 1,\r\n\t\t\tspa: 1,\r\n\t\t\tspd: 1,\r\n\t\t\tspe: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\tclangoroussoulblaze: {\r\n\t\tnum: 728,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 185,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Clangorous Soulblaze\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {sound: 1, bypasssub: 1},\r\n\t\tselfBoost: {\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: 1,\r\n\t\t\t\tdef: 1,\r\n\t\t\t\tspa: 1,\r\n\t\t\t\tspd: 1,\r\n\t\t\t\tspe: 1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tisZ: \"kommoniumz\",\r\n\t\tsecondary: {\r\n\t\t\t// Sheer Force negates the selfBoost even though it is not secondary\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tclearsmog: {\r\n\t\tnum: 499,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Clear Smog\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonHit(target) {\r\n\t\t\ttarget.clearBoosts();\r\n\t\t\tthis.add('-clearboost', target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tclosecombat: {\r\n\t\tnum: 370,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Close Combat\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcoaching: {\r\n\t\tnum: 811,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Coaching\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1, allyanim: 1},\r\n\t\tsecondary: null,\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tdef: 1,\r\n\t\t},\r\n\t\ttarget: \"adjacentAlly\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tcoil: {\r\n\t\tnum: 489,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Coil\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tdef: 1,\r\n\t\t\taccuracy: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcollisioncourse: {\r\n\t\tnum: 878,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Collision Course\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, source, target, move) {\r\n\t\t\tif (target.runEffectiveness(move) > 0) {\r\n\t\t\t\t// Placeholder\r\n\t\t\t\tthis.debug(`collision course super effective buff`);\r\n\t\t\t\treturn this.chainModify([5461, 4096]);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcombattorque: {\r\n\t\tnum: 899,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Combat Torque\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tcometpunch: {\r\n\t\tnum: 4,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 18,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Comet Punch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tmaxMove: {basePower: 100},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcomeuppance: {\r\n\t\tnum: 894,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\tconst lastDamagedBy = pokemon.getLastDamagedBy(true);\r\n\t\t\tif (lastDamagedBy !== undefined) {\r\n\t\t\t\treturn (lastDamagedBy.damage * 1.5) || 1;\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Comeuppance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, failmefirst: 1},\r\n\t\tonTry(source) {\r\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\r\n\t\t\tif (lastDamagedBy === undefined || !lastDamagedBy.thisTurn) return false;\r\n\t\t},\r\n\t\tonModifyTarget(targetRelayVar, source, target, move) {\r\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\r\n\t\t\tif (lastDamagedBy) {\r\n\t\t\t\ttargetRelayVar.target = this.getAtSlot(lastDamagedBy.slot);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"scripted\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tconfide: {\r\n\t\tnum: 590,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Confide\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tboosts: {\r\n\t\t\tspa: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tconfuseray: {\r\n\t\tnum: 109,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Confuse Ray\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'confusion',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tconfusion: {\r\n\t\tnum: 93,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Confusion\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tconstrict: {\r\n\t\tnum: 132,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Constrict\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcontinentalcrush: {\r\n\t\tnum: 632,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Continental Crush\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"rockiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tconversion: {\r\n\t\tnum: 160,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Conversion\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonHit(target) {\r\n\t\t\tconst type = this.dex.moves.get(target.moveSlots[0].id).type;\r\n\t\t\tif (target.hasType(type) || !target.setType(type)) return false;\r\n\t\t\tthis.add('-start', target, 'typechange', type);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tconversion2: {\r\n\t\tnum: 176,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Conversion 2\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (!target.lastMoveUsed) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst possibleTypes = [];\r\n\t\t\tconst attackType = target.lastMoveUsed.type;\r\n\t\t\tfor (const type of this.dex.types.names()) {\r\n\t\t\t\tif (source.hasType(type)) continue;\r\n\t\t\t\tconst typeCheck = this.dex.types.get(type).damageTaken[attackType];\r\n\t\t\t\tif (typeCheck === 2 || typeCheck === 3) {\r\n\t\t\t\t\tpossibleTypes.push(type);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!possibleTypes.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst randomType = this.sample(possibleTypes);\r\n\r\n\t\t\tif (!source.setType(randomType)) return false;\r\n\t\t\tthis.add('-start', source, 'typechange', randomType);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tcopycat: {\r\n\t\tnum: 383,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Copycat\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tlet move: Move | ActiveMove | null = this.lastMove;\r\n\t\t\tif (!move) return;\r\n\r\n\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\t\t\tif (move.flags['failcopycat'] || move.isZ || move.isMax) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(move.id, pokemon);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tcoreenforcer: {\r\n\t\tnum: 687,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Core Enforcer\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.getAbility().isPermanent) return;\r\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) return;\r\n\t\t\ttarget.addVolatile('gastroacid');\r\n\t\t},\r\n\t\tonAfterSubDamage(damage, target) {\r\n\t\t\tif (target.getAbility().isPermanent) return;\r\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) return;\r\n\t\t\ttarget.addVolatile('gastroacid');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dragon\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcorkscrewcrash: {\r\n\t\tnum: 638,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Corkscrew Crash\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"steeliumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tcorrosivegas: {\r\n\t\tnum: 810,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Corrosive Gas\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst item = target.takeItem(source);\r\n\t\t\tif (item) {\r\n\t\t\t\tthis.add('-enditem', target, item.name, '[from] move: Corrosive Gas', '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-fail', target, 'move: Corrosive Gas');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Poison\",\r\n\t},\r\n\tcosmicpower: {\r\n\t\tnum: 322,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Cosmic Power\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 1,\r\n\t\t\tspd: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tcottonguard: {\r\n\t\tnum: 538,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Cotton Guard\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 3,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tcottonspore: {\r\n\t\tnum: 178,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Cotton Spore\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tspe: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tcounter: {\r\n\t\tnum: 68,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\tif (!pokemon.volatiles['counter']) return 0;\r\n\t\t\treturn pokemon.volatiles['counter'].damage || 1;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Counter\",\r\n\t\tpp: 20,\r\n\t\tpriority: -5,\r\n\t\tflags: {contact: 1, protect: 1, failmefirst: 1, noassist: 1, failcopycat: 1},\r\n\t\tbeforeTurnCallback(pokemon) {\r\n\t\t\tpokemon.addVolatile('counter');\r\n\t\t},\r\n\t\tonTry(source) {\r\n\t\t\tif (!source.volatiles['counter']) return false;\r\n\t\t\tif (source.volatiles['counter'].slot === null) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target, source, move) {\r\n\t\t\t\tthis.effectState.slot = null;\r\n\t\t\t\tthis.effectState.damage = 0;\r\n\t\t\t},\r\n\t\t\tonRedirectTargetPriority: -1,\r\n\t\t\tonRedirectTarget(target, source, source2, move) {\r\n\t\t\t\tif (move.id !== 'counter') return;\r\n\t\t\t\tif (source !== this.effectState.target || !this.effectState.slot) return;\r\n\t\t\t\treturn this.getAtSlot(this.effectState.slot);\r\n\t\t\t},\r\n\t\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\t\tif (!source.isAlly(target) && this.getCategory(move) === 'Physical') {\r\n\t\t\t\t\tthis.effectState.slot = source.getSlot();\r\n\t\t\t\t\tthis.effectState.damage = 2 * damage;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"scripted\",\r\n\t\ttype: \"Fighting\",\r\n\t\tmaxMove: {basePower: 75},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcourtchange: {\r\n\t\tnum: 756,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Court Change\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1},\r\n\t\tonHitField(target, source) {\r\n\t\t\tconst sideConditions = [\r\n\t\t\t\t'mist', 'lightscreen', 'reflect', 'spikes', 'safeguard', 'tailwind', 'toxicspikes', 'stealthrock', 'waterpledge', 'firepledge', 'grasspledge', 'stickyweb', 'auroraveil', 'gmaxsteelsurge', 'gmaxcannonade', 'gmaxvinelash', 'gmaxwildfire',\r\n\t\t\t];\r\n\t\t\tlet success = false;\r\n\t\t\tif (this.gameType === \"freeforall\") {\r\n\t\t\t\t// random integer from 1-3 inclusive\r\n\t\t\t\tconst offset = this.random(3) + 1;\r\n\t\t\t\t// the list of all sides in counterclockwise order\r\n\t\t\t\tconst sides = [this.sides[0], this.sides[2]!, this.sides[1], this.sides[3]!];\r\n\t\t\t\tconst temp: {[k: number]: typeof source.side.sideConditions} = {0: {}, 1: {}, 2: {}, 3: {}};\r\n\t\t\t\tfor (const side of sides) {\r\n\t\t\t\t\tfor (const id in side.sideConditions) {\r\n\t\t\t\t\t\tif (!sideConditions.includes(id)) continue;\r\n\t\t\t\t\t\ttemp[side.n][id] = side.sideConditions[id];\r\n\t\t\t\t\t\tdelete side.sideConditions[id];\r\n\t\t\t\t\t\tconst effectName = this.dex.conditions.get(id).name;\r\n\t\t\t\t\t\tthis.add('-sideend', side, effectName, '[silent]');\r\n\t\t\t\t\t\tsuccess = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor (let i = 0; i < 4; i++) {\r\n\t\t\t\t\tconst sourceSideConditions = temp[sides[i].n];\r\n\t\t\t\t\tconst targetSide = sides[(i + offset) % 4]; // the next side in rotation\r\n\t\t\t\t\tfor (const id in sourceSideConditions) {\r\n\t\t\t\t\t\ttargetSide.sideConditions[id] = sourceSideConditions[id];\r\n\t\t\t\t\t\tconst effectName = this.dex.conditions.get(id).name;\r\n\t\t\t\t\t\tlet layers = sourceSideConditions[id].layers || 1;\r\n\t\t\t\t\t\tfor (; layers > 0; layers--) this.add('-sidestart', targetSide, effectName, '[silent]');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst sourceSideConditions = source.side.sideConditions;\r\n\t\t\t\tconst targetSideConditions = source.side.foe.sideConditions;\r\n\t\t\t\tconst sourceTemp: typeof sourceSideConditions = {};\r\n\t\t\t\tconst targetTemp: typeof targetSideConditions = {};\r\n\t\t\t\tfor (const id in sourceSideConditions) {\r\n\t\t\t\t\tif (!sideConditions.includes(id)) continue;\r\n\t\t\t\t\tsourceTemp[id] = sourceSideConditions[id];\r\n\t\t\t\t\tdelete sourceSideConditions[id];\r\n\t\t\t\t\tsuccess = true;\r\n\t\t\t\t}\r\n\t\t\t\tfor (const id in targetSideConditions) {\r\n\t\t\t\t\tif (!sideConditions.includes(id)) continue;\r\n\t\t\t\t\ttargetTemp[id] = targetSideConditions[id];\r\n\t\t\t\t\tdelete targetSideConditions[id];\r\n\t\t\t\t\tsuccess = true;\r\n\t\t\t\t}\r\n\t\t\t\tfor (const id in sourceTemp) {\r\n\t\t\t\t\ttargetSideConditions[id] = sourceTemp[id];\r\n\t\t\t\t}\r\n\t\t\t\tfor (const id in targetTemp) {\r\n\t\t\t\t\tsourceSideConditions[id] = targetTemp[id];\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-swapsideconditions');\r\n\t\t\t}\r\n\t\t\tif (!success) return false;\r\n\t\t\tthis.add('-activate', source, 'move: Court Change');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tcovet: {\r\n\t\tnum: 343,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Covet\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, failmefirst: 1, noassist: 1, failcopycat: 1},\r\n\t\tonAfterHit(target, source, move) {\r\n\t\t\tif (source.item || source.volatiles['gem']) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst yourItem = target.takeItem(source);\r\n\t\t\tif (!yourItem) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t!this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem) ||\r\n\t\t\t\t!source.setItem(yourItem)\r\n\t\t\t) {\r\n\t\t\t\ttarget.item = yourItem.id; // bypass setItem so we don't break choicelock or anything\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-item', source, yourItem, '[from] move: Covet', '[of] ' + target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tcrabhammer: {\r\n\t\tnum: 152,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Crabhammer\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcraftyshield: {\r\n\t\tnum: 578,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Crafty Shield\",\r\n\t\tpp: 10,\r\n\t\tpriority: 3,\r\n\t\tflags: {},\r\n\t\tsideCondition: 'craftyshield',\r\n\t\tonTry() {\r\n\t\t\treturn !!this.queue.willAct();\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonSideStart(target, source) {\r\n\t\t\t\tthis.add('-singleturn', source, 'Crafty Shield');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (['self', 'all'].includes(move.target) || move.category !== 'Status') return;\r\n\t\t\t\tthis.add('-activate', target, 'move: Crafty Shield');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tcrosschop: {\r\n\t\tnum: 238,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Cross Chop\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tcrosspoison: {\r\n\t\tnum: 440,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Cross Poison\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\tcritRatio: 2,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tcrunch: {\r\n\t\tnum: 242,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Crunch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcrushclaw: {\r\n\t\tnum: 306,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Crush Claw\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tcrushgrip: {\r\n\t\tnum: 462,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst hp = target.hp;\r\n\t\t\tconst maxHP = target.maxhp;\r\n\t\t\tconst bp = Math.floor(Math.floor((120 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1;\r\n\t\t\tthis.debug('BP for ' + hp + '/' + maxHP + \" HP: \" + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Crush Grip\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 190},\r\n\t\tmaxMove: {basePower: 140},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcurse: {\r\n\t\tnum: 174,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Curse\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1},\r\n\t\tvolatileStatus: 'curse',\r\n\t\tonModifyMove(move, source, target) {\r\n\t\t\tif (!source.hasType('Ghost')) {\r\n\t\t\t\tmove.target = move.nonGhostTarget as MoveTarget;\r\n\t\t\t} else if (source.isAlly(target)) {\r\n\t\t\t\tmove.target = 'randomNormal';\r\n\t\t\t}\r\n\t\t},\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (!source.hasType('Ghost')) {\r\n\t\t\t\tdelete move.volatileStatus;\r\n\t\t\t\tdelete move.onHit;\r\n\t\t\t\tmove.self = {boosts: {spe: -1, atk: 1, def: 1}};\r\n\t\t\t} else if (move.volatileStatus && target.volatiles['curse']) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tthis.directDamage(source.maxhp / 2, source, source);\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon, source) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Curse', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 12,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tthis.damage(pokemon.baseMaxhp / 4);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\tnonGhostTarget: \"self\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {effect: 'curse'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tcut: {\r\n\t\tnum: 15,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Cut\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdarkestlariat: {\r\n\t\tnum: 663,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Darkest Lariat\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tignoreEvasion: true,\r\n\t\tignoreDefensive: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdarkpulse: {\r\n\t\tnum: 399,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dark Pulse\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, pulse: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdarkvoid: {\r\n\t\tnum: 464,\r\n\t\taccuracy: 50,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Dark Void\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'slp',\r\n\t\tonTry(source, target, move) {\r\n\t\t\tif (source.species.name === 'Darkrai' || move.hasBounced) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-fail', source, 'move: Dark Void');\r\n\t\t\tthis.hint(\"Only a Pokemon whose form is Darkrai can use this move.\");\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdazzlinggleam: {\r\n\t\tnum: 605,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dazzling Gleam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdecorate: {\r\n\t\tnum: 777,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Decorate\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {allyanim: 1},\r\n\t\tsecondary: null,\r\n\t\tboosts: {\r\n\t\t\tatk: 2,\r\n\t\t\tspa: 2,\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t},\r\n\tdefendorder: {\r\n\t\tnum: 455,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Defend Order\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 1,\r\n\t\t\tspd: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdefensecurl: {\r\n\t\tnum: 111,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Defense Curl\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 1,\r\n\t\t},\r\n\t\tvolatileStatus: 'defensecurl',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonRestart: () => null,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tdefog: {\r\n\t\tnum: 432,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Defog\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tlet success = false;\r\n\t\t\tif (!target.volatiles['substitute'] || move.infiltrates) success = !!this.boost({evasion: -1});\r\n\t\t\tconst removeTarget = [\r\n\t\t\t\t'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge',\r\n\t\t\t];\r\n\t\t\tconst removeAll = [\r\n\t\t\t\t'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge',\r\n\t\t\t];\r\n\t\t\tfor (const targetCondition of removeTarget) {\r\n\t\t\t\tif (target.side.removeSideCondition(targetCondition)) {\r\n\t\t\t\t\tif (!removeAll.includes(targetCondition)) continue;\r\n\t\t\t\t\tthis.add('-sideend', target.side, this.dex.conditions.get(targetCondition).name, '[from] move: Defog', '[of] ' + source);\r\n\t\t\t\t\tsuccess = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (const sideCondition of removeAll) {\r\n\t\t\t\tif (source.side.removeSideCondition(sideCondition)) {\r\n\t\t\t\t\tthis.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Defog', '[of] ' + source);\r\n\t\t\t\t\tsuccess = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdestinybond: {\r\n\t\tnum: 194,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Destiny Bond\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1, noassist: 1, failcopycat: 1},\r\n\t\tvolatileStatus: 'destinybond',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !pokemon.removeVolatile('destinybond');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singlemove', pokemon, 'Destiny Bond');\r\n\t\t\t},\r\n\t\t\tonFaint(target, source, effect) {\r\n\t\t\t\tif (!source || !effect || target.isAlly(source)) return;\r\n\t\t\t\tif (effect.effectType === 'Move' && !effect.flags['futuremove']) {\r\n\t\t\t\t\tif (source.volatiles['dynamax']) {\r\n\t\t\t\t\t\tthis.add('-hint', \"Dynamaxed Pok\u00E9mon are immune to Destiny Bond.\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Destiny Bond');\r\n\t\t\t\t\tsource.faint();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: -1,\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tif (move.id === 'destinybond') return;\r\n\t\t\t\tthis.debug('removing Destiny Bond before attack');\r\n\t\t\t\tpokemon.removeVolatile('destinybond');\r\n\t\t\t},\r\n\t\t\tonMoveAborted(pokemon, target, move) {\r\n\t\t\t\tpokemon.removeVolatile('destinybond');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {effect: 'redirect'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdetect: {\r\n\t\tnum: 197,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Detect\",\r\n\t\tpp: 5,\r\n\t\tpriority: 4,\r\n\t\tflags: {noassist: 1, failcopycat: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'protect',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdevastatingdrake: {\r\n\t\tnum: 652,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Devastating Drake\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"dragoniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdiamondstorm: {\r\n\t\tnum: 591,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Diamond Storm\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: 2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\t// Sheer Force negates the self even though it is not secondary\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdig: {\r\n\t\tnum: 91,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dig\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonImmunity(type, pokemon) {\r\n\t\t\t\tif (type === 'sandstorm' || type === 'hail') return false;\r\n\t\t\t},\r\n\t\t\tonInvulnerability(target, source, move) {\r\n\t\t\t\tif (['earthquake', 'magnitude'].includes(move.id)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (move.id === 'earthquake' || move.id === 'magnitude') {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdisable: {\r\n\t\tnum: 50,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Disable\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'disable',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (!target.lastMove || target.lastMove.isZ || target.lastMove.isMax || target.lastMove.id === 'struggle') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\r\n\t\t\tonStart(pokemon, source, effect) {\r\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\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.queue.willMove(pokemon) ||\r\n\t\t\t\t\t(pokemon === this.activePokemon && this.activeMove && !this.activeMove.isExternal)\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.effectState.duration--;\r\n\t\t\t\t}\r\n\t\t\t\tif (!pokemon.lastMove) {\r\n\t\t\t\t\tthis.debug(`Pokemon hasn't moved yet`);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (moveSlot.id === pokemon.lastMove.id) {\r\n\t\t\t\t\t\tif (!moveSlot.pp) {\r\n\t\t\t\t\t\t\tthis.debug('Move out of PP');\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (effect.effectType === 'Ability') {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Disable', pokemon.lastMove.name, '[from] ability: Cursed Body', '[of] ' + source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Disable', pokemon.lastMove.name);\r\n\t\t\t\t}\r\n\t\t\t\tthis.effectState.move = pokemon.lastMove.id;\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 17,\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Disable');\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 7,\r\n\t\t\tonBeforeMove(attacker, defender, move) {\r\n\t\t\t\tif (!move.isZ && move.id === this.effectState.move) {\r\n\t\t\t\t\tthis.add('cant', attacker, 'Disable', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (moveSlot.id === this.effectState.move) {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdisarmingvoice: {\r\n\t\tnum: 574,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Disarming Voice\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tdischarge: {\r\n\t\tnum: 435,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Discharge\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdireclaw: {\r\n\t\tnum: 827,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Dire Claw\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tonHit(target, source) {\r\n\t\t\t\tconst result = this.random(3);\r\n\t\t\t\tif (result === 0) {\r\n\t\t\t\t\ttarget.trySetStatus('psn', source);\r\n\t\t\t\t} else if (result === 1) {\r\n\t\t\t\t\ttarget.trySetStatus('par', source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget.trySetStatus('slp', source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t},\r\n\tdive: {\r\n\t\tnum: 291,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dive\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, allyanim: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\r\n\t\t},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (attacker.hasAbility('gulpmissile') && attacker.species.name === 'Cramorant' && !attacker.transformed) {\r\n\t\t\t\tconst forme = attacker.hp <= attacker.maxhp / 2 ? 'cramorantgorging' : 'cramorantgulping';\r\n\t\t\t\tattacker.formeChange(forme, move);\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonImmunity(type, pokemon) {\r\n\t\t\t\tif (type === 'sandstorm' || type === 'hail') return false;\r\n\t\t\t},\r\n\t\t\tonInvulnerability(target, source, move) {\r\n\t\t\t\tif (['surf', 'whirlpool'].includes(move.id)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (move.id === 'surf' || move.id === 'whirlpool') {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdizzypunch: {\r\n\t\tnum: 146,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Dizzy Punch\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tdoodle: {\r\n\t\tnum: 867,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Doodle\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tlet success: boolean | null = false;\r\n\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\tif (pokemon.ability === target.ability) continue;\r\n\t\t\t\tconst oldAbility = pokemon.setAbility(target.ability);\r\n\t\t\t\tif (oldAbility) {\r\n\t\t\t\t\tthis.add('-ability', pokemon, target.getAbility().name, '[from] move: Doodle');\r\n\t\t\t\t\tsuccess = true;\r\n\t\t\t\t} else if (!success && oldAbility === null) {\r\n\t\t\t\t\tsuccess = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!success) {\r\n\t\t\t\tif (success === false) {\r\n\t\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\t}\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tdoomdesire: {\r\n\t\tnum: 353,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Doom Desire\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {futuremove: 1},\r\n\t\tonTry(source, target) {\r\n\t\t\tif (!target.side.addSlotCondition(target, 'futuremove')) return false;\r\n\t\t\tObject.assign(target.side.slotConditions[target.position]['futuremove'], {\r\n\t\t\t\tmove: 'doomdesire',\r\n\t\t\t\tsource: source,\r\n\t\t\t\tmoveData: {\r\n\t\t\t\t\tid: 'doomdesire',\r\n\t\t\t\t\tname: \"Doom Desire\",\r\n\t\t\t\t\taccuracy: 100,\r\n\t\t\t\t\tbasePower: 140,\r\n\t\t\t\t\tcategory: \"Special\",\r\n\t\t\t\t\tpriority: 0,\r\n\t\t\t\t\tflags: {futuremove: 1},\r\n\t\t\t\t\teffectType: 'Move',\r\n\t\t\t\t\ttype: 'Steel',\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tthis.add('-start', source, 'Doom Desire');\r\n\t\t\treturn this.NOT_FAIL;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdoubleedge: {\r\n\t\tnum: 38,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Double-Edge\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [33, 100],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdoublehit: {\r\n\t\tnum: 458,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Double Hit\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 120},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdoubleironbash: {\r\n\t\tnum: 742,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Double Iron Bash\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tmaxMove: {basePower: 140},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdoublekick: {\r\n\t\tnum: 24,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Double Kick\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tmaxMove: {basePower: 80},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdoubleshock: {\r\n\t\tnum: 892,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Double Shock\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTryMove(pokemon, target, move) {\r\n\t\t\tif (pokemon.hasType('Electric')) return;\r\n\t\t\tthis.add('-fail', pokemon, 'move: Double Shock');\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tpokemon.setType(pokemon.getTypes(true).map(type => type === \"Electric\" ? \"???\" : type));\r\n\t\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.getTypes().join('/'), '[from] move: Double Shock');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdoubleslap: {\r\n\t\tnum: 3,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Double Slap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tdoubleteam: {\r\n\t\tnum: 104,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Double Team\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tevasion: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdracometeor: {\r\n\t\tnum: 434,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Draco Meteor\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdragonascent: {\r\n\t\tnum: 620,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dragon Ascent\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdragonbreath: {\r\n\t\tnum: 225,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dragon Breath\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdragonclaw: {\r\n\t\tnum: 337,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dragon Claw\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdragondance: {\r\n\t\tnum: 349,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Dragon Dance\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, dance: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tspe: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Dragon\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdragondarts: {\r\n\t\tnum: 751,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dragon Darts\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, noparentalbond: 1},\r\n\t\tmultihit: 2,\r\n\t\tsmartTarget: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tmaxMove: {basePower: 130},\r\n\t},\r\n\tdragonenergy: {\r\n\t\tnum: 820,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst bp = move.basePower * pokemon.hp / pokemon.maxhp;\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dragon Energy\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\tdragonhammer: {\r\n\t\tnum: 692,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Dragon Hammer\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdragonpulse: {\r\n\t\tnum: 406,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dragon Pulse\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, pulse: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tdragonrage: {\r\n\t\tnum: 82,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamage: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Dragon Rage\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdragonrush: {\r\n\t\tnum: 407,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dragon Rush\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdragontail: {\r\n\t\tnum: 525,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dragon Tail\",\r\n\t\tpp: 10,\r\n\t\tpriority: -6,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, noassist: 1, failcopycat: 1},\r\n\t\tforceSwitch: true,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdrainingkiss: {\r\n\t\tnum: 577,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Draining Kiss\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [3, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tdrainpunch: {\r\n\t\tnum: 409,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Drain Punch\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdreameater: {\r\n\t\tnum: 138,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dream Eater\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tonTryImmunity(target) {\r\n\t\t\treturn target.status === 'slp' || target.hasAbility('comatose');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tdrillpeck: {\r\n\t\tnum: 65,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Drill Peck\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdrillrun: {\r\n\t\tnum: 529,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Drill Run\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdrumbeating: {\r\n\t\tnum: 778,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Drum Beating\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tdualchop: {\r\n\t\tnum: 530,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Dual Chop\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tdualwingbeat: {\r\n\t\tnum: 814,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dual Wingbeat\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tmaxMove: {basePower: 130},\r\n\t},\r\n\tdynamaxcannon: {\r\n\t\tnum: 744,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Dynamax Cannon\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, failencore: 1, nosleeptalk: 1, noparentalbond: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\tdynamicpunch: {\r\n\t\tnum: 223,\r\n\t\taccuracy: 50,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Dynamic Punch\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tearthpower: {\r\n\t\tnum: 414,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Earth Power\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tearthquake: {\r\n\t\tnum: 89,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Earthquake\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\techoedvoice: {\r\n\t\tnum: 497,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tlet bp = move.basePower;\r\n\t\t\tif (this.field.pseudoWeather.echoedvoice) {\r\n\t\t\t\tbp = move.basePower * this.field.pseudoWeather.echoedvoice.multiplier;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + move.basePower);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Echoed Voice\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tonTry() {\r\n\t\t\tthis.field.addPseudoWeather('echoedvoice');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonFieldStart() {\r\n\t\t\t\tthis.effectState.multiplier = 1;\r\n\t\t\t},\r\n\t\t\tonFieldRestart() {\r\n\t\t\t\tif (this.effectState.duration !== 2) {\r\n\t\t\t\t\tthis.effectState.duration = 2;\r\n\t\t\t\t\tif (this.effectState.multiplier < 5) {\r\n\t\t\t\t\t\tthis.effectState.multiplier++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\teerieimpulse: {\r\n\t\tnum: 598,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Eerie Impulse\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tspa: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\teeriespell: {\r\n\t\tnum: 826,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Eerie Spell\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tonHit(target) {\r\n\t\t\t\tif (!target.hp) return;\r\n\t\t\t\tlet move: Move | ActiveMove | null = target.lastMove;\r\n\t\t\t\tif (!move || move.isZ) return;\r\n\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\r\n\t\t\t\tconst ppDeducted = target.deductPP(move.id, 3);\r\n\t\t\t\tif (!ppDeducted) return;\r\n\t\t\t\tthis.add('-activate', target, 'move: Eerie Spell', move.name, ppDeducted);\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\teggbomb: {\r\n\t\tnum: 121,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Egg Bomb\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\telectricterrain: {\r\n\t\tnum: 604,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Electric Terrain\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tterrain: 'electricterrain',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasItem('terrainextender')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonSetStatus(status, target, source, effect) {\r\n\t\t\t\tif (status.id === 'slp' && target.isGrounded() && !target.isSemiInvulnerable()) {\r\n\t\t\t\t\tif (effect.id === 'yawn' || (effect.effectType === 'Move' && !effect.secondaries)) {\r\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Electric Terrain');\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTryAddVolatile(status, target) {\r\n\t\t\t\tif (!target.isGrounded() || target.isSemiInvulnerable()) return;\r\n\t\t\t\tif (status.id === 'yawn') {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Electric Terrain');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 6,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tif (move.type === 'Electric' && attacker.isGrounded() && !attacker.isSemiInvulnerable()) {\r\n\t\t\t\t\tthis.debug('electric terrain boost');\r\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldStart(field, source, effect) {\r\n\t\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Electric Terrain', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Electric Terrain');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 7,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Electric Terrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\telectrify: {\r\n\t\tnum: 582,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Electrify\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, allyanim: 1},\r\n\t\tvolatileStatus: 'electrify',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (!this.queue.willMove(target) && target.activeTurns) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'move: Electrify');\r\n\t\t\t},\r\n\t\t\tonModifyTypePriority: -2,\r\n\t\t\tonModifyType(move) {\r\n\t\t\t\tif (move.id !== 'struggle') {\r\n\t\t\t\t\tthis.debug('Electrify making move type electric');\r\n\t\t\t\t\tmove.type = 'Electric';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\telectroball: {\r\n\t\tnum: 486,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tlet ratio = Math.floor(pokemon.getStat('spe') / target.getStat('spe'));\r\n\t\t\tif (!isFinite(ratio)) ratio = 0;\r\n\t\t\tconst bp = [40, 60, 80, 120, 150][Math.min(ratio, 4)];\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Electro Ball\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\telectrodrift: {\r\n\t\tnum: 879,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Electro Drift\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, source, target, move) {\r\n\t\t\tif (target.runEffectiveness(move) > 0) {\r\n\t\t\t\t// Placeholder\r\n\t\t\t\tthis.debug(`electro drift super effective buff`);\r\n\t\t\t\treturn this.chainModify([5461, 4096]);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\telectroweb: {\r\n\t\tnum: 527,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 55,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Electroweb\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tembargo: {\r\n\t\tnum: 373,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Embargo\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'embargo',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Embargo');\r\n\t\t\t\tthis.singleEvent('End', pokemon.getItem(), pokemon.itemState, pokemon);\r\n\t\t\t},\r\n\t\t\t// Item suppression implemented in Pokemon.ignoringItem() within sim/pokemon.js\r\n\t\t\tonResidualOrder: 21,\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Embargo');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tember: {\r\n\t\tnum: 52,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Ember\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tencore: {\r\n\t\tnum: 227,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Encore\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, failencore: 1},\r\n\t\tvolatileStatus: 'encore',\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\r\n\t\t\tnoCopy: true, // doesn't get copied by Z-Baton Pass\r\n\t\t\tonStart(target) {\r\n\t\t\t\tlet move: Move | ActiveMove | null = target.lastMove;\r\n\t\t\t\tif (!move || target.volatiles['dynamax']) return false;\r\n\r\n\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\t\t\t\tconst moveIndex = target.moves.indexOf(move.id);\r\n\t\t\t\tif (move.isZ || move.flags['failencore'] || !target.moveSlots[moveIndex] || target.moveSlots[moveIndex].pp <= 0) {\r\n\t\t\t\t\t// it failed\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.effectState.move = move.id;\r\n\t\t\t\tthis.add('-start', target, 'Encore');\r\n\t\t\t\tif (!this.queue.willMove(target)) {\r\n\t\t\t\t\tthis.effectState.duration++;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonOverrideAction(pokemon, target, move) {\r\n\t\t\t\tif (move.id !== this.effectState.move) return this.effectState.move;\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 16,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (target.moves.includes(this.effectState.move) &&\r\n\t\t\t\t\ttarget.moveSlots[target.moves.indexOf(this.effectState.move)].pp <= 0) {\r\n\t\t\t\t\t// early termination if you run out of PP\r\n\t\t\t\t\ttarget.removeVolatile('encore');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Encore');\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tif (!this.effectState.move || !pokemon.hasMove(this.effectState.move)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (moveSlot.id !== this.effectState.move) {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tendeavor: {\r\n\t\tnum: 283,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\treturn target.getUndynamaxedHP() - pokemon.hp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Endeavor\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, noparentalbond: 1},\r\n\t\tonTryImmunity(target, pokemon) {\r\n\t\t\treturn pokemon.hp < target.hp;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tendure: {\r\n\t\tnum: 203,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Endure\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {noassist: 1, failcopycat: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'endure',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'move: Endure');\r\n\t\t\t},\r\n\t\t\tonDamagePriority: -10,\r\n\t\t\tonDamage(damage, target, source, effect) {\r\n\t\t\t\tif (effect?.effectType === 'Move' && damage >= target.hp) {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Endure');\r\n\t\t\t\t\treturn target.hp - 1;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tenergyball: {\r\n\t\tnum: 412,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Energy Ball\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tentrainment: {\r\n\t\tnum: 494,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Entrainment\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tif (target === source || target.volatiles['dynamax']) return false;\r\n\r\n\t\t\tconst additionalBannedSourceAbilities = [\r\n\t\t\t\t// Zen Mode included here for compatability with Gen 5-6\r\n\t\t\t\t'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode',\r\n\t\t\t];\r\n\t\t\tif (\r\n\t\t\t\ttarget.ability === source.ability ||\r\n\t\t\t\ttarget.getAbility().isPermanent || target.ability === 'truant' ||\r\n\t\t\t\tsource.getAbility().isPermanent || additionalBannedSourceAbilities.includes(source.ability)\r\n\t\t\t) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst oldAbility = target.setAbility(source.ability);\r\n\t\t\tif (oldAbility) {\r\n\t\t\t\tthis.add('-ability', target, target.getAbility().name, '[from] move: Entrainment');\r\n\t\t\t\tif (!target.isAlly(source)) target.volatileStaleness = 'external';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn oldAbility as false | null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\teruption: {\r\n\t\tnum: 284,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst bp = move.basePower * pokemon.hp / pokemon.maxhp;\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Eruption\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tesperwing: {\r\n\t\tnum: 840,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Esper Wing\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\teternabeam: {\r\n\t\tnum: 795,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 160,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Eternabeam\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\texpandingforce: {\r\n\t\tnum: 797,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Expanding Force\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, source) {\r\n\t\t\tif (this.field.isTerrain('psychicterrain') && source.isGrounded()) {\r\n\t\t\t\tthis.debug('terrain buff');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move, source, target) {\r\n\t\t\tif (this.field.isTerrain('psychicterrain') && source.isGrounded()) {\r\n\t\t\t\tmove.target = 'allAdjacentFoes';\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\texplosion: {\r\n\t\tnum: 153,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 250,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Explosion\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, noparentalbond: 1},\r\n\t\tselfdestruct: \"always\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\textrasensory: {\r\n\t\tnum: 326,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Extrasensory\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\textremeevoboost: {\r\n\t\tnum: 702,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Extreme Evoboost\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"eeviumz\",\r\n\t\tboosts: {\r\n\t\t\tatk: 2,\r\n\t\t\tdef: 2,\r\n\t\t\tspa: 2,\r\n\t\t\tspd: 2,\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\textremespeed: {\r\n\t\tnum: 245,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Extreme Speed\",\r\n\t\tpp: 5,\r\n\t\tpriority: 2,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfacade: {\r\n\t\tnum: 263,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Facade\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, pokemon) {\r\n\t\t\tif (pokemon.status && pokemon.status !== 'slp') {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tfairylock: {\r\n\t\tnum: 587,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Fairy Lock\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1, bypasssub: 1},\r\n\t\tpseudoWeather: 'fairylock',\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonFieldStart(target) {\r\n\t\t\t\tthis.add('-fieldactivate', 'move: Fairy Lock');\r\n\t\t\t},\r\n\t\t\tonTrapPokemon(pokemon) {\r\n\t\t\t\tpokemon.tryTrap();\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfairywind: {\r\n\t\tnum: 584,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fairy Wind\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfakeout: {\r\n\t\tnum: 252,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fake Out\",\r\n\t\tpp: 10,\r\n\t\tpriority: 3,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.activeMoveActions > 1) {\r\n\t\t\t\tthis.hint(\"Fake Out only works on your first turn out.\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tfaketears: {\r\n\t\tnum: 313,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Fake Tears\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tspd: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tfalsesurrender: {\r\n\t\tnum: 793,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"False Surrender\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\tfalseswipe: {\r\n\t\tnum: 206,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"False Swipe\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonDamagePriority: -20,\r\n\t\tonDamage(damage, target, source, effect) {\r\n\t\t\tif (damage >= target.hp) return target.hp - 1;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfeatherdance: {\r\n\t\tnum: 297,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Feather Dance\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, dance: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfeint: {\r\n\t\tnum: 364,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Feint\",\r\n\t\tpp: 10,\r\n\t\tpriority: 2,\r\n\t\tflags: {mirror: 1, noassist: 1, failcopycat: 1},\r\n\t\tbreaksProtect: true,\r\n\t\t// Breaking protection implemented in scripts.js\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfeintattack: {\r\n\t\tnum: 185,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Feint Attack\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfellstinger: {\r\n\t\tnum: 565,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fell Stinger\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\r\n\t\t\tif (!target || target.fainted || target.hp <= 0) this.boost({atk: 3}, pokemon, pokemon, move);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfierydance: {\r\n\t\tnum: 552,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fiery Dance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, dance: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfierywrath: {\r\n\t\tnum: 822,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fiery Wrath\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\tfilletaway: {\r\n\t\tnum: 868,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Fillet Away\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.hp <= source.maxhp / 2 || source.maxhp === 1) return false;\r\n\t\t},\r\n\t\tonTryHit(pokemon, target, move) {\r\n\t\t\tif (!this.boost(move.boosts as SparseBoostsTable)) return null;\r\n\t\t\tdelete move.boosts;\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tthis.directDamage(pokemon.maxhp / 2);\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tatk: 2,\r\n\t\t\tspa: 2,\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tfinalgambit: {\r\n\t\tnum: 515,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\tconst damage = pokemon.hp;\r\n\t\t\tpokemon.faint();\r\n\t\t\treturn damage;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Final Gambit\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, noparentalbond: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tfireblast: {\r\n\t\tnum: 126,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fire Blast\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfirefang: {\r\n\t\tnum: 424,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fire Fang\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondaries: [\r\n\t\t\t{\r\n\t\t\t\tchance: 10,\r\n\t\t\t\tstatus: 'brn',\r\n\t\t\t}, {\r\n\t\t\t\tchance: 10,\r\n\t\t\t\tvolatileStatus: 'flinch',\r\n\t\t\t},\r\n\t\t],\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfirelash: {\r\n\t\tnum: 680,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fire Lash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tfirepledge: {\r\n\t\tnum: 519,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tbasePowerCallback(target, source, move) {\r\n\t\t\tif (['grasspledge', 'waterpledge'].includes(move.sourceEffect)) {\r\n\t\t\t\tthis.add('-combine');\r\n\t\t\t\treturn 150;\r\n\t\t\t}\r\n\t\t\treturn 80;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fire Pledge\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1, pledgecombo: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tfor (const action of this.queue.list as MoveAction[]) {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!action.move || !action.pokemon?.isActive ||\r\n\t\t\t\t\taction.pokemon.fainted || action.maxMove || action.zmove\r\n\t\t\t\t) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (action.pokemon.isAlly(source) && ['grasspledge', 'waterpledge'].includes(action.move.id)) {\r\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\r\n\t\t\t\t\tthis.add('-waiting', source, action.pokemon);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move) {\r\n\t\t\tif (move.sourceEffect === 'waterpledge') {\r\n\t\t\t\tmove.type = 'Water';\r\n\t\t\t\tmove.forceSTAB = true;\r\n\t\t\t\tmove.self = {sideCondition: 'waterpledge'};\r\n\t\t\t}\r\n\t\t\tif (move.sourceEffect === 'grasspledge') {\r\n\t\t\t\tmove.type = 'Fire';\r\n\t\t\t\tmove.forceSTAB = true;\r\n\t\t\t\tmove.sideCondition = 'firepledge';\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'Fire Pledge');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 5,\r\n\t\t\tonResidualSubOrder: 1,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tif (!pokemon.hasType('Fire')) this.damage(pokemon.baseMaxhp / 8, pokemon);\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 8,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'Fire Pledge');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfirepunch: {\r\n\t\tnum: 7,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fire Punch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tfirespin: {\r\n\t\tnum: 83,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fire Spin\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfirstimpression: {\r\n\t\tnum: 660,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"First Impression\",\r\n\t\tpp: 10,\r\n\t\tpriority: 2,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.activeMoveActions > 1) {\r\n\t\t\t\tthis.hint(\"First Impression only works on your first turn out.\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tfishiousrend: {\r\n\t\tnum: 755,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) {\r\n\t\t\t\tthis.debug('Fishious Rend damage boost');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\tthis.debug('Fishious Rend NOT boosted');\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Fishious Rend\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\tfissure: {\r\n\t\tnum: 90,\r\n\t\taccuracy: 30,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fissure\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tohko: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tflail: {\r\n\t\tnum: 175,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1);\r\n\t\t\tlet bp;\r\n\t\t\tif (ratio < 2) {\r\n\t\t\t\tbp = 200;\r\n\t\t\t} else if (ratio < 5) {\r\n\t\t\t\tbp = 150;\r\n\t\t\t} else if (ratio < 10) {\r\n\t\t\t\tbp = 100;\r\n\t\t\t} else if (ratio < 17) {\r\n\t\t\t\tbp = 80;\r\n\t\t\t} else if (ratio < 33) {\r\n\t\t\t\tbp = 40;\r\n\t\t\t} else {\r\n\t\t\t\tbp = 20;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flail\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tflameburst: {\r\n\t\tnum: 481,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Flame Burst\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tfor (const ally of target.adjacentAllies()) {\r\n\t\t\t\tthis.damage(ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst'));\r\n\t\t\t}\r\n\t\t},\r\n\t\tonAfterSubDamage(damage, target, source, move) {\r\n\t\t\tfor (const ally of target.adjacentAllies()) {\r\n\t\t\t\tthis.damage(ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst'));\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflamecharge: {\r\n\t\tnum: 488,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flame Charge\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tflamewheel: {\r\n\t\tnum: 172,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flame Wheel\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, defrost: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflamethrower: {\r\n\t\tnum: 53,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Flamethrower\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflareblitz: {\r\n\t\tnum: 394,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flare Blitz\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, defrost: 1},\r\n\t\trecoil: [33, 100],\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tflash: {\r\n\t\tnum: 148,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Flash\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\taccuracy: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflashcannon: {\r\n\t\tnum: 430,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Flash Cannon\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflatter: {\r\n\t\tnum: 260,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Flatter\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tvolatileStatus: 'confusion',\r\n\t\tboosts: {\r\n\t\t\tspa: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfleurcannon: {\r\n\t\tnum: 705,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Fleur Cannon\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfling: {\r\n\t\tnum: 374,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fling\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, allyanim: 1, noparentalbond: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tif (source.ignoringItem()) return false;\r\n\t\t\tconst item = source.getItem();\r\n\t\t\tif (!this.singleEvent('TakeItem', item, source.itemState, source, source, move, item)) return false;\r\n\t\t\tif (!item.fling) return false;\r\n\t\t\tmove.basePower = item.fling.basePower;\r\n\t\t\tthis.debug('BP: ' + move.basePower);\r\n\t\t\tif (item.isBerry) {\r\n\t\t\t\tmove.onHit = function (foe) {\r\n\t\t\t\t\tif (this.singleEvent('Eat', item, null, foe, null, null)) {\r\n\t\t\t\t\t\tthis.runEvent('EatItem', foe, null, null, item);\r\n\t\t\t\t\t\tif (item.id === 'leppaberry') foe.staleness = 'external';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (item.onEat) foe.ateBerry = true;\r\n\t\t\t\t};\r\n\t\t\t} else if (item.fling.effect) {\r\n\t\t\t\tmove.onHit = item.fling.effect;\r\n\t\t\t} else {\r\n\t\t\t\tif (!move.secondaries) move.secondaries = [];\r\n\t\t\t\tif (item.fling.status) {\r\n\t\t\t\t\tmove.secondaries.push({status: item.fling.status});\r\n\t\t\t\t} else if (item.fling.volatileStatus) {\r\n\t\t\t\t\tmove.secondaries.push({volatileStatus: item.fling.volatileStatus});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsource.addVolatile('fling');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonUpdate(pokemon) {\r\n\t\t\t\tconst item = pokemon.getItem();\r\n\t\t\t\tpokemon.setItem('');\r\n\t\t\t\tpokemon.lastItem = item.id;\r\n\t\t\t\tpokemon.usedItemThisTurn = true;\r\n\t\t\t\tthis.add('-enditem', pokemon, item.name, '[from] move: Fling');\r\n\t\t\t\tthis.runEvent('AfterUseItem', pokemon, null, null, item);\r\n\t\t\t\tpokemon.removeVolatile('fling');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tflipturn: {\r\n\t\tnum: 812,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flip Turn\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tselfSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\tfloatyfall: {\r\n\t\tnum: 731,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Floaty Fall\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, gravity: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfloralhealing: {\r\n\t\tnum: 666,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Floral Healing\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, heal: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tlet success = false;\r\n\t\t\tif (this.field.isTerrain('grassyterrain')) {\r\n\t\t\t\tsuccess = !!this.heal(this.modify(target.baseMaxhp, 0.667));\r\n\t\t\t} else {\r\n\t\t\t\tsuccess = !!this.heal(Math.ceil(target.baseMaxhp * 0.5));\r\n\t\t\t}\r\n\t\t\tif (success && !target.isAlly(source)) {\r\n\t\t\t\ttarget.staleness = 'external';\r\n\t\t\t}\r\n\t\t\tif (!success) {\r\n\t\t\t\tthis.add('-fail', target, 'heal');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflowershield: {\r\n\t\tnum: 579,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Flower Shield\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {distance: 1},\r\n\t\tonHitField(t, source, move) {\r\n\t\t\tconst targets: Pokemon[] = [];\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tpokemon.hasType('Grass') &&\r\n\t\t\t\t\t(!pokemon.volatiles['maxguard'] ||\r\n\t\t\t\t\t this.runEvent('TryHit', pokemon, source, move))\r\n\t\t\t\t ) {\r\n\t\t\t\t\t// This move affects every Grass-type Pokemon in play.\r\n\t\t\t\t\ttargets.push(pokemon);\r\n\t\t\t\t }\r\n\t\t\t}\r\n\t\t\tlet success = false;\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tsuccess = this.boost({def: 1}, target, source, move) || success;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tflowertrick: {\r\n\t\tnum: 870,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flower Trick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\twillCrit: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tfly: {\r\n\t\tnum: 19,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fly\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\r\n\t\t},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonInvulnerability(target, source, move) {\r\n\t\t\t\tif (['gust', 'twister', 'skyuppercut', 'thunder', 'hurricane', 'smackdown', 'thousandarrows'].includes(move.id)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (move.id === 'gust' || move.id === 'twister') {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tflyingpress: {\r\n\t\tnum: 560,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Flying Press\",\r\n\t\tpp: 10,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nonsky: 1},\r\n\t\tonEffectiveness(typeMod, target, type, move) {\r\n\t\t\treturn typeMod + this.dex.getEffectiveness('Flying', type);\r\n\t\t},\r\n\t\tpriority: 0,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {basePower: 170},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tfocusblast: {\r\n\t\tnum: 411,\r\n\t\taccuracy: 70,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Focus Blast\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfocusenergy: {\r\n\t\tnum: 116,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Focus Energy\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'focusenergy',\r\n\t\tcondition: {\r\n\t\t\tonStart(target, source, effect) {\r\n\t\t\t\tif (effect?.id === 'zpower') {\r\n\t\t\t\t\tthis.add('-start', target, 'move: Focus Energy', '[zeffect]');\r\n\t\t\t\t} else if (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) {\r\n\t\t\t\t\tthis.add('-start', target, 'move: Focus Energy', '[silent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', target, 'move: Focus Energy');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifyCritRatio(critRatio) {\r\n\t\t\t\treturn critRatio + 2;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfocuspunch: {\r\n\t\tnum: 264,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Focus Punch\",\r\n\t\tpp: 20,\r\n\t\tpriority: -3,\r\n\t\tflags: {contact: 1, protect: 1, punch: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1},\r\n\t\tpriorityChargeCallback(pokemon) {\r\n\t\t\tpokemon.addVolatile('focuspunch');\r\n\t\t},\r\n\t\tbeforeMoveCallback(pokemon) {\r\n\t\t\tif (pokemon.volatiles['focuspunch']?.lostFocus) {\r\n\t\t\t\tthis.add('cant', pokemon, 'Focus Punch', 'Focus Punch');\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Focus Punch');\r\n\t\t\t},\r\n\t\t\tonHit(pokemon, source, move) {\r\n\t\t\t\tif (move.category !== 'Status') {\r\n\t\t\t\t\tthis.effectState.lostFocus = true;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTryAddVolatile(status, pokemon) {\r\n\t\t\t\tif (status.id === 'flinch') return null;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tfollowme: {\r\n\t\tnum: 266,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Follow Me\",\r\n\t\tpp: 20,\r\n\t\tpriority: 2,\r\n\t\tflags: {noassist: 1, failcopycat: 1},\r\n\t\tvolatileStatus: 'followme',\r\n\t\tonTry(source) {\r\n\t\t\treturn this.activePerHalf > 1;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target, source, effect) {\r\n\t\t\t\tif (effect?.id === 'zpower') {\r\n\t\t\t\t\tthis.add('-singleturn', target, 'move: Follow Me', '[zeffect]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-singleturn', target, 'move: Follow Me');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFoeRedirectTargetPriority: 1,\r\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\r\n\t\t\t\tif (!this.effectState.target.isSkyDropped() && this.validTarget(this.effectState.target, source, move.target)) {\r\n\t\t\t\t\tif (move.smartTarget) move.smartTarget = false;\r\n\t\t\t\t\tthis.debug(\"Follow Me redirected target of move\");\r\n\t\t\t\t\treturn this.effectState.target;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tforcepalm: {\r\n\t\tnum: 395,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Force Palm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tforesight: {\r\n\t\tnum: 193,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Foresight\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'foresight',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.volatiles['miracleeye']) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Foresight');\r\n\t\t\t},\r\n\t\t\tonNegateImmunity(pokemon, type) {\r\n\t\t\t\tif (pokemon.hasType('Ghost') && ['Normal', 'Fighting'].includes(type)) return false;\r\n\t\t\t},\r\n\t\t\tonModifyBoost(boosts) {\r\n\t\t\t\tif (boosts.evasion && boosts.evasion > 0) {\r\n\t\t\t\t\tboosts.evasion = 0;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'crit2'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tforestscurse: {\r\n\t\tnum: 571,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Forest's Curse\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.hasType('Grass')) return false;\r\n\t\t\tif (!target.addType('Grass')) return false;\r\n\t\t\tthis.add('-start', target, 'typeadd', 'Grass', '[from] move: Forest\\'s Curse');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfoulplay: {\r\n\t\tnum: 492,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 95,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Foul Play\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\toverrideOffensivePokemon: 'target',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfreezedry: {\r\n\t\tnum: 573,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Freeze-Dry\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonEffectiveness(typeMod, target, type) {\r\n\t\t\tif (type === 'Water') return 1;\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'frz',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfreezeshock: {\r\n\t\tnum: 553,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Freeze Shock\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfreezingglare: {\r\n\t\tnum: 821,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Freezing Glare\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'frz',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tfreezyfrost: {\r\n\t\tnum: 739,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Freezy Frost\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonHit() {\r\n\t\t\tthis.add('-clearallboost');\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tpokemon.clearBoosts();\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tfrenzyplant: {\r\n\t\tnum: 338,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Frenzy Plant\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfrostbreath: {\r\n\t\tnum: 524,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Frost Breath\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\twillCrit: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfrustration: {\r\n\t\tnum: 218,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\treturn Math.floor(((255 - pokemon.happiness) * 10) / 25) || 1;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Frustration\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tfuryattack: {\r\n\t\tnum: 31,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fury Attack\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfurycutter: {\r\n\t\tnum: 210,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 40,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (!pokemon.volatiles['furycutter'] || move.hit === 1) {\r\n\t\t\t\tpokemon.addVolatile('furycutter');\r\n\t\t\t}\r\n\t\t\tconst bp = this.clampIntRange(move.basePower * pokemon.volatiles['furycutter'].multiplier, 1, 160);\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fury Cutter\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonStart() {\r\n\t\t\t\tthis.effectState.multiplier = 1;\r\n\t\t\t},\r\n\t\t\tonRestart() {\r\n\t\t\t\tif (this.effectState.multiplier < 4) {\r\n\t\t\t\t\tthis.effectState.multiplier <<= 1;\r\n\t\t\t\t}\r\n\t\t\t\tthis.effectState.duration = 2;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfuryswipes: {\r\n\t\tnum: 154,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 18,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Fury Swipes\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tmaxMove: {basePower: 100},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tfusionbolt: {\r\n\t\tnum: 559,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Fusion Bolt\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, pokemon) {\r\n\t\t\tif (this.lastSuccessfulMoveThisTurn === 'fusionflare') {\r\n\t\t\t\tthis.debug('double power');\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tfusionflare: {\r\n\t\tnum: 558,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Fusion Flare\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tonBasePower(basePower, pokemon) {\r\n\t\t\tif (this.lastSuccessfulMoveThisTurn === 'fusionbolt') {\r\n\t\t\t\tthis.debug('double power');\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tfuturesight: {\r\n\t\tnum: 248,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Future Sight\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {allyanim: 1, futuremove: 1},\r\n\t\tignoreImmunity: true,\r\n\t\tonTry(source, target) {\r\n\t\t\tif (!target.side.addSlotCondition(target, 'futuremove')) return false;\r\n\t\t\tObject.assign(target.side.slotConditions[target.position]['futuremove'], {\r\n\t\t\t\tduration: 3,\r\n\t\t\t\tmove: 'futuresight',\r\n\t\t\t\tsource: source,\r\n\t\t\t\tmoveData: {\r\n\t\t\t\t\tid: 'futuresight',\r\n\t\t\t\t\tname: \"Future Sight\",\r\n\t\t\t\t\taccuracy: 100,\r\n\t\t\t\t\tbasePower: 120,\r\n\t\t\t\t\tcategory: \"Special\",\r\n\t\t\t\t\tpriority: 0,\r\n\t\t\t\t\tflags: {allyanim: 1, futuremove: 1},\r\n\t\t\t\t\tignoreImmunity: false,\r\n\t\t\t\t\teffectType: 'Move',\r\n\t\t\t\t\ttype: 'Psychic',\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tthis.add('-start', source, 'move: Future Sight');\r\n\t\t\treturn this.NOT_FAIL;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgastroacid: {\r\n\t\tnum: 380,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Gastro Acid\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tvolatileStatus: 'gastroacid',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.getAbility().isPermanent) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (target.hasItem('Ability Shield')) {\r\n\t\t\t\tthis.add('-block', target, 'item: Ability Shield');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\t// Ability suppression implemented in Pokemon.ignoringAbility() within sim/pokemon.ts\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tif (pokemon.hasItem('Ability Shield')) return false;\r\n\t\t\t\tthis.add('-endability', pokemon);\r\n\t\t\t\tthis.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon, pokemon, 'gastroacid');\r\n\t\t\t},\r\n\t\t\tonCopy(pokemon) {\r\n\t\t\t\tif (pokemon.getAbility().isPermanent) pokemon.removeVolatile('gastroacid');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tgeargrind: {\r\n\t\tnum: 544,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Gear Grind\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgearup: {\r\n\t\tnum: 674,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Gear Up\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, bypasssub: 1},\r\n\t\tonHitSide(side, source, move) {\r\n\t\t\tconst targets = side.allies().filter(target => (\r\n\t\t\t\ttarget.hasAbility(['plus', 'minus']) &&\r\n\t\t\t\t(!target.volatiles['maxguard'] || this.runEvent('TryHit', target, source, move))\r\n\t\t\t));\r\n\t\t\tif (!targets.length) return false;\r\n\t\t\tlet didSomething = false;\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tdidSomething = this.boost({atk: 1, spa: 1}, target, source, move, false, true) || didSomething;\r\n\t\t\t}\r\n\t\t\treturn didSomething;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgenesissupernova: {\r\n\t\tnum: 703,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 185,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Genesis Supernova\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"mewniumz\",\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tonHit() {\r\n\t\t\t\t\tthis.field.setTerrain('psychicterrain');\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgeomancy: {\r\n\t\tnum: 601,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Geomancy\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, nonsky: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tspa: 2,\r\n\t\t\tspd: 2,\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tgigadrain: {\r\n\t\tnum: 202,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Giga Drain\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgigaimpact: {\r\n\t\tnum: 416,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Giga Impact\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tgigatonhammer: {\r\n\t\tnum: 893,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 160,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Gigaton Hammer\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonDisableMove(pokemon) {\r\n\t\t\tif (pokemon.lastMove?.id === 'gigatonhammer') pokemon.disableMove('gigatonhammer');\r\n\t\t},\r\n\t\tbeforeMoveCallback(pokemon) {\r\n\t\t\tif (pokemon.lastMove?.id === 'gigatonhammer') pokemon.addVolatile('gigatonhammer');\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.removeVolatile('gigatonhammer')) {\r\n\t\t\t\tthis.add('-hint', \"Some effects can force a Pokemon to use Gigaton Hammer again in a row.\");\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tgigavolthavoc: {\r\n\t\tnum: 646,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Gigavolt Havoc\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"electriumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tglaciallance: {\r\n\t\tnum: 824,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Glacial Lance\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ice\",\r\n\t},\r\n\tglaciate: {\r\n\t\tnum: 549,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Glaciate\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tglaiverush: {\r\n\t\tnum: 862,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Glaive Rush\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'glaiverush',\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singlemove', pokemon, 'Glaive Rush', '[silent]');\r\n\t\t\t},\r\n\t\t\tonAccuracy() {\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t\tonSourceModifyDamage() {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 100,\r\n\t\t\tonBeforeMove(pokemon) {\r\n\t\t\t\tthis.debug('removing Glaive Rush drawback before attack');\r\n\t\t\t\tpokemon.removeVolatile('glaiverush');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\tglare: {\r\n\t\tnum: 137,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Glare\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'par',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tglitzyglow: {\r\n\t\tnum: 736,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Glitzy Glow\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tsideCondition: 'lightscreen',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgmaxbefuddle: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Befuddle\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Butterfree\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tconst result = this.random(3);\r\n\t\t\t\t\tif (result === 0) {\r\n\t\t\t\t\t\tpokemon.trySetStatus('slp', source);\r\n\t\t\t\t\t} else if (result === 1) {\r\n\t\t\t\t\t\tpokemon.trySetStatus('par', source);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpokemon.trySetStatus('psn', source);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxcannonade: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Cannonade\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Blastoise\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('gmaxcannonade');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Cannonade');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 5,\r\n\t\t\tonResidualSubOrder: 1,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (!target.hasType('Water')) this.damage(target.baseMaxhp / 6, target);\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 11,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Cannonade');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxcentiferno: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Centiferno\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Centiskorch\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.addVolatile('partiallytrapped', source, this.dex.getActiveMove('G-Max Centiferno'));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxchistrike: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Chi Strike\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Machamp\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tpokemon.addVolatile('gmaxchistrike');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target, source, effect) {\r\n\t\t\t\tthis.effectState.layers = 1;\r\n\t\t\t\tif (!['costar', 'imposter', 'psychup', 'transform'].includes(effect?.id)) {\r\n\t\t\t\t\tthis.add('-start', target, 'move: G-Max Chi Strike');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonRestart(target, source, effect) {\r\n\t\t\t\tif (this.effectState.layers >= 3) return false;\r\n\t\t\t\tthis.effectState.layers++;\r\n\t\t\t\tif (!['costar', 'imposter', 'psychup', 'transform'].includes(effect?.id)) {\r\n\t\t\t\t\tthis.add('-start', target, 'move: G-Max Chi Strike');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifyCritRatio(critRatio) {\r\n\t\t\t\treturn critRatio + this.effectState.layers;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxcuddle: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Cuddle\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Eevee\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.addVolatile('attract');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxdepletion: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Depletion\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Duraludon\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tlet move: Move | ActiveMove | null = pokemon.lastMove;\r\n\t\t\t\t\tif (!move || move.isZ) continue;\r\n\t\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\r\n\t\t\t\t\tconst ppDeducted = pokemon.deductPP(move.id, 2);\r\n\t\t\t\t\tif (ppDeducted) {\r\n\t\t\t\t\t\tthis.add(\"-activate\", pokemon, 'move: G-Max Depletion', move.name, ppDeducted);\r\n\t\t\t\t\t\t// Don't return here because returning early doesn't trigger\r\n\t\t\t\t\t\t// activation text for the second Pokemon in doubles\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxdrumsolo: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 160,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Drum Solo\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Rillaboom\",\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxfinale: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Finale\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Alcremie\",\r\n\t\tself: {\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tthis.heal(pokemon.maxhp / 6, pokemon, source, move);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxfireball: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 160,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Fireball\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Cinderace\",\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxfoamburst: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Foam Burst\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Kingler\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({spe: -2}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxgoldrush: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Gold Rush\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Meowth\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.addVolatile('confusion');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxgravitas: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Gravitas\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Orbeetle\",\r\n\t\tself: {\r\n\t\t\tpseudoWeather: 'gravity',\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxhydrosnipe: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 160,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Hydrosnipe\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Inteleon\",\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxmalodor: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Malodor\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Garbodor\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.trySetStatus('psn', source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxmeltdown: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Meltdown\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Melmetal\",\r\n\t\tself: {\r\n\t\t\tonHit(source, target, effect) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tif (!pokemon.volatiles['dynamax']) pokemon.addVolatile('torment', source, effect);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxoneblow: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max One Blow\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Urshifu\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxrapidflow: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Rapid Flow\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Urshifu-Rapid-Strike\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxreplenish: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Replenish\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Snorlax\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (this.random(2) === 0) return;\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tif (pokemon.item) continue;\r\n\r\n\t\t\t\t\tif (pokemon.lastItem && this.dex.items.get(pokemon.lastItem).isBerry) {\r\n\t\t\t\t\t\tconst item = pokemon.lastItem;\r\n\t\t\t\t\t\tpokemon.lastItem = '';\r\n\t\t\t\t\t\tthis.add('-item', pokemon, this.dex.items.get(item), '[from] move: G-Max Replenish');\r\n\t\t\t\t\t\tpokemon.setItem(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxresonance: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Resonance\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Lapras\",\r\n\t\tself: {\r\n\t\t\tsideCondition: 'auroraveil',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxsandblast: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Sandblast\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Sandaconda\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.addVolatile('partiallytrapped', source, this.dex.getActiveMove('G-Max Sandblast'));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxsmite: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Smite\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Hatterene\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.addVolatile('confusion', source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxsnooze: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Snooze\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Grimmsnarl\",\r\n\t\tonHit(target) {\r\n\t\t\tif (target.status || !target.runStatusImmunity('slp')) return;\r\n\t\t\tif (this.random(2) === 0) return;\r\n\t\t\ttarget.addVolatile('yawn');\r\n\t\t},\r\n\t\tonAfterSubDamage(damage, target) {\r\n\t\t\tif (target.status || !target.runStatusImmunity('slp')) return;\r\n\t\t\tif (this.random(2) === 0) return;\r\n\t\t\ttarget.addVolatile('yawn');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxsteelsurge: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Steelsurge\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Copperajah\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('gmaxsteelsurge');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: G-Max Steelsurge');\r\n\t\t\t},\r\n\t\t\tonEntryHazard(pokemon) {\r\n\t\t\t\tif (pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\t\t// Ice Face and Disguise correctly get typed damage from Stealth Rock\r\n\t\t\t\t// because Stealth Rock bypasses Substitute.\r\n\t\t\t\t// They don't get typed damage from Steelsurge because Steelsurge doesn't,\r\n\t\t\t\t// so we're going to test the damage of a Steel-type Stealth Rock instead.\r\n\t\t\t\tconst steelHazard = this.dex.getActiveMove('Stealth Rock');\r\n\t\t\t\tsteelHazard.type = 'Steel';\r\n\t\t\t\tconst typeMod = this.clampIntRange(pokemon.runEffectiveness(steelHazard), -6, 6);\r\n\t\t\t\tthis.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxstonesurge: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Stonesurge\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Drednaw\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('stealthrock');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxstunshock: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Stun Shock\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Toxtricity\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tconst result = this.random(2);\r\n\t\t\t\t\tif (result === 0) {\r\n\t\t\t\t\t\tpokemon.trySetStatus('par', source);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpokemon.trySetStatus('psn', source);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxsweetness: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Sweetness\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Appletun\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const ally of source.side.pokemon) {\r\n\t\t\t\t\tally.cureStatus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxtartness: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Tartness\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Flapple\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({evasion: -1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxterror: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Terror\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Gengar\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.addVolatile('trapped', source, null, 'trapper');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxvinelash: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Vine Lash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Venusaur\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('gmaxvinelash');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Vine Lash');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 5,\r\n\t\t\tonResidualSubOrder: 1,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (!target.hasType('Grass')) this.damage(target.baseMaxhp / 6, target);\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 11,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Vine Lash');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxvolcalith: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Volcalith\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Coalossal\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('gmaxvolcalith');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Volcalith');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 5,\r\n\t\t\tonResidualSubOrder: 1,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (!target.hasType('Rock')) this.damage(target.baseMaxhp / 6, target);\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 11,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Volcalith');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxvoltcrash: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Volt Crash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Pikachu\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tpokemon.trySetStatus('par', source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxwildfire: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Wildfire\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Charizard\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('gmaxwildfire');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'G-Max Wildfire');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 5,\r\n\t\t\tonResidualSubOrder: 1,\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (!target.hasType('Fire')) this.damage(target.baseMaxhp / 6, target);\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 11,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'G-Max Wildfire');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgmaxwindrage: {\r\n\t\tnum: 1000,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Gigantamax\",\r\n\t\tname: \"G-Max Wind Rage\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: \"Corviknight\",\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tlet success = false;\r\n\t\t\t\tconst removeTarget = [\r\n\t\t\t\t\t'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb',\r\n\t\t\t\t];\r\n\t\t\t\tconst removeAll = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\r\n\t\t\t\tfor (const targetCondition of removeTarget) {\r\n\t\t\t\t\tif (source.side.foe.removeSideCondition(targetCondition)) {\r\n\t\t\t\t\t\tif (!removeAll.includes(targetCondition)) continue;\r\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);\r\n\t\t\t\t\t\tsuccess = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor (const sideCondition of removeAll) {\r\n\t\t\t\t\tif (source.side.removeSideCondition(sideCondition)) {\r\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);\r\n\t\t\t\t\t\tsuccess = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.field.clearTerrain();\r\n\t\t\t\treturn success;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgrassknot: {\r\n\t\tnum: 447,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst targetWeight = target.getWeight();\r\n\t\t\tlet bp;\r\n\t\t\tif (targetWeight >= 2000) {\r\n\t\t\t\tbp = 120;\r\n\t\t\t} else if (targetWeight >= 1000) {\r\n\t\t\t\tbp = 100;\r\n\t\t\t} else if (targetWeight >= 500) {\r\n\t\t\t\tbp = 80;\r\n\t\t\t} else if (targetWeight >= 250) {\r\n\t\t\t\tbp = 60;\r\n\t\t\t} else if (targetWeight >= 100) {\r\n\t\t\t\tbp = 40;\r\n\t\t\t} else {\r\n\t\t\t\tbp = 20;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Grass Knot\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (target.volatiles['dynamax']) {\r\n\t\t\t\tthis.add('-fail', source, 'move: Grass Knot', '[from] Dynamax');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tgrasspledge: {\r\n\t\tnum: 520,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tbasePowerCallback(target, source, move) {\r\n\t\t\tif (['waterpledge', 'firepledge'].includes(move.sourceEffect)) {\r\n\t\t\t\tthis.add('-combine');\r\n\t\t\t\treturn 150;\r\n\t\t\t}\r\n\t\t\treturn 80;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Grass Pledge\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1, pledgecombo: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tfor (const action of this.queue.list as MoveAction[]) {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!action.move || !action.pokemon?.isActive ||\r\n\t\t\t\t\taction.pokemon.fainted || action.maxMove || action.zmove\r\n\t\t\t\t) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (action.pokemon.isAlly(source) && ['waterpledge', 'firepledge'].includes(action.move.id)) {\r\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\r\n\t\t\t\t\tthis.add('-waiting', source, action.pokemon);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move) {\r\n\t\t\tif (move.sourceEffect === 'waterpledge') {\r\n\t\t\t\tmove.type = 'Grass';\r\n\t\t\t\tmove.forceSTAB = true;\r\n\t\t\t\tmove.sideCondition = 'grasspledge';\r\n\t\t\t}\r\n\t\t\tif (move.sourceEffect === 'firepledge') {\r\n\t\t\t\tmove.type = 'Fire';\r\n\t\t\t\tmove.forceSTAB = true;\r\n\t\t\t\tmove.sideCondition = 'firepledge';\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'Grass Pledge');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 9,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'Grass Pledge');\r\n\t\t\t},\r\n\t\t\tonModifySpe(spe, pokemon) {\r\n\t\t\t\treturn this.chainModify(0.25);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tgrasswhistle: {\r\n\t\tnum: 320,\r\n\t\taccuracy: 55,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Grass Whistle\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tstatus: 'slp',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgrassyglide: {\r\n\t\tnum: 803,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Grassy Glide\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonModifyPriority(priority, source, target, move) {\r\n\t\t\tif (this.field.isTerrain('grassyterrain') && source.isGrounded()) {\r\n\t\t\t\treturn priority + 1;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgrassyterrain: {\r\n\t\tnum: 580,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Grassy Terrain\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tterrain: 'grassyterrain',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasItem('terrainextender')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 6,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tconst weakenedMoves = ['earthquake', 'bulldoze', 'magnitude'];\r\n\t\t\t\tif (weakenedMoves.includes(move.id) && defender.isGrounded() && !defender.isSemiInvulnerable()) {\r\n\t\t\t\t\tthis.debug('move weakened by grassy terrain');\r\n\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t}\r\n\t\t\t\tif (move.type === 'Grass' && attacker.isGrounded()) {\r\n\t\t\t\t\tthis.debug('grassy terrain boost');\r\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldStart(field, source, effect) {\r\n\t\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Grassy Terrain', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Grassy Terrain');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 5,\r\n\t\t\tonResidualSubOrder: 2,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tif (pokemon.isGrounded() && !pokemon.isSemiInvulnerable()) {\r\n\t\t\t\t\tthis.heal(pokemon.baseMaxhp / 16, pokemon, pokemon);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.debug(`Pokemon semi-invuln or not grounded; Grassy Terrain skipped`);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 7,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Grassy Terrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tgravapple: {\r\n\t\tnum: 788,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Grav Apple\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower) {\r\n\t\t\tif (this.field.getPseudoWeather('gravity')) {\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tgravity: {\r\n\t\tnum: 356,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Gravity\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tpseudoWeather: 'gravity',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Gravity');\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonFieldStart(target, source) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Gravity', '[persistent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Gravity');\r\n\t\t\t\t}\r\n\t\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\t\tlet applies = false;\r\n\t\t\t\t\tif (pokemon.removeVolatile('bounce') || pokemon.removeVolatile('fly')) {\r\n\t\t\t\t\t\tapplies = true;\r\n\t\t\t\t\t\tthis.queue.cancelMove(pokemon);\r\n\t\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (pokemon.volatiles['skydrop']) {\r\n\t\t\t\t\t\tapplies = true;\r\n\t\t\t\t\t\tthis.queue.cancelMove(pokemon);\r\n\r\n\t\t\t\t\t\tif (pokemon.volatiles['skydrop'].source) {\r\n\t\t\t\t\t\t\tthis.add('-end', pokemon.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpokemon.removeVolatile('skydrop');\r\n\t\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (pokemon.volatiles['magnetrise']) {\r\n\t\t\t\t\t\tapplies = true;\r\n\t\t\t\t\t\tdelete pokemon.volatiles['magnetrise'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (pokemon.volatiles['telekinesis']) {\r\n\t\t\t\t\t\tapplies = true;\r\n\t\t\t\t\t\tdelete pokemon.volatiles['telekinesis'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (applies) this.add('-activate', pokemon, 'move: Gravity');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifyAccuracy(accuracy) {\r\n\t\t\t\tif (typeof accuracy !== 'number') return;\r\n\t\t\t\treturn this.chainModify([6840, 4096]);\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.id).flags['gravity']) {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded\r\n\t\t\tonBeforeMovePriority: 6,\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tif (move.flags['gravity'] && !move.isZ) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Gravity', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\t\tif (move.flags['gravity'] && !move.isZ) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Gravity', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 2,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Gravity');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgrowl: {\r\n\t\tnum: 45,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Growl\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tgrowth: {\r\n\t\tnum: 74,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Growth\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) move.boosts = {atk: 2, spa: 2};\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tspa: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tgrudge: {\r\n\t\tnum: 288,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Grudge\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1},\r\n\t\tvolatileStatus: 'grudge',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singlemove', pokemon, 'Grudge');\r\n\t\t\t},\r\n\t\t\tonFaint(target, source, effect) {\r\n\t\t\t\tif (!source || source.fainted || !effect) return;\r\n\t\t\t\tif (effect.effectType === 'Move' && !effect.flags['futuremove'] && source.lastMove) {\r\n\t\t\t\t\tlet move: Move = source.lastMove;\r\n\t\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\r\n\t\t\t\t\tfor (const moveSlot of source.moveSlots) {\r\n\t\t\t\t\t\tif (moveSlot.id === move.id) {\r\n\t\t\t\t\t\t\tmoveSlot.pp = 0;\r\n\t\t\t\t\t\t\tthis.add('-activate', source, 'move: Grudge', move.name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 100,\r\n\t\t\tonBeforeMove(pokemon) {\r\n\t\t\t\tthis.debug('removing Grudge before attack');\r\n\t\t\t\tpokemon.removeVolatile('grudge');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {effect: 'redirect'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tguardianofalola: {\r\n\t\tnum: 698,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\tconst hp75 = Math.floor(target.getUndynamaxedHP() * 3 / 4);\r\n\t\t\tif (\r\n\t\t\t\ttarget.volatiles['protect'] || target.volatiles['banefulbunker'] || target.volatiles['kingsshield'] ||\r\n\t\t\t\ttarget.volatiles['spikyshield'] || target.side.getSideCondition('matblock')\r\n\t\t\t) {\r\n\t\t\t\tthis.add('-zbroken', target);\r\n\t\t\t\treturn this.clampIntRange(Math.ceil(hp75 / 4 - 0.5), 1);\r\n\t\t\t}\r\n\t\t\treturn this.clampIntRange(hp75, 1);\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Guardian of Alola\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"tapuniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tguardsplit: {\r\n\t\tnum: 470,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Guard Split\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst newdef = Math.floor((target.storedStats.def + source.storedStats.def) / 2);\r\n\t\t\ttarget.storedStats.def = newdef;\r\n\t\t\tsource.storedStats.def = newdef;\r\n\t\t\tconst newspd = Math.floor((target.storedStats.spd + source.storedStats.spd) / 2);\r\n\t\t\ttarget.storedStats.spd = newspd;\r\n\t\t\tsource.storedStats.spd = newspd;\r\n\t\t\tthis.add('-activate', source, 'move: Guard Split', '[of] ' + target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tguardswap: {\r\n\t\tnum: 385,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Guard Swap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst targetBoosts: SparseBoostsTable = {};\r\n\t\t\tconst sourceBoosts: SparseBoostsTable = {};\r\n\r\n\t\t\tconst defSpd: BoostID[] = ['def', 'spd'];\r\n\t\t\tfor (const stat of defSpd) {\r\n\t\t\t\ttargetBoosts[stat] = target.boosts[stat];\r\n\t\t\t\tsourceBoosts[stat] = source.boosts[stat];\r\n\t\t\t}\r\n\r\n\t\t\tsource.setBoost(targetBoosts);\r\n\t\t\ttarget.setBoost(sourceBoosts);\r\n\r\n\t\t\tthis.add('-swapboost', source, target, 'def, spd', '[from] move: Guard Swap');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tguillotine: {\r\n\t\tnum: 12,\r\n\t\taccuracy: 30,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Guillotine\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tohko: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tgunkshot: {\r\n\t\tnum: 441,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Gunk Shot\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tgust: {\r\n\t\tnum: 16,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Gust\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, distance: 1, wind: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tgyroball: {\r\n\t\tnum: 360,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tlet power = Math.floor(25 * target.getStat('spe') / pokemon.getStat('spe')) + 1;\r\n\t\t\tif (!isFinite(power)) power = 1;\r\n\t\t\tif (power > 150) power = 150;\r\n\t\t\tthis.debug('BP: ' + power);\r\n\t\t\treturn power;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Gyro Ball\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thail: {\r\n\t\tnum: 258,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hail\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tweather: 'hail',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\thammerarm: {\r\n\t\tnum: 359,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Hammer Arm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thappyhour: {\r\n\t\tnum: 603,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Happy Hour\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tthis.add('-activate', target, 'move: Happy Hour');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tharden: {\r\n\t\tnum: 106,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Harden\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thaze: {\r\n\t\tnum: 114,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Haze\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1},\r\n\t\tonHitField() {\r\n\t\t\tthis.add('-clearallboost');\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tpokemon.clearBoosts();\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\theadbutt: {\r\n\t\tnum: 29,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Headbutt\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\theadcharge: {\r\n\t\tnum: 543,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Head Charge\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [1, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\theadlongrush: {\r\n\t\tnum: 838,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Headlong Rush\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t},\r\n\theadsmash: {\r\n\t\tnum: 457,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Head Smash\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thealbell: {\r\n\t\tnum: 215,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Heal Bell\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, sound: 1, distance: 1, bypasssub: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tthis.add('-activate', source, 'move: Heal Bell');\r\n\t\t\tlet success = false;\r\n\t\t\tconst allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];\r\n\t\t\tfor (const ally of allies) {\r\n\t\t\t\tif (ally !== source && ally.hasAbility('soundproof')) continue;\r\n\t\t\t\tif (ally.cureStatus()) success = true;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\ttarget: \"allyTeam\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\thealblock: {\r\n\t\tnum: 377,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Heal Block\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'healblock',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Heal Block');\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonStart(pokemon, source) {\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Heal Block');\r\n\t\t\t\tsource.moveThisTurnResult = true;\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.id).flags['heal']) {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 6,\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tif (move.flags['heal'] && !move.isZ && !move.isMax) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Heal Block', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\t\tif (move.flags['heal'] && !move.isZ && !move.isMax) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Heal Block', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 20,\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'move: Heal Block');\r\n\t\t\t},\r\n\t\t\tonTryHeal(damage, target, source, effect) {\r\n\t\t\t\tif ((effect?.id === 'zpower') || this.effectState.isZ) return damage;\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonRestart(target, source) {\r\n\t\t\t\tthis.add('-fail', target, 'move: Heal Block'); // Succeeds to supress downstream messages\r\n\t\t\t\tif (!source.moveThisTurnResult) {\r\n\t\t\t\t\tsource.moveThisTurnResult = false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thealingwish: {\r\n\t\tnum: 361,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Healing Wish\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonTryHit(source) {\r\n\t\t\tif (!this.canSwitch(source.side)) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t},\r\n\t\tselfdestruct: \"ifHit\",\r\n\t\tslotCondition: 'healingwish',\r\n\t\tcondition: {\r\n\t\t\tonSwap(target) {\r\n\t\t\t\tif (!target.fainted && (target.hp < target.maxhp || target.status)) {\r\n\t\t\t\t\ttarget.heal(target.maxhp);\r\n\t\t\t\t\ttarget.clearStatus();\r\n\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Healing Wish');\r\n\t\t\t\t\ttarget.side.removeSlotCondition(target, 'healingwish');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\thealorder: {\r\n\t\tnum: 456,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Heal Order\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thealpulse: {\r\n\t\tnum: 505,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Heal Pulse\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, pulse: 1, reflectable: 1, distance: 1, heal: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tlet success = false;\r\n\t\t\tif (source.hasAbility('megalauncher')) {\r\n\t\t\t\tsuccess = !!this.heal(this.modify(target.baseMaxhp, 0.75));\r\n\t\t\t} else {\r\n\t\t\t\tsuccess = !!this.heal(Math.ceil(target.baseMaxhp * 0.5));\r\n\t\t\t}\r\n\t\t\tif (success && !target.isAlly(source)) {\r\n\t\t\t\ttarget.staleness = 'external';\r\n\t\t\t}\r\n\t\t\tif (!success) {\r\n\t\t\t\tthis.add('-fail', target, 'heal');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\theartstamp: {\r\n\t\tnum: 531,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Heart Stamp\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\theartswap: {\r\n\t\tnum: 391,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Heart Swap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst targetBoosts: SparseBoostsTable = {};\r\n\t\t\tconst sourceBoosts: SparseBoostsTable = {};\r\n\r\n\t\t\tlet i: BoostID;\r\n\t\t\tfor (i in target.boosts) {\r\n\t\t\t\ttargetBoosts[i] = target.boosts[i];\r\n\t\t\t\tsourceBoosts[i] = source.boosts[i];\r\n\t\t\t}\r\n\r\n\t\t\ttarget.setBoost(sourceBoosts);\r\n\t\t\tsource.setBoost(targetBoosts);\r\n\r\n\t\t\tthis.add('-swapboost', source, target, '[from] move: Heart Swap');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'crit2'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\theatcrash: {\r\n\t\tnum: 535,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst targetWeight = target.getWeight();\r\n\t\t\tconst pokemonWeight = pokemon.getWeight();\r\n\t\t\tlet bp;\r\n\t\t\tif (pokemonWeight >= targetWeight * 5) {\r\n\t\t\t\tbp = 120;\r\n\t\t\t} else if (pokemonWeight >= targetWeight * 4) {\r\n\t\t\t\tbp = 100;\r\n\t\t\t} else if (pokemonWeight >= targetWeight * 3) {\r\n\t\t\t\tbp = 80;\r\n\t\t\t} else if (pokemonWeight >= targetWeight * 2) {\r\n\t\t\t\tbp = 60;\r\n\t\t\t} else {\r\n\t\t\t\tbp = 40;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Heat Crash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tonTryHit(target, pokemon, move) {\r\n\t\t\tif (target.volatiles['dynamax']) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'Dynamax');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\theatwave: {\r\n\t\tnum: 257,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 95,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Heat Wave\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\theavyslam: {\r\n\t\tnum: 484,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst targetWeight = target.getWeight();\r\n\t\t\tconst pokemonWeight = pokemon.getWeight();\r\n\t\t\tlet bp;\r\n\t\t\tif (pokemonWeight >= targetWeight * 5) {\r\n\t\t\t\tbp = 120;\r\n\t\t\t} else if (pokemonWeight >= targetWeight * 4) {\r\n\t\t\t\tbp = 100;\r\n\t\t\t} else if (pokemonWeight >= targetWeight * 3) {\r\n\t\t\t\tbp = 80;\r\n\t\t\t} else if (pokemonWeight >= targetWeight * 2) {\r\n\t\t\t\tbp = 60;\r\n\t\t\t} else {\r\n\t\t\t\tbp = 40;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Heavy Slam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tonTryHit(target, pokemon, move) {\r\n\t\t\tif (target.volatiles['dynamax']) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'Dynamax');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thelpinghand: {\r\n\t\tnum: 270,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Helping Hand\",\r\n\t\tpp: 20,\r\n\t\tpriority: 5,\r\n\t\tflags: {bypasssub: 1, noassist: 1, failcopycat: 1},\r\n\t\tvolatileStatus: 'helpinghand',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (!target.newlySwitched && !this.queue.willMove(target)) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target, source) {\r\n\t\t\t\tthis.effectState.multiplier = 1.5;\r\n\t\t\t\tthis.add('-singleturn', target, 'Helping Hand', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonRestart(target, source) {\r\n\t\t\t\tthis.effectState.multiplier *= 1.5;\r\n\t\t\t\tthis.add('-singleturn', target, 'Helping Hand', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 10,\r\n\t\t\tonBasePower(basePower) {\r\n\t\t\t\tthis.debug('Boosting from Helping Hand: ' + this.effectState.multiplier);\r\n\t\t\t\treturn this.chainModify(this.effectState.multiplier);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentAlly\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thex: {\r\n\t\tnum: 506,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.status || target.hasAbility('comatose')) {\r\n\t\t\t\tthis.debug('BP doubled from status condition');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hex\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpower: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tmove.type = pokemon.hpType || 'Dark';\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerbug: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Bug\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerdark: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Dark\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerdragon: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Dragon\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerelectric: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Electric\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerfighting: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Fighting\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerfire: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Fire\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerflying: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Flying\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerghost: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Ghost\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowergrass: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Grass\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerground: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Ground\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerice: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Ice\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerpoison: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Poison\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerpsychic: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Psychic\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerrock: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Rock\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowersteel: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Steel\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thiddenpowerwater: {\r\n\t\tnum: 237,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\trealMove: \"Hidden Power\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hidden Power Water\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thighhorsepower: {\r\n\t\tnum: 667,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 95,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"High Horsepower\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thighjumpkick: {\r\n\t\tnum: 136,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"High Jump Kick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, gravity: 1},\r\n\t\thasCrashDamage: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick'));\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tholdback: {\r\n\t\tnum: 610,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Hold Back\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonDamagePriority: -20,\r\n\t\tonDamage(damage, target, source, effect) {\r\n\t\t\tif (damage >= target.hp) return target.hp - 1;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tholdhands: {\r\n\t\tnum: 607,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Hold Hands\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentAlly\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\thoneclaws: {\r\n\t\tnum: 468,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Hone Claws\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\taccuracy: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\thornattack: {\r\n\t\tnum: 30,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Horn Attack\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thorndrill: {\r\n\t\tnum: 32,\r\n\t\taccuracy: 30,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Horn Drill\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tohko: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thornleech: {\r\n\t\tnum: 532,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Horn Leech\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thowl: {\r\n\t\tnum: 336,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Howl\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, sound: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allies\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thurricane: {\r\n\t\tnum: 542,\r\n\t\taccuracy: 70,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hurricane\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, distance: 1, wind: 1},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tswitch (target?.effectiveWeather()) {\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\t\tmove.accuracy = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tmove.accuracy = 50;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thydrocannon: {\r\n\t\tnum: 308,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hydro Cannon\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\thydropump: {\r\n\t\tnum: 56,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hydro Pump\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\thydrosteam: {\r\n\t\tnum: 876,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hydro Steam\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\t// Damage boost in Sun applied in conditions.ts\r\n\t\tthawsTarget: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\thydrovortex: {\r\n\t\tnum: 642,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hydro Vortex\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"wateriumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thyperbeam: {\r\n\t\tnum: 63,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hyper Beam\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thyperdrill: {\r\n\t\tnum: 887,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Hyper Drill\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thyperfang: {\r\n\t\tnum: 158,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Hyper Fang\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thyperspacefury: {\r\n\t\tnum: 621,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Hyperspace Fury\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1, bypasssub: 1},\r\n\t\tbreaksProtect: true,\r\n\t\tonTry(source) {\r\n\t\t\tif (source.species.name === 'Hoopa-Unbound') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.hint(\"Only a Pokemon whose form is Hoopa Unbound can use this move.\");\r\n\t\t\tif (source.species.name === 'Hoopa') {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('-fail', source, 'move: Hyperspace Fury', '[forme]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-fail', source, 'move: Hyperspace Fury');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\thyperspacehole: {\r\n\t\tnum: 593,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hyperspace Hole\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1, bypasssub: 1},\r\n\t\tbreaksProtect: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\thypervoice: {\r\n\t\tnum: 304,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Hyper Voice\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\thypnosis: {\r\n\t\tnum: 95,\r\n\t\taccuracy: 60,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Hypnosis\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'slp',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ticeball: {\r\n\t\tnum: 301,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 30,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tlet bp = move.basePower;\r\n\t\t\tconst iceballData = pokemon.volatiles['iceball'];\r\n\t\t\tif (iceballData?.hitCount) {\r\n\t\t\t\tbp *= Math.pow(2, iceballData.contactHitCount);\r\n\t\t\t}\r\n\t\t\tif (iceballData && pokemon.status !== 'slp') {\r\n\t\t\t\ticeballData.hitCount++;\r\n\t\t\t\ticeballData.contactHitCount++;\r\n\t\t\t\tif (iceballData.hitCount < 5) {\r\n\t\t\t\t\ticeballData.duration = 2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pokemon.volatiles['defensecurl']) {\r\n\t\t\t\tbp *= 2;\r\n\t\t\t}\r\n\t\t\tthis.debug(\"BP: \" + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Ice Ball\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, contact: 1, protect: 1, mirror: 1, noparentalbond: 1, failinstruct: 1},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tif (pokemon.volatiles['iceball'] || pokemon.status === 'slp' || !target) return;\r\n\t\t\tpokemon.addVolatile('iceball');\r\n\t\t\t// @ts-ignore\r\n\t\t\t// TS thinks pokemon.volatiles['iceball'] doesn't exist because of the condition on the return above\r\n\t\t\t// but it does exist now because addVolatile created it\r\n\t\t\tpokemon.volatiles['iceball'].targetSlot = move.sourceEffect ? pokemon.lastMoveTargetLoc : pokemon.getLocOf(target);\r\n\t\t},\r\n\t\tonAfterMove(source, target, move) {\r\n\t\t\tconst iceballData = source.volatiles[\"iceball\"];\r\n\t\t\tif (\r\n\t\t\t\ticeballData &&\r\n\t\t\t\ticeballData.hitCount === 5 &&\r\n\t\t\t\ticeballData.contactHitCount < 5\r\n\t\t\t\t// this conditions can only be met in gen7 and gen8dlc1\r\n\t\t\t\t// see `disguise` and `iceface` abilities in the resp mod folders\r\n\t\t\t) {\r\n\t\t\t\tsource.addVolatile(\"rolloutstorage\");\r\n\t\t\t\tsource.volatiles[\"rolloutstorage\"].contactHitCount =\r\n\t\t\t\ticeballData.contactHitCount;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonLockMove: 'iceball',\r\n\t\t\tonStart() {\r\n\t\t\t\tthis.effectState.hitCount = 0;\r\n\t\t\t\tthis.effectState.contactHitCount = 0;\r\n\t\t\t},\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\r\n\t\t\t\t\t// don't lock\r\n\t\t\t\t\tdelete target.volatiles['iceball'];\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticebeam: {\r\n\t\tnum: 58,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Ice Beam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'frz',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticeburn: {\r\n\t\tnum: 554,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Ice Burn\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticefang: {\r\n\t\tnum: 423,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Ice Fang\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondaries: [\r\n\t\t\t{\r\n\t\t\t\tchance: 10,\r\n\t\t\t\tstatus: 'frz',\r\n\t\t\t}, {\r\n\t\t\t\tchance: 10,\r\n\t\t\t\tvolatileStatus: 'flinch',\r\n\t\t\t},\r\n\t\t],\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ticehammer: {\r\n\t\tnum: 665,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Ice Hammer\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\ticepunch: {\r\n\t\tnum: 8,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Ice Punch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'frz',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticeshard: {\r\n\t\tnum: 420,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Ice Shard\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticespinner: {\r\n\t\tnum: 861,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Ice Spinner\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonHit() {\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tonAfterSubDamage() {\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t},\r\n\ticiclecrash: {\r\n\t\tnum: 556,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Icicle Crash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticiclespear: {\r\n\t\tnum: 333,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Icicle Spear\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ticywind: {\r\n\t\tnum: 196,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 55,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Icy Wind\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\timprison: {\r\n\t\tnum: 286,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Imprison\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, bypasssub: 1, mustpressure: 1},\r\n\t\tvolatileStatus: 'imprison',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'move: Imprison');\r\n\t\t\t},\r\n\t\t\tonFoeDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of this.effectState.source.moveSlots) {\r\n\t\t\t\t\tif (moveSlot.id === 'struggle') continue;\r\n\t\t\t\t\tpokemon.disableMove(moveSlot.id, 'hidden');\r\n\t\t\t\t}\r\n\t\t\t\tpokemon.maybeDisabled = true;\r\n\t\t\t},\r\n\t\t\tonFoeBeforeMovePriority: 4,\r\n\t\t\tonFoeBeforeMove(attacker, defender, move) {\r\n\t\t\t\tif (move.id !== 'struggle' && this.effectState.source.hasMove(move.id) && !move.isZ && !move.isMax) {\r\n\t\t\t\t\tthis.add('cant', attacker, 'move: Imprison', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spd: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tincinerate: {\r\n\t\tnum: 510,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Incinerate\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonHit(pokemon, source) {\r\n\t\t\tconst item = pokemon.getItem();\r\n\t\t\tif ((item.isBerry || item.isGem) && pokemon.takeItem(source)) {\r\n\t\t\t\tthis.add('-enditem', pokemon, item.name, '[from] move: Incinerate');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tinfernalparade: {\r\n\t\tnum: 844,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.status || target.hasAbility('comatose')) return move.basePower * 2;\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Infernal Parade\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t},\r\n\tinferno: {\r\n\t\tnum: 517,\r\n\t\taccuracy: 50,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Inferno\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tinfernooverdrive: {\r\n\t\tnum: 640,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Inferno Overdrive\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"firiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tinfestation: {\r\n\t\tnum: 611,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Infestation\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tingrain: {\r\n\t\tnum: 275,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Ingrain\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, nonsky: 1},\r\n\t\tvolatileStatus: 'ingrain',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Ingrain');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 7,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 16);\r\n\t\t\t},\r\n\t\t\tonTrapPokemon(pokemon) {\r\n\t\t\t\tpokemon.tryTrap();\r\n\t\t\t},\r\n\t\t\t// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded\r\n\t\t\tonDragOut(pokemon) {\r\n\t\t\t\tthis.add('-activate', pokemon, 'move: Ingrain');\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tinstruct: {\r\n\t\tnum: 689,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Instruct\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, bypasssub: 1, allyanim: 1, failinstruct: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (!target.lastMove || target.volatiles['dynamax']) return false;\r\n\t\t\tconst lastMove = target.lastMove;\r\n\t\t\tconst moveIndex = target.moves.indexOf(lastMove.id);\r\n\t\t\tif (\r\n\t\t\t\tlastMove.flags['failinstruct'] || lastMove.isZ || lastMove.isMax ||\r\n\t\t\t\tlastMove.flags['charge'] || lastMove.flags['recharge'] ||\r\n\t\t\t\ttarget.volatiles['beakblast'] || target.volatiles['focuspunch'] || target.volatiles['shelltrap'] ||\r\n\t\t\t\t(target.moveSlots[moveIndex] && target.moveSlots[moveIndex].pp <= 0)\r\n\t\t\t) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.add('-singleturn', target, 'move: Instruct', '[of] ' + source);\r\n\t\t\tthis.queue.prioritizeAction(this.queue.resolveAction({\r\n\t\t\t\tchoice: 'move',\r\n\t\t\t\tpokemon: target,\r\n\t\t\t\tmoveid: target.lastMove.id,\r\n\t\t\t\ttargetLoc: target.lastMoveTargetLoc!,\r\n\t\t\t})[0] as MoveAction);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tiondeluge: {\r\n\t\tnum: 569,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Ion Deluge\",\r\n\t\tpp: 25,\r\n\t\tpriority: 1,\r\n\t\tflags: {},\r\n\t\tpseudoWeather: 'iondeluge',\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonFieldStart(target, source, sourceEffect) {\r\n\t\t\t\tthis.add('-fieldactivate', 'move: Ion Deluge');\r\n\t\t\t\tthis.hint(`Normal-type moves become Electric-type after using ${sourceEffect}.`);\r\n\t\t\t},\r\n\t\t\tonModifyTypePriority: -2,\r\n\t\t\tonModifyType(move) {\r\n\t\t\t\tif (move.type === 'Normal') {\r\n\t\t\t\t\tmove.type = 'Electric';\r\n\t\t\t\t\tthis.debug(move.name + \"'s type changed to Electric\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tirondefense: {\r\n\t\tnum: 334,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Iron Defense\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tironhead: {\r\n\t\tnum: 442,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Iron Head\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tirontail: {\r\n\t\tnum: 231,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Iron Tail\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tjawlock: {\r\n\t\tnum: 746,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Jaw Lock\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tsource.addVolatile('trapped', target, move, 'trapper');\r\n\t\t\ttarget.addVolatile('trapped', source, move, 'trapper');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\tjetpunch: {\r\n\t\tnum: 857,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Jet Punch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\thasSheerForce: true,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tjudgment: {\r\n\t\tnum: 449,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Judgment\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tif (pokemon.ignoringItem()) return;\r\n\t\t\tconst item = pokemon.getItem();\r\n\t\t\tif (item.id && item.onPlate && !item.zMove) {\r\n\t\t\t\tmove.type = item.onPlate;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tjumpkick: {\r\n\t\tnum: 26,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Jump Kick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, gravity: 1},\r\n\t\thasCrashDamage: true,\r\n\t\tonMoveFail(target, source, move) {\r\n\t\t\tthis.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('Jump Kick'));\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tjunglehealing: {\r\n\t\tnum: 816,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Jungle Healing\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {heal: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, 0.25));\r\n\t\t\treturn pokemon.cureStatus() || success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allies\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tkaratechop: {\r\n\t\tnum: 2,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Karate Chop\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tkinesis: {\r\n\t\tnum: 134,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Kinesis\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\taccuracy: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tkingsshield: {\r\n\t\tnum: 588,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"King's Shield\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {noassist: 1, failcopycat: 1, failinstruct: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'kingsshield',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.boost({atk: -1}, source, target, this.dex.getActiveMove(\"King's Shield\"));\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.boost({atk: -1}, source, target, this.dex.getActiveMove(\"King's Shield\"));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tknockoff: {\r\n\t\tnum: 282,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Knock Off\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, source, target, move) {\r\n\t\t\tconst item = target.getItem();\r\n\t\t\tif (!this.singleEvent('TakeItem', item, target.itemState, target, target, move, item)) return;\r\n\t\t\tif (item.id) {\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonAfterHit(target, source) {\r\n\t\t\tif (source.hp) {\r\n\t\t\t\tconst item = target.takeItem();\r\n\t\t\t\tif (item) {\r\n\t\t\t\t\tthis.add('-enditem', target, item.name, '[from] move: Knock Off', '[of] ' + source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tkowtowcleave: {\r\n\t\tnum: 869,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Kowtow Cleave\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\tlandswrath: {\r\n\t\tnum: 616,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Land's Wrath\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {basePower: 185},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tlaserfocus: {\r\n\t\tnum: 673,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Laser Focus\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'laserfocus',\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonStart(pokemon, source, effect) {\r\n\t\t\t\tif (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'move: Laser Focus', '[silent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', pokemon, 'move: Laser Focus');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonRestart(pokemon) {\r\n\t\t\t\tthis.effectState.duration = 2;\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Laser Focus');\r\n\t\t\t},\r\n\t\t\tonModifyCritRatio(critRatio) {\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'move: Laser Focus', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tlashout: {\r\n\t\tnum: 808,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Lash Out\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, source) {\r\n\t\t\tif (source.statsLoweredThisTurn) {\r\n\t\t\t\tthis.debug('lashout buff');\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\tlastresort: {\r\n\t\tnum: 387,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Last Resort\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.moveSlots.length < 2) return false; // Last Resort fails unless the user knows at least 2 moves\r\n\t\t\tlet hasLastResort = false; // User must actually have Last Resort for it to succeed\r\n\t\t\tfor (const moveSlot of source.moveSlots) {\r\n\t\t\t\tif (moveSlot.id === 'lastresort') {\r\n\t\t\t\t\thasLastResort = true;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (!moveSlot.used) return false;\r\n\t\t\t}\r\n\t\t\treturn hasLastResort;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tlastrespects: {\r\n\t\tnum: 854,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\treturn 50 + 50 * pokemon.side.totalFainted;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Last Respects\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t},\r\n\tlavaplume: {\r\n\t\tnum: 436,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Lava Plume\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tleafage: {\r\n\t\tnum: 670,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Leafage\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tleafblade: {\r\n\t\tnum: 348,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Leaf Blade\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tleafstorm: {\r\n\t\tnum: 437,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Leaf Storm\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tleaftornado: {\r\n\t\tnum: 536,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Leaf Tornado\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tleechlife: {\r\n\t\tnum: 141,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Leech Life\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tleechseed: {\r\n\t\tnum: 73,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Leech Seed\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'leechseed',\r\n\t\tcondition: {\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'move: Leech Seed');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 8,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tconst target = this.getAtSlot(pokemon.volatiles['leechseed'].sourceSlot);\r\n\t\t\t\tif (!target || target.fainted || target.hp <= 0) {\r\n\t\t\t\t\tthis.debug('Nothing to leech into');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst damage = this.damage(pokemon.baseMaxhp / 8, pokemon, target);\r\n\t\t\t\tif (damage) {\r\n\t\t\t\t\tthis.heal(damage, target, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tonTryImmunity(target) {\r\n\t\t\treturn !target.hasType('Grass');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tleer: {\r\n\t\tnum: 43,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Leer\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tletssnuggleforever: {\r\n\t\tnum: 726,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 190,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Let's Snuggle Forever\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1},\r\n\t\tisZ: \"mimikiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tlick: {\r\n\t\tnum: 122,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Lick\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tlifedew: {\r\n\t\tnum: 791,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Life Dew\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1, bypasssub: 1},\r\n\t\theal: [1, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allies\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\tlightofruin: {\r\n\t\tnum: 617,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Light of Ruin\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\trecoil: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tlightscreen: {\r\n\t\tnum: 113,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Light Screen\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'lightscreen',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasItem('lightclay')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonAnyModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Special') {\r\n\t\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\r\n\t\t\t\t\t\tthis.debug('Light Screen weaken');\r\n\t\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\r\n\t\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Light Screen');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 2,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'move: Light Screen');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tlightthatburnsthesky: {\r\n\t\tnum: 723,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 200,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Light That Burns the Sky\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical';\r\n\t\t},\r\n\t\tignoreAbility: true,\r\n\t\tisZ: \"ultranecroziumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tliquidation: {\r\n\t\tnum: 710,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Liquidation\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tlockon: {\r\n\t\tnum: 199,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Lock-On\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tif (source.volatiles['lockon']) return false;\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tsource.addVolatile('lockon', target);\r\n\t\t\tthis.add('-activate', source, 'move: Lock-On', '[of] ' + target);\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\r\n\t\t\tduration: 2,\r\n\t\t\tonSourceInvulnerabilityPriority: 1,\r\n\t\t\tonSourceInvulnerability(target, source, move) {\r\n\t\t\t\tif (move && source === this.effectState.target && target === this.effectState.source) return 0;\r\n\t\t\t},\r\n\t\t\tonSourceAccuracy(accuracy, target, source, move) {\r\n\t\t\t\tif (move && source === this.effectState.target && target === this.effectState.source) return true;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tlovelykiss: {\r\n\t\tnum: 142,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Lovely Kiss\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'slp',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tlowkick: {\r\n\t\tnum: 67,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst targetWeight = target.getWeight();\r\n\t\t\tlet bp;\r\n\t\t\tif (targetWeight >= 2000) {\r\n\t\t\t\tbp = 120;\r\n\t\t\t} else if (targetWeight >= 1000) {\r\n\t\t\t\tbp = 100;\r\n\t\t\t} else if (targetWeight >= 500) {\r\n\t\t\t\tbp = 80;\r\n\t\t\t} else if (targetWeight >= 250) {\r\n\t\t\t\tbp = 60;\r\n\t\t\t} else if (targetWeight >= 100) {\r\n\t\t\t\tbp = 40;\r\n\t\t\t} else {\r\n\t\t\t\tbp = 20;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Low Kick\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTryHit(target, pokemon, move) {\r\n\t\t\tif (target.volatiles['dynamax']) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'Dynamax');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tlowsweep: {\r\n\t\tnum: 490,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Low Sweep\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tluckychant: {\r\n\t\tnum: 381,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Lucky Chant\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'luckychant',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Lucky Chant'); // \"The Lucky Chant shielded [side.name]'s team from critical hits!\"\r\n\t\t\t},\r\n\t\t\tonCriticalHit: false,\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 6,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'move: Lucky Chant'); // \"[side.name]'s team's Lucky Chant wore off!\"\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tluminacrash: {\r\n\t\tnum: 855,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Lumina Crash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tlunarblessing: {\r\n\t\tnum: 849,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Lunar Blessing\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, 0.25));\r\n\t\t\treturn pokemon.cureStatus() || success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allies\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tlunardance: {\r\n\t\tnum: 461,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Lunar Dance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1, dance: 1},\r\n\t\tonTryHit(source) {\r\n\t\t\tif (!this.canSwitch(source.side)) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t},\r\n\t\tselfdestruct: \"ifHit\",\r\n\t\tslotCondition: 'lunardance',\r\n\t\tcondition: {\r\n\t\t\tonSwap(target) {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!target.fainted && (\r\n\t\t\t\t\t\ttarget.hp < target.maxhp ||\r\n\t\t\t\t\t\ttarget.status ||\r\n\t\t\t\t\t\ttarget.moveSlots.some(moveSlot => moveSlot.pp < moveSlot.maxpp)\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\ttarget.heal(target.maxhp);\r\n\t\t\t\t\ttarget.clearStatus();\r\n\t\t\t\t\tfor (const moveSlot of target.moveSlots) {\r\n\t\t\t\t\t\tmoveSlot.pp = moveSlot.maxpp;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Lunar Dance');\r\n\t\t\t\t\ttarget.side.removeSlotCondition(target, 'lunardance');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tlunge: {\r\n\t\tnum: 679,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Lunge\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tlusterpurge: {\r\n\t\tnum: 295,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Luster Purge\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmachpunch: {\r\n\t\tnum: 183,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Mach Punch\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmagicalleaf: {\r\n\t\tnum: 345,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Magical Leaf\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmagicaltorque: {\r\n\t\tnum: 900,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Magical Torque\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t},\r\n\tmagiccoat: {\r\n\t\tnum: 277,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Magic Coat\",\r\n\t\tpp: 15,\r\n\t\tpriority: 4,\r\n\t\tflags: {},\r\n\t\tvolatileStatus: 'magiccoat',\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target, source, effect) {\r\n\t\t\t\tthis.add('-singleturn', target, 'move: Magic Coat');\r\n\t\t\t\tif (effect?.effectType === 'Move') {\r\n\t\t\t\t\tthis.effectState.pranksterBoosted = effect.pranksterBoosted;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 2,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (target === source || move.hasBounced || !move.flags['reflectable']) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst newMove = this.dex.getActiveMove(move.id);\r\n\t\t\t\tnewMove.hasBounced = true;\r\n\t\t\t\tnewMove.pranksterBoosted = this.effectState.pranksterBoosted;\r\n\t\t\t\tthis.actions.useMove(newMove, target, source);\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t\tonAllyTryHitSide(target, source, move) {\r\n\t\t\t\tif (target.isAlly(source) || move.hasBounced || !move.flags['reflectable']) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst newMove = this.dex.getActiveMove(move.id);\r\n\t\t\t\tnewMove.hasBounced = true;\r\n\t\t\t\tnewMove.pranksterBoosted = false;\r\n\t\t\t\tthis.actions.useMove(newMove, this.effectState.target, source);\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spd: 2}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmagicpowder: {\r\n\t\tnum: 750,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Magic Powder\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.getTypes().join() === 'Psychic' || !target.setType('Psychic')) return false;\r\n\t\t\tthis.add('-start', target, 'typechange', 'Psychic');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tmagicroom: {\r\n\t\tnum: 478,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Magic Room\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1},\r\n\t\tpseudoWeather: 'magicroom',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Magic Room');\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonFieldStart(target, source) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Magic Room', '[of] ' + source, '[persistent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Magic Room', '[of] ' + source);\r\n\t\t\t\t}\r\n\t\t\t\tfor (const mon of this.getAllActive()) {\r\n\t\t\t\t\tthis.singleEvent('End', mon.getItem(), mon.itemState, mon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldRestart(target, source) {\r\n\t\t\t\tthis.field.removePseudoWeather('magicroom');\r\n\t\t\t},\r\n\t\t\t// Item suppression implemented in Pokemon.ignoringItem() within sim/pokemon.js\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 6,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Magic Room', '[of] ' + this.effectState.source);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmagmastorm: {\r\n\t\tnum: 463,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Magma Storm\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmagnetbomb: {\r\n\t\tnum: 443,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Magnet Bomb\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmagneticflux: {\r\n\t\tnum: 602,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Magnetic Flux\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, distance: 1, bypasssub: 1},\r\n\t\tonHitSide(side, source, move) {\r\n\t\t\tconst targets = side.allies().filter(ally => (\r\n\t\t\t\tally.hasAbility(['plus', 'minus']) &&\r\n\t\t\t\t(!ally.volatiles['maxguard'] || this.runEvent('TryHit', ally, source, move))\r\n\t\t\t));\r\n\t\t\tif (!targets.length) return false;\r\n\r\n\t\t\tlet didSomething = false;\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tdidSomething = this.boost({def: 1, spd: 1}, target, source, move, false, true) || didSomething;\r\n\t\t\t}\r\n\t\t\treturn didSomething;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmagnetrise: {\r\n\t\tnum: 393,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Magnet Rise\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, gravity: 1},\r\n\t\tvolatileStatus: 'magnetrise',\r\n\t\tonTry(source, target, move) {\r\n\t\t\tif (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false;\r\n\r\n\t\t\t// Additional Gravity check for Z-move variant\r\n\t\t\tif (this.field.getPseudoWeather('Gravity')) {\r\n\t\t\t\tthis.add('cant', source, 'move: Gravity', move);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'Magnet Rise');\r\n\t\t\t},\r\n\t\t\tonImmunity(type) {\r\n\t\t\t\tif (type === 'Ground') return false;\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 18,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Magnet Rise');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmagnitude: {\r\n\t\tnum: 222,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Magnitude\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tconst i = this.random(100);\r\n\t\t\tif (i < 5) {\r\n\t\t\t\tmove.magnitude = 4;\r\n\t\t\t\tmove.basePower = 10;\r\n\t\t\t} else if (i < 15) {\r\n\t\t\t\tmove.magnitude = 5;\r\n\t\t\t\tmove.basePower = 30;\r\n\t\t\t} else if (i < 35) {\r\n\t\t\t\tmove.magnitude = 6;\r\n\t\t\t\tmove.basePower = 50;\r\n\t\t\t} else if (i < 65) {\r\n\t\t\t\tmove.magnitude = 7;\r\n\t\t\t\tmove.basePower = 70;\r\n\t\t\t} else if (i < 85) {\r\n\t\t\t\tmove.magnitude = 8;\r\n\t\t\t\tmove.basePower = 90;\r\n\t\t\t} else if (i < 95) {\r\n\t\t\t\tmove.magnitude = 9;\r\n\t\t\t\tmove.basePower = 110;\r\n\t\t\t} else {\r\n\t\t\t\tmove.magnitude = 10;\r\n\t\t\t\tmove.basePower = 150;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonUseMoveMessage(pokemon, target, move) {\r\n\t\t\tthis.add('-activate', pokemon, 'move: Magnitude', move.magnitude);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 140},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmakeitrain: {\r\n\t\tnum: 874,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Make It Rain\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmaliciousmoonsault: {\r\n\t\tnum: 696,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 180,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Malicious Moonsault\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1},\r\n\t\tisZ: \"inciniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmatblock: {\r\n\t\tnum: 561,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mat Block\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, nonsky: 1, noassist: 1, failcopycat: 1},\r\n\t\tstallingMove: true,\r\n\t\tsideCondition: 'matblock',\r\n\t\tonTry(source) {\r\n\t\t\tif (source.activeMoveActions > 1) {\r\n\t\t\t\tthis.hint(\"Mat Block only works on your first turn out.\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn !!this.queue.willAct();\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonSideStart(target, source) {\r\n\t\t\t\tthis.add('-singleturn', source, 'Mat Block');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect']) {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move && (move.target === 'self' || move.category === 'Status')) return;\r\n\t\t\t\tthis.add('-activate', target, 'move: Mat Block', move.name);\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxairstream: {\r\n\t\tnum: 766,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Airstream\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tthis.boost({spe: 1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxdarkness: {\r\n\t\tnum: 772,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Darkness\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({spd: -1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxflare: {\r\n\t\tnum: 757,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Flare\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setWeather('sunnyday');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxflutterby: {\r\n\t\tnum: 758,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Flutterby\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({spa: -1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxgeyser: {\r\n\t\tnum: 765,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Geyser\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setWeather('raindance');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxguard: {\r\n\t\tnum: 743,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Guard\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'maxguard',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'Max Guard');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tconst bypassesMaxGuard = [\r\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',\r\n\t\t\t\t];\r\n\t\t\t\tif (bypassesMaxGuard.includes(move.id)) return;\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Max Guard');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxhailstorm: {\r\n\t\tnum: 763,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Hailstorm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setWeather('hail');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxknuckle: {\r\n\t\tnum: 761,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Knuckle\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tthis.boost({atk: 1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxlightning: {\r\n\t\tnum: 759,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Lightning\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setTerrain('electricterrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxmindstorm: {\r\n\t\tnum: 769,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Mindstorm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setTerrain('psychicterrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxooze: {\r\n\t\tnum: 764,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Ooze\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tthis.boost({spa: 1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxovergrowth: {\r\n\t\tnum: 773,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Overgrowth\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setTerrain('grassyterrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxphantasm: {\r\n\t\tnum: 762,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Phantasm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({def: -1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxquake: {\r\n\t\tnum: 771,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Quake\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tthis.boost({spd: 1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxrockfall: {\r\n\t\tnum: 770,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Rockfall\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setWeather('sandstorm');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxstarfall: {\r\n\t\tnum: 767,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Starfall\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tthis.field.setTerrain('mistyterrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxsteelspike: {\r\n\t\tnum: 774,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Steelspike\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.alliesAndSelf()) {\r\n\t\t\t\t\tthis.boost({def: 1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxstrike: {\r\n\t\tnum: 760,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Strike\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({spe: -1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmaxwyrmwind: {\r\n\t\tnum: 768,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 10,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Max Wyrmwind\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisMax: true,\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tif (!source.volatiles['dynamax']) return;\r\n\t\t\t\tfor (const pokemon of source.foes()) {\r\n\t\t\t\t\tthis.boost({atk: -1}, pokemon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmeanlook: {\r\n\t\tnum: 212,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Mean Look\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, mirror: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\treturn target.addVolatile('trapped', source, move, 'trapper');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmeditate: {\r\n\t\tnum: 96,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Meditate\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmefirst: {\r\n\t\tnum: 382,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Me First\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, bypasssub: 1,\r\n\t\t\tfailencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tonTryHit(target, pokemon) {\r\n\t\t\tconst action = this.queue.willMove(target);\r\n\t\t\tif (!action) return false;\r\n\t\t\tconst move = this.dex.getActiveMove(action.move.id);\r\n\t\t\tif (action.zmove || move.isZ || move.isMax) return false;\r\n\t\t\tif (target.volatiles['mustrecharge']) return false;\r\n\t\t\tif (move.category === 'Status' || move.flags['failmefirst']) return false;\r\n\r\n\t\t\tpokemon.addVolatile('mefirst');\r\n\t\t\tthis.actions.useMove(move, pokemon, target);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonBasePowerPriority: 12,\r\n\t\t\tonBasePower(basePower) {\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"adjacentFoe\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmegadrain: {\r\n\t\tnum: 72,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Mega Drain\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {basePower: 120},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmegahorn: {\r\n\t\tnum: 224,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Megahorn\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmegakick: {\r\n\t\tnum: 25,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Mega Kick\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmegapunch: {\r\n\t\tnum: 5,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Mega Punch\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmemento: {\r\n\t\tnum: 262,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Memento\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -2,\r\n\t\t\tspa: -2,\r\n\t\t},\r\n\t\tselfdestruct: \"ifHit\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {effect: 'healreplacement'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmenacingmoonrazemaelstrom: {\r\n\t\tnum: 725,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 200,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Menacing Moonraze Maelstrom\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"lunaliumz\",\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmetalburst: {\r\n\t\tnum: 368,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\tconst lastDamagedBy = pokemon.getLastDamagedBy(true);\r\n\t\t\tif (lastDamagedBy !== undefined) {\r\n\t\t\t\treturn (lastDamagedBy.damage * 1.5) || 1;\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Metal Burst\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, failmefirst: 1},\r\n\t\tonTry(source) {\r\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\r\n\t\t\tif (lastDamagedBy === undefined || !lastDamagedBy.thisTurn) return false;\r\n\t\t},\r\n\t\tonModifyTarget(targetRelayVar, source, target, move) {\r\n\t\t\tconst lastDamagedBy = source.getLastDamagedBy(true);\r\n\t\t\tif (lastDamagedBy) {\r\n\t\t\t\ttargetRelayVar.target = this.getAtSlot(lastDamagedBy.slot);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"scripted\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmetalclaw: {\r\n\t\tnum: 232,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Metal Claw\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tatk: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmetalsound: {\r\n\t\tnum: 319,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Metal Sound\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tspd: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmeteorassault: {\r\n\t\tnum: 794,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Meteor Assault\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, recharge: 1, mirror: 1, failinstruct: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tmeteorbeam: {\r\n\t\tnum: 800,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Meteor Beam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, protect: 1, mirror: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tthis.boost({spa: 1}, attacker, attacker, move);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t},\r\n\tmeteormash: {\r\n\t\tnum: 309,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Meteor Mash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tatk: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmetronome: {\r\n\t\tnum: 118,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Metronome\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tnoMetronome: [\r\n\t\t\t\"After You\", \"Apple Acid\", \"Armor Cannon\", \"Assist\", \"Astral Barrage\", \"Aura Wheel\", \"Baneful Bunker\", \"Beak Blast\", \"Behemoth Bash\", \"Behemoth Blade\", \"Belch\", \"Bestow\", \"Blazing Torque\", \"Body Press\", \"Branch Poke\", \"Breaking Swipe\", \"Celebrate\", \"Chatter\", \"Chilling Water\", \"Chilly Reception\", \"Clangorous Soul\", \"Collision Course\", \"Combat Torque\", \"Comeuppance\", \"Copycat\", \"Counter\", \"Covet\", \"Crafty Shield\", \"Decorate\", \"Destiny Bond\", \"Detect\", \"Diamond Storm\", \"Doodle\", \"Double Iron Bash\", \"Double Shock\", \"Dragon Ascent\", \"Dragon Energy\", \"Drum Beating\", \"Dynamax Cannon\", \"Electro Drift\", \"Endure\", \"Eternabeam\", \"False Surrender\", \"Feint\", \"Fiery Wrath\", \"Fillet Away\", \"Fleur Cannon\", \"Focus Punch\", \"Follow Me\", \"Freeze Shock\", \"Freezing Glare\", \"Glacial Lance\", \"Grav Apple\", \"Helping Hand\", \"Hold Hands\", \"Hyper Drill\", \"Hyperspace Fury\", \"Hyperspace Hole\", \"Ice Burn\", \"Instruct\", \"Jet Punch\", \"Jungle Healing\", \"King's Shield\", \"Life Dew\", \"Light of Ruin\", \"Magical Torque\", \"Make It Rain\", \"Mat Block\", \"Me First\", \"Meteor Assault\", \"Metronome\", \"Mimic\", \"Mind Blown\", \"Mirror Coat\", \"Mirror Move\", \"Moongeist Beam\", \"Nature Power\", \"Nature's Madness\", \"Noxious Torque\", \"Obstruct\", \"Order Up\", \"Origin Pulse\", \"Overdrive\", \"Photon Geyser\", \"Plasma Fists\", \"Population Bomb\", \"Pounce\", \"Power Shift\", \"Precipice Blades\", \"Protect\", \"Pyro Ball\", \"Quash\", \"Quick Guard\", \"Rage Fist\", \"Rage Powder\", \"Raging Bull\", \"Raging Fury\", \"Relic Song\", \"Revival Blessing\", \"Ruination\", \"Salt Cure\", \"Secret Sword\", \"Shed Tail\", \"Shell Trap\", \"Silk Trap\", \"Sketch\", \"Sleep Talk\", \"Snap Trap\", \"Snarl\", \"Snatch\", \"Snore\", \"Snowscape\", \"Spectral Thief\", \"Spicy Extract\", \"Spiky Shield\", \"Spirit Break\", \"Spotlight\", \"Springtide Storm\", \"Steam Eruption\", \"Steel Beam\", \"Strange Steam\", \"Struggle\", \"Sunsteel Strike\", \"Surging Strikes\", \"Switcheroo\", \"Techno Blast\", \"Thief\", \"Thousand Arrows\", \"Thousand Waves\", \"Thunder Cage\", \"Thunderous Kick\", \"Tidy Up\", \"Trailblaze\", \"Transform\", \"Trick\", \"Twin Beam\", \"V-create\", \"Wicked Blow\", \"Wicked Torque\", \"Wide Guard\",\r\n\t\t],\r\n\t\tonHit(target, source, effect) {\r\n\t\t\tconst moves = this.dex.moves.all().filter(move => (\r\n\t\t\t\t(![2, 4].includes(this.gen) || !source.moves.includes(move.id)) &&\r\n\t\t\t\t!move.realMove && !move.isZ && !move.isMax &&\r\n\t\t\t\t(!move.isNonstandard || move.isNonstandard === 'Unobtainable') &&\r\n\t\t\t\t!effect.noMetronome!.includes(move.name)\r\n\t\t\t));\r\n\t\t\tlet randomMove = '';\r\n\t\t\tif (moves.length) {\r\n\t\t\t\tmoves.sort((a, b) => a.num - b.num);\r\n\t\t\t\trandomMove = this.sample(moves).id;\r\n\t\t\t}\r\n\t\t\tif (!randomMove) return false;\r\n\t\t\tsource.side.lastSelectedMove = this.toID(randomMove);\r\n\t\t\tthis.actions.useMove(randomMove, target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmilkdrink: {\r\n\t\tnum: 208,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Milk Drink\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmimic: {\r\n\t\tnum: 102,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Mimic\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, bypasssub: 1, allyanim: 1,\r\n\t\t\tfailencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst move = target.lastMove;\r\n\t\t\tif (source.transformed || !move || move.flags['failmimic'] || source.moves.includes(move.id)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (move.isZ || move.isMax) return false;\r\n\t\t\tconst mimicIndex = source.moves.indexOf('mimic');\r\n\t\t\tif (mimicIndex < 0) return false;\r\n\r\n\t\t\tsource.moveSlots[mimicIndex] = {\r\n\t\t\t\tmove: move.name,\r\n\t\t\t\tid: move.id,\r\n\t\t\t\tpp: move.pp,\r\n\t\t\t\tmaxpp: move.pp,\r\n\t\t\t\ttarget: move.target,\r\n\t\t\t\tdisabled: false,\r\n\t\t\t\tused: false,\r\n\t\t\t\tvirtual: true,\r\n\t\t\t};\r\n\t\t\tthis.add('-start', source, 'Mimic', move.name);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmindblown: {\r\n\t\tnum: 720,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mind Blown\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmindBlownRecoil: true,\r\n\t\tonAfterMove(pokemon, target, move) {\r\n\t\t\tif (move.mindBlownRecoil && !move.multihit) {\r\n\t\t\t\tconst hpBeforeRecoil = pokemon.hp;\r\n\t\t\t\tthis.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Mind Blown'), true);\r\n\t\t\t\tif (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) {\r\n\t\t\t\t\tthis.runEvent('EmergencyExit', pokemon, pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmindreader: {\r\n\t\tnum: 170,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mind Reader\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tif (source.volatiles['lockon']) return false;\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tsource.addVolatile('lockon', target);\r\n\t\t\tthis.add('-activate', source, 'move: Mind Reader', '[of] ' + target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tminimize: {\r\n\t\tnum: 107,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Minimize\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'minimize',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonRestart: () => null,\r\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\t\tconst boostedMoves = [\r\n\t\t\t\t\t'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault',\r\n\t\t\t\t];\r\n\t\t\t\tif (boostedMoves.includes(move.id)) {\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonAccuracy(accuracy, target, source, move) {\r\n\t\t\t\tconst boostedMoves = [\r\n\t\t\t\t\t'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault',\r\n\t\t\t\t];\r\n\t\t\t\tif (boostedMoves.includes(move.id)) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn accuracy;\r\n\t\t\t},\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tevasion: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmiracleeye: {\r\n\t\tnum: 357,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Miracle Eye\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'miracleeye',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.volatiles['foresight']) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Miracle Eye');\r\n\t\t\t},\r\n\t\t\tonNegateImmunity(pokemon, type) {\r\n\t\t\t\tif (pokemon.hasType('Dark') && type === 'Psychic') return false;\r\n\t\t\t},\r\n\t\t\tonModifyBoost(boosts) {\r\n\t\t\t\tif (boosts.evasion && boosts.evasion > 0) {\r\n\t\t\t\t\tboosts.evasion = 0;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmirrorcoat: {\r\n\t\tnum: 243,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\tif (!pokemon.volatiles['mirrorcoat']) return 0;\r\n\t\t\treturn pokemon.volatiles['mirrorcoat'].damage || 1;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Mirror Coat\",\r\n\t\tpp: 20,\r\n\t\tpriority: -5,\r\n\t\tflags: {protect: 1, failmefirst: 1, noassist: 1},\r\n\t\tbeforeTurnCallback(pokemon) {\r\n\t\t\tpokemon.addVolatile('mirrorcoat');\r\n\t\t},\r\n\t\tonTry(source) {\r\n\t\t\tif (!source.volatiles['mirrorcoat']) return false;\r\n\t\t\tif (source.volatiles['mirrorcoat'].slot === null) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target, source, move) {\r\n\t\t\t\tthis.effectState.slot = null;\r\n\t\t\t\tthis.effectState.damage = 0;\r\n\t\t\t},\r\n\t\t\tonRedirectTargetPriority: -1,\r\n\t\t\tonRedirectTarget(target, source, source2, move) {\r\n\t\t\t\tif (move.id !== 'mirrorcoat') return;\r\n\t\t\t\tif (source !== this.effectState.target || !this.effectState.slot) return;\r\n\t\t\t\treturn this.getAtSlot(this.effectState.slot);\r\n\t\t\t},\r\n\t\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\t\tif (!source.isAlly(target) && this.getCategory(move) === 'Special') {\r\n\t\t\t\t\tthis.effectState.slot = source.getSlot();\r\n\t\t\t\t\tthis.effectState.damage = 2 * damage;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"scripted\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmirrormove: {\r\n\t\tnum: 119,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mirror Move\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonTryHit(target, pokemon) {\r\n\t\t\tconst move = target.lastMove;\r\n\t\t\tif (!move?.flags['mirror'] || move.isZ || move.isMax) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(move.id, pokemon, target);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tzMove: {boost: {atk: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmirrorshot: {\r\n\t\tnum: 429,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mirror Shot\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmist: {\r\n\t\tnum: 54,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Mist\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'mist',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tonTryBoost(boost, target, source, effect) {\r\n\t\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\t\tif (source && target !== source) {\r\n\t\t\t\t\tlet showMsg = false;\r\n\t\t\t\t\tlet i: BoostID;\r\n\t\t\t\t\tfor (i in boost) {\r\n\t\t\t\t\t\tif (boost[i]! < 0) {\r\n\t\t\t\t\t\t\tdelete boost[i];\r\n\t\t\t\t\t\t\tshowMsg = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (showMsg && !(effect as ActiveMove).secondaries) {\r\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Mist');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'Mist');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 4,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'Mist');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmistball: {\r\n\t\tnum: 296,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mist Ball\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tmistyexplosion: {\r\n\t\tnum: 802,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Misty Explosion\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tselfdestruct: \"always\",\r\n\t\tonBasePower(basePower, source) {\r\n\t\t\tif (this.field.isTerrain('mistyterrain') && source.isGrounded()) {\r\n\t\t\t\tthis.debug('misty terrain boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Fairy\",\r\n\t},\r\n\tmistyterrain: {\r\n\t\tnum: 581,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Misty Terrain\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tterrain: 'mistyterrain',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasItem('terrainextender')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonSetStatus(status, target, source, effect) {\r\n\t\t\t\tif (!target.isGrounded() || target.isSemiInvulnerable()) return;\r\n\t\t\t\tif (effect && ((effect as Move).status || effect.id === 'yawn')) {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Misty Terrain');\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonTryAddVolatile(status, target, source, effect) {\r\n\t\t\t\tif (!target.isGrounded() || target.isSemiInvulnerable()) return;\r\n\t\t\t\tif (status.id === 'confusion') {\r\n\t\t\t\t\tif (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Misty Terrain');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 6,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tif (move.type === 'Dragon' && defender.isGrounded() && !defender.isSemiInvulnerable()) {\r\n\t\t\t\t\tthis.debug('misty terrain weaken');\r\n\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldStart(field, source, effect) {\r\n\t\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Misty Terrain', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Misty Terrain');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 7,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'Misty Terrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmoonblast: {\r\n\t\tnum: 585,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 95,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Moonblast\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmoongeistbeam: {\r\n\t\tnum: 714,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Moongeist Beam\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tmoonlight: {\r\n\t\tnum: 236,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Moonlight\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tlet factor = 0.5;\r\n\t\t\tswitch (pokemon.effectiveWeather()) {\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tfactor = 0.667;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\tcase 'sandstorm':\r\n\t\t\tcase 'hail':\r\n\t\t\tcase 'snow':\r\n\t\t\t\tfactor = 0.25;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\r\n\t\t\tif (!success) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmorningsun: {\r\n\t\tnum: 234,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Morning Sun\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tlet factor = 0.5;\r\n\t\t\tswitch (pokemon.effectiveWeather()) {\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tfactor = 0.667;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\tcase 'sandstorm':\r\n\t\t\tcase 'hail':\r\n\t\t\tcase 'snow':\r\n\t\t\t\tfactor = 0.25;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\r\n\t\t\tif (!success) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmortalspin: {\r\n\t\tnum: 866,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Mortal Spin\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonAfterHit(target, pokemon) {\r\n\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', '[of] ' + pokemon);\r\n\t\t\t}\r\n\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\r\n\t\t\tfor (const condition of sideConditions) {\r\n\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\r\n\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\r\n\t\t\t\tpokemon.removeVolatile('partiallytrapped');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonAfterSubDamage(damage, target, pokemon) {\r\n\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', '[of] ' + pokemon);\r\n\t\t\t}\r\n\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\r\n\t\t\tfor (const condition of sideConditions) {\r\n\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\r\n\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\r\n\t\t\t\tpokemon.removeVolatile('partiallytrapped');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Poison\",\r\n\t},\r\n\tmountaingale: {\r\n\t\tnum: 836,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Mountain Gale\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t},\r\n\tmudbomb: {\r\n\t\tnum: 426,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mud Bomb\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmudshot: {\r\n\t\tnum: 341,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 55,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Mud Shot\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmudslap: {\r\n\t\tnum: 189,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Mud-Slap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmudsport: {\r\n\t\tnum: 300,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Mud Sport\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tpseudoWeather: 'mudsport',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tonFieldStart(field, source) {\r\n\t\t\t\tthis.add('-fieldstart', 'move: Mud Sport', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 1,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tif (move.type === 'Electric') {\r\n\t\t\t\t\tthis.debug('mud sport weaken');\r\n\t\t\t\t\treturn this.chainModify([1352, 4096]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 4,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Mud Sport');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tmuddywater: {\r\n\t\tnum: 330,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Muddy Water\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmultiattack: {\r\n\t\tnum: 718,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Multi-Attack\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tif (pokemon.ignoringItem()) return;\r\n\t\t\tmove.type = this.runEvent('Memory', pokemon, null, move, 'Normal');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 185},\r\n\t\tmaxMove: {basePower: 95},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmysticalfire: {\r\n\t\tnum: 595,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Mystical Fire\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmysticalpower: {\r\n\t\tnum: 832,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Mystical Power\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tnastyplot: {\r\n\t\tnum: 417,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Nasty Plot\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspa: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tnaturalgift: {\r\n\t\tnum: 363,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Natural Gift\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tif (pokemon.ignoringItem()) return;\r\n\t\t\tconst item = pokemon.getItem();\r\n\t\t\tif (!item.naturalGift) return;\r\n\t\t\tmove.type = item.naturalGift.type;\r\n\t\t},\r\n\t\tonPrepareHit(target, pokemon, move) {\r\n\t\t\tif (pokemon.ignoringItem()) return false;\r\n\t\t\tconst item = pokemon.getItem();\r\n\t\t\tif (!item.naturalGift) return false;\r\n\t\t\tmove.basePower = item.naturalGift.basePower;\r\n\t\t\tthis.debug('BP: ' + move.basePower);\r\n\t\t\tpokemon.setItem('');\r\n\t\t\tpokemon.lastItem = item.id;\r\n\t\t\tpokemon.usedItemThisTurn = true;\r\n\t\t\tthis.runEvent('AfterUseItem', pokemon, null, null, item);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tnaturepower: {\r\n\t\tnum: 267,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Nature Power\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonTryHit(target, pokemon) {\r\n\t\t\tlet move = 'triattack';\r\n\t\t\tif (this.field.isTerrain('electricterrain')) {\r\n\t\t\t\tmove = 'thunderbolt';\r\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\r\n\t\t\t\tmove = 'energyball';\r\n\t\t\t} else if (this.field.isTerrain('mistyterrain')) {\r\n\t\t\t\tmove = 'moonblast';\r\n\t\t\t} else if (this.field.isTerrain('psychicterrain')) {\r\n\t\t\t\tmove = 'psychic';\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(move, pokemon, target);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tnaturesmadness: {\r\n\t\tnum: 717,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\treturn this.clampIntRange(Math.floor(target.getUndynamaxedHP() / 2), 1);\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Nature's Madness\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tneedlearm: {\r\n\t\tnum: 302,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Needle Arm\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tneverendingnightmare: {\r\n\t\tnum: 636,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Never-Ending Nightmare\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"ghostiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tnightdaze: {\r\n\t\tnum: 539,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Night Daze\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 40,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tnightmare: {\r\n\t\tnum: 171,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Nightmare\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'nightmare',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tif (pokemon.status !== 'slp' && !pokemon.hasAbility('comatose')) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-start', pokemon, 'Nightmare');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 11,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tthis.damage(pokemon.baseMaxhp / 4);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tnightshade: {\r\n\t\tnum: 101,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamage: 'level',\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Night Shade\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tnightslash: {\r\n\t\tnum: 400,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Night Slash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tnobleroar: {\r\n\t\tnum: 568,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Noble Roar\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -1,\r\n\t\t\tspa: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tnoretreat: {\r\n\t\tnum: 748,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"No Retreat\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'noretreat',\r\n\t\tonTry(source, target, move) {\r\n\t\t\tif (source.volatiles['noretreat']) return false;\r\n\t\t\tif (source.volatiles['trapped']) {\r\n\t\t\t\tdelete move.volatileStatus;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'move: No Retreat');\r\n\t\t\t},\r\n\t\t\tonTrapPokemon(pokemon) {\r\n\t\t\t\tpokemon.tryTrap();\r\n\t\t\t},\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tdef: 1,\r\n\t\t\tspa: 1,\r\n\t\t\tspd: 1,\r\n\t\t\tspe: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tnoxioustorque: {\r\n\t\tnum: 898,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Noxious Torque\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t},\r\n\tnuzzle: {\r\n\t\tnum: 609,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Nuzzle\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\toblivionwing: {\r\n\t\tnum: 613,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Oblivion Wing\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, distance: 1, heal: 1},\r\n\t\tdrain: [3, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tobstruct: {\r\n\t\tnum: 792,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Obstruct\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {failinstruct: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'obstruct',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.boost({def: -2}, source, target, this.dex.getActiveMove(\"Obstruct\"));\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.boost({def: -2}, source, target, this.dex.getActiveMove(\"Obstruct\"));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\toceanicoperetta: {\r\n\t\tnum: 697,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 195,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Oceanic Operetta\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"primariumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\toctazooka: {\r\n\t\tnum: 190,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Octazooka\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\taccuracy: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\toctolock: {\r\n\t\tnum: 753,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Octolock\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonTryImmunity(target) {\r\n\t\t\treturn this.dex.getImmunity('trapped', target);\r\n\t\t},\r\n\t\tvolatileStatus: 'octolock',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon, source) {\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Octolock', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 14,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tconst source = this.effectState.source;\r\n\t\t\t\tif (source && (!source.isActive || source.hp <= 0 || !source.activeTurns)) {\r\n\t\t\t\t\tdelete pokemon.volatiles['octolock'];\r\n\t\t\t\t\tthis.add('-end', pokemon, 'Octolock', '[partiallytrapped]', '[silent]');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.boost({def: -1, spd: -1}, pokemon, source, this.dex.getActiveMove('octolock'));\r\n\t\t\t},\r\n\t\t\tonTrapPokemon(pokemon) {\r\n\t\t\t\tif (this.effectState.source && this.effectState.source.isActive) pokemon.tryTrap();\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\todorsleuth: {\r\n\t\tnum: 316,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Odor Sleuth\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1},\r\n\t\tvolatileStatus: 'foresight',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.volatiles['miracleeye']) return false;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tominouswind: {\r\n\t\tnum: 466,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Ominous Wind\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tatk: 1,\r\n\t\t\t\t\tdef: 1,\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t\tspd: 1,\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\torderup: {\r\n\t\tnum: 856,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Order Up\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1},\r\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\r\n\t\t\tif (!pokemon.volatiles['commanded']) return;\r\n\t\t\tconst tatsugiri = pokemon.volatiles['commanded'].source;\r\n\t\t\tif (tatsugiri.baseSpecies.baseSpecies !== 'Tatsugiri') return; // Should never happen\r\n\t\t\tswitch (tatsugiri.baseSpecies.forme) {\r\n\t\t\tcase 'Droopy':\r\n\t\t\t\tthis.boost({def: 1}, pokemon, pokemon);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Stretchy':\r\n\t\t\t\tthis.boost({spe: 1}, pokemon, pokemon);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthis.boost({atk: 1}, pokemon, pokemon);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\thasSheerForce: true,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t},\r\n\toriginpulse: {\r\n\t\tnum: 618,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Origin Pulse\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, pulse: 1, mirror: 1},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\toutrage: {\r\n\t\tnum: 200,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Outrage\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, failinstruct: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'lockedmove',\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\toverdrive: {\r\n\t\tnum: 786,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Overdrive\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Electric\",\r\n\t},\r\n\toverheat: {\r\n\t\tnum: 315,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Overheat\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpainsplit: {\r\n\t\tnum: 220,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Pain Split\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target, pokemon) {\r\n\t\t\tconst targetHP = target.getUndynamaxedHP();\r\n\t\t\tconst averagehp = Math.floor((targetHP + pokemon.hp) / 2) || 1;\r\n\t\t\tconst targetChange = targetHP - averagehp;\r\n\t\t\ttarget.sethp(target.hp - targetChange);\r\n\t\t\tthis.add('-sethp', target, target.getHealth, '[from] move: Pain Split', '[silent]');\r\n\t\t\tpokemon.sethp(averagehp);\r\n\t\t\tthis.add('-sethp', pokemon, pokemon.getHealth, '[from] move: Pain Split');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpaleowave: {\r\n\t\tnum: 0,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"CAP\",\r\n\t\tname: \"Paleo Wave\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tparaboliccharge: {\r\n\t\tnum: 570,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Parabolic Charge\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, heal: 1},\r\n\t\tdrain: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpartingshot: {\r\n\t\tnum: 575,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Parting Shot\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tconst success = this.boost({atk: -1, spa: -1}, target, source);\r\n\t\t\tif (!success && !target.hasAbility('mirrorarmor')) {\r\n\t\t\t\tdelete move.selfSwitch;\r\n\t\t\t}\r\n\t\t},\r\n\t\tselfSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {effect: 'healreplacement'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpayback: {\r\n\t\tnum: 371,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.newlySwitched || this.queue.willMove(target)) {\r\n\t\t\t\tthis.debug('Payback NOT boosted');\r\n\t\t\t\treturn move.basePower;\r\n\t\t\t}\r\n\t\t\tthis.debug('Payback damage boost');\r\n\t\t\treturn move.basePower * 2;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Payback\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tpayday: {\r\n\t\tnum: 6,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Pay Day\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpeck: {\r\n\t\tnum: 64,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Peck\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tperishsong: {\r\n\t\tnum: 195,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Perish Song\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {sound: 1, distance: 1, bypasssub: 1},\r\n\t\tonHitField(target, source, move) {\r\n\t\t\tlet result = false;\r\n\t\t\tlet message = false;\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tif (this.runEvent('Invulnerability', pokemon, source, move) === false) {\r\n\t\t\t\t\tthis.add('-miss', source, pokemon);\r\n\t\t\t\t\tresult = true;\r\n\t\t\t\t} else if (this.runEvent('TryHit', pokemon, source, move) === null) {\r\n\t\t\t\t\tresult = true;\r\n\t\t\t\t} else if (!pokemon.volatiles['perishsong']) {\r\n\t\t\t\t\tpokemon.addVolatile('perishsong');\r\n\t\t\t\t\tthis.add('-start', pokemon, 'perish3', '[silent]');\r\n\t\t\t\t\tresult = true;\r\n\t\t\t\t\tmessage = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!result) return false;\r\n\t\t\tif (message) this.add('-fieldactivate', 'move: Perish Song');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-start', target, 'perish0');\r\n\t\t\t\ttarget.faint();\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 24,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tconst duration = pokemon.volatiles['perishsong'].duration;\r\n\t\t\t\tthis.add('-start', pokemon, 'perish' + duration);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpetalblizzard: {\r\n\t\tnum: 572,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Petal Blizzard\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpetaldance: {\r\n\t\tnum: 80,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Petal Dance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, dance: 1, failinstruct: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'lockedmove',\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tphantomforce: {\r\n\t\tnum: 566,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Phantom Force\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, charge: 1, mirror: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1},\r\n\t\tbreaksProtect: true,\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonInvulnerability: false,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tphotongeyser: {\r\n\t\tnum: 722,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Photon Geyser\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical';\r\n\t\t},\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpikapapow: {\r\n\t\tnum: 732,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\tconst bp = Math.floor((pokemon.happiness * 10) / 25) || 1;\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Pika Papow\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tpinmissile: {\r\n\t\tnum: 42,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Pin Missile\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tplasmafists: {\r\n\t\tnum: 721,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Plasma Fists\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tpseudoWeather: 'iondeluge',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tplaynice: {\r\n\t\tnum: 589,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Play Nice\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tplayrough: {\r\n\t\tnum: 583,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Play Rough\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tpluck: {\r\n\t\tnum: 365,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Pluck\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst item = target.getItem();\r\n\t\t\tif (source.hp && item.isBerry && target.takeItem(source)) {\r\n\t\t\t\tthis.add('-enditem', target, item.name, '[from] stealeat', '[move] Pluck', '[of] ' + source);\r\n\t\t\t\tif (this.singleEvent('Eat', item, null, source, null, null)) {\r\n\t\t\t\t\tthis.runEvent('EatItem', source, null, null, item);\r\n\t\t\t\t\tif (item.id === 'leppaberry') target.staleness = 'external';\r\n\t\t\t\t}\r\n\t\t\t\tif (item.onEat) source.ateBerry = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tpoisonfang: {\r\n\t\tnum: 305,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Poison Fang\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tstatus: 'tox',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpoisongas: {\r\n\t\tnum: 139,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Poison Gas\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'psn',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpoisonjab: {\r\n\t\tnum: 398,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Poison Jab\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tpoisonpowder: {\r\n\t\tnum: 77,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Poison Powder\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'psn',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpoisonsting: {\r\n\t\tnum: 40,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Poison Sting\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpoisontail: {\r\n\t\tnum: 342,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Poison Tail\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpollenpuff: {\r\n\t\tnum: 676,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Pollen Puff\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1, allyanim: 1},\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (source.isAlly(target)) {\r\n\t\t\t\tmove.basePower = 0;\r\n\t\t\t\tmove.infiltrates = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (source.isAlly(target)) {\r\n\t\t\t\tif (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {\r\n\t\t\t\t\tthis.add('-immune', target);\r\n\t\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tpoltergeist: {\r\n\t\tnum: 809,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Poltergeist\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonTry(source, target) {\r\n\t\t\treturn !!target.item;\r\n\t\t},\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tthis.add('-activate', target, 'move: Poltergeist', this.dex.items.get(target.item).name);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t},\r\n\tpopulationbomb: {\r\n\t\tnum: 860,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Population Bomb\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tmultihit: 10,\r\n\t\tmultiaccuracy: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tpounce: {\r\n\t\tnum: 884,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Pounce\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tpound: {\r\n\t\tnum: 1,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Pound\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tpowder: {\r\n\t\tnum: 600,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Powder\",\r\n\t\tpp: 20,\r\n\t\tpriority: 1,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'powder',\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'Powder');\r\n\t\t\t},\r\n\t\t\tonTryMovePriority: -1,\r\n\t\t\tonTryMove(pokemon, target, move) {\r\n\t\t\t\tif (move.type === 'Fire') {\r\n\t\t\t\t\tthis.add('-activate', pokemon, 'move: Powder');\r\n\t\t\t\t\tthis.damage(this.clampIntRange(Math.round(pokemon.maxhp / 4), 1));\r\n\t\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {boost: {spd: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpowdersnow: {\r\n\t\tnum: 181,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Powder Snow\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'frz',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpowergem: {\r\n\t\tnum: 408,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Power Gem\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpowershift: {\r\n\t\tnum: 829,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Power Shift\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'powershift',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Power Shift');\r\n\t\t\t\t[pokemon.storedStats.atk, pokemon.storedStats.spa,\r\n\t\t\t\t\tpokemon.storedStats.def, pokemon.storedStats.spd] =\r\n\t\t\t\t[pokemon.storedStats.def, pokemon.storedStats.spd,\r\n\t\t\t\t\tpokemon.storedStats.atk, pokemon.storedStats.spa];\r\n\t\t\t},\r\n\t\t\tonCopy(pokemon) {\r\n\t\t\t\t[pokemon.storedStats.atk, pokemon.storedStats.spa,\r\n\t\t\t\t\tpokemon.storedStats.def, pokemon.storedStats.spd] =\r\n\t\t\t\t[pokemon.storedStats.def, pokemon.storedStats.spd,\r\n\t\t\t\t\tpokemon.storedStats.atk, pokemon.storedStats.spa];\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Power Shift');\r\n\t\t\t\t[pokemon.storedStats.atk, pokemon.storedStats.spa,\r\n\t\t\t\t\tpokemon.storedStats.def, pokemon.storedStats.spd] =\r\n\t\t\t\t[pokemon.storedStats.def, pokemon.storedStats.spd,\r\n\t\t\t\t\tpokemon.storedStats.atk, pokemon.storedStats.spa];\r\n\t\t\t},\r\n\t\t\tonRestart(pokemon) {\r\n\t\t\t\tpokemon.removeVolatile('Power Shift');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tpowersplit: {\r\n\t\tnum: 471,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Power Split\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst newatk = Math.floor((target.storedStats.atk + source.storedStats.atk) / 2);\r\n\t\t\ttarget.storedStats.atk = newatk;\r\n\t\t\tsource.storedStats.atk = newatk;\r\n\t\t\tconst newspa = Math.floor((target.storedStats.spa + source.storedStats.spa) / 2);\r\n\t\t\ttarget.storedStats.spa = newspa;\r\n\t\t\tsource.storedStats.spa = newspa;\r\n\t\t\tthis.add('-activate', source, 'move: Power Split', '[of] ' + target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpowerswap: {\r\n\t\tnum: 384,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Power Swap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst targetBoosts: SparseBoostsTable = {};\r\n\t\t\tconst sourceBoosts: SparseBoostsTable = {};\r\n\r\n\t\t\tconst atkSpa: BoostID[] = ['atk', 'spa'];\r\n\t\t\tfor (const stat of atkSpa) {\r\n\t\t\t\ttargetBoosts[stat] = target.boosts[stat];\r\n\t\t\t\tsourceBoosts[stat] = source.boosts[stat];\r\n\t\t\t}\r\n\r\n\t\t\tsource.setBoost(targetBoosts);\r\n\t\t\ttarget.setBoost(sourceBoosts);\r\n\r\n\t\t\tthis.add('-swapboost', source, target, 'atk, spa', '[from] move: Power Swap');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpowertrick: {\r\n\t\tnum: 379,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Power Trick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tvolatileStatus: 'powertrick',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Power Trick');\r\n\t\t\t\tconst newatk = pokemon.storedStats.def;\r\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\r\n\t\t\t\tpokemon.storedStats.atk = newatk;\r\n\t\t\t\tpokemon.storedStats.def = newdef;\r\n\t\t\t},\r\n\t\t\tonCopy(pokemon) {\r\n\t\t\t\tconst newatk = pokemon.storedStats.def;\r\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\r\n\t\t\t\tpokemon.storedStats.atk = newatk;\r\n\t\t\t\tpokemon.storedStats.def = newdef;\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Power Trick');\r\n\t\t\t\tconst newatk = pokemon.storedStats.def;\r\n\t\t\t\tconst newdef = pokemon.storedStats.atk;\r\n\t\t\t\tpokemon.storedStats.atk = newatk;\r\n\t\t\t\tpokemon.storedStats.def = newdef;\r\n\t\t\t},\r\n\t\t\tonRestart(pokemon) {\r\n\t\t\t\tpokemon.removeVolatile('Power Trick');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpowertrip: {\r\n\t\tnum: 681,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst bp = move.basePower + 20 * pokemon.positiveBoosts();\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Power Trip\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpoweruppunch: {\r\n\t\tnum: 612,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Power-Up Punch\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tatk: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tpowerwhip: {\r\n\t\tnum: 438,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Power Whip\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tprecipiceblades: {\r\n\t\tnum: 619,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Precipice Blades\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpresent: {\r\n\t\tnum: 217,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Present\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tconst rand = this.random(10);\r\n\t\t\tif (rand < 2) {\r\n\t\t\t\tmove.heal = [1, 4];\r\n\t\t\t\tmove.infiltrates = true;\r\n\t\t\t} else if (rand < 6) {\r\n\t\t\t\tmove.basePower = 40;\r\n\t\t\t} else if (rand < 9) {\r\n\t\t\t\tmove.basePower = 80;\r\n\t\t\t} else {\r\n\t\t\t\tmove.basePower = 120;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tprismaticlaser: {\r\n\t\tnum: 711,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 160,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Prismatic Laser\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tprotect: {\r\n\t\tnum: 182,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Protect\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {noassist: 1, failcopycat: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'protect',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect']) {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tpsybeam: {\r\n\t\tnum: 60,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Psybeam\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpsyblade: {\r\n\t\tnum: 875,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Psyblade\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tsecondary: null,\r\n\t\tonBasePower(basePower, source) {\r\n\t\t\tif (this.field.isTerrain('electricterrain')) {\r\n\t\t\t\tthis.debug('psyblade electric terrain boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tpsychup: {\r\n\t\tnum: 244,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Psych Up\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tlet i: BoostID;\r\n\t\t\tfor (i in target.boosts) {\r\n\t\t\t\tsource.boosts[i] = target.boosts[i];\r\n\t\t\t}\r\n\t\t\tconst volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus'];\r\n\t\t\tfor (const volatile of volatilesToCopy) {\r\n\t\t\t\tif (target.volatiles[volatile]) {\r\n\t\t\t\t\tsource.addVolatile(volatile);\r\n\t\t\t\t\tif (volatile === 'gmaxchistrike') source.volatiles[volatile].layers = target.volatiles[volatile].layers;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsource.removeVolatile(volatile);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.add('-copyboost', source, target, '[from] move: Psych Up');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpsychic: {\r\n\t\tnum: 94,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Psychic\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpsychicfangs: {\r\n\t\tnum: 706,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Psychic Fangs\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tonTryHit(pokemon) {\r\n\t\t\t// will shatter screens through sub, before you hit\r\n\t\t\tpokemon.side.removeSideCondition('reflect');\r\n\t\t\tpokemon.side.removeSideCondition('lightscreen');\r\n\t\t\tpokemon.side.removeSideCondition('auroraveil');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpsychicterrain: {\r\n\t\tnum: 678,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Psychic Terrain\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tterrain: 'psychicterrain',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasItem('terrainextender')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 4,\r\n\t\t\tonTryHit(target, source, effect) {\r\n\t\t\t\tif (effect && (effect.priority <= 0.1 || effect.target === 'self')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (target.isSemiInvulnerable() || target.isAlly(source)) return;\r\n\t\t\t\tif (!target.isGrounded()) {\r\n\t\t\t\t\tconst baseMove = this.dex.moves.get(effect.id);\r\n\t\t\t\t\tif (baseMove.priority > 0) {\r\n\t\t\t\t\t\tthis.hint(\"Psychic Terrain doesn't affect Pok\u00E9mon immune to Ground.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-activate', target, 'move: Psychic Terrain');\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 6,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tif (move.type === 'Psychic' && attacker.isGrounded() && !attacker.isSemiInvulnerable()) {\r\n\t\t\t\t\tthis.debug('psychic terrain boost');\r\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldStart(field, source, effect) {\r\n\t\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Psychic Terrain', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Psychic Terrain');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 7,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Psychic Terrain');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpsychoboost: {\r\n\t\tnum: 354,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Psycho Boost\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpsychocut: {\r\n\t\tnum: 427,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Psycho Cut\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, slicing: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpsychoshift: {\r\n\t\tnum: 375,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Psycho Shift\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (!source.status) return false;\r\n\t\t\tmove.status = source.status;\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tpokemon.cureStatus();\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpsyshieldbash: {\r\n\t\tnum: 828,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Psyshield Bash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tdef: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\tpsyshock: {\r\n\t\tnum: 473,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\toverrideDefensiveStat: 'def',\r\n\t\tname: \"Psyshock\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpsystrike: {\r\n\t\tnum: 540,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\toverrideDefensiveStat: 'def',\r\n\t\tname: \"Psystrike\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpsywave: {\r\n\t\tnum: 149,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon) {\r\n\t\t\treturn (this.random(50, 151) * pokemon.level) / 100;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Psywave\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpulverizingpancake: {\r\n\t\tnum: 701,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 210,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Pulverizing Pancake\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1},\r\n\t\tisZ: \"snorliumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpunishment: {\r\n\t\tnum: 386,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tlet power = 60 + 20 * target.positiveBoosts();\r\n\t\t\tif (power > 200) power = 200;\r\n\t\t\tthis.debug('BP: ' + power);\r\n\t\t\treturn power;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Punishment\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tpurify: {\r\n\t\tnum: 685,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Purify\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, heal: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (!target.cureStatus()) {\r\n\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\tthis.heal(Math.ceil(source.maxhp * 0.5), source);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tpursuit: {\r\n\t\tnum: 228,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\t// You can't get here unless the pursuit succeeds\r\n\t\t\tif (target.beingCalledBack || target.switchFlag) {\r\n\t\t\t\tthis.debug('Pursuit damage boost');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Pursuit\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tbeforeTurnCallback(pokemon) {\r\n\t\t\tfor (const side of this.sides) {\r\n\t\t\t\tif (side.hasAlly(pokemon)) continue;\r\n\t\t\t\tside.addSideCondition('pursuit', pokemon);\r\n\t\t\t\tconst data = side.getSideConditionData('pursuit');\r\n\t\t\t\tif (!data.sources) {\r\n\t\t\t\t\tdata.sources = [];\r\n\t\t\t\t}\r\n\t\t\t\tdata.sources.push(pokemon);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move, source, target) {\r\n\t\t\tif (target?.beingCalledBack || target?.switchFlag) move.accuracy = true;\r\n\t\t},\r\n\t\tonTryHit(target, pokemon) {\r\n\t\t\ttarget.side.removeSideCondition('pursuit');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonBeforeSwitchOut(pokemon) {\r\n\t\t\t\tthis.debug('Pursuit start');\r\n\t\t\t\tlet alreadyAdded = false;\r\n\t\t\t\tpokemon.removeVolatile('destinybond');\r\n\t\t\t\tfor (const source of this.effectState.sources) {\r\n\t\t\t\t\tif (!source.isAdjacent(pokemon) || !this.queue.cancelMove(source) || !source.hp) continue;\r\n\t\t\t\t\tif (!alreadyAdded) {\r\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'move: Pursuit');\r\n\t\t\t\t\t\talreadyAdded = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Run through each action in queue to check if the Pursuit user is supposed to Mega Evolve this turn.\r\n\t\t\t\t\t// If it is, then Mega Evolve before moving.\r\n\t\t\t\t\tif (source.canMegaEvo || source.canUltraBurst) {\r\n\t\t\t\t\t\tfor (const [actionIndex, action] of this.queue.entries()) {\r\n\t\t\t\t\t\t\tif (action.pokemon === source && action.choice === 'megaEvo') {\r\n\t\t\t\t\t\t\t\tthis.actions.runMegaEvo(source);\r\n\t\t\t\t\t\t\t\tthis.queue.list.splice(actionIndex, 1);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.actions.runMove('pursuit', source, source.getLocOf(pokemon));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tpyroball: {\r\n\t\tnum: 780,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Pyro Ball\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1, bullet: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t},\r\n\tquash: {\r\n\t\tnum: 511,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Quash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (this.activePerHalf === 1) return false; // fails in singles\r\n\t\t\tconst action = this.queue.willMove(target);\r\n\t\t\tif (!action) return false;\r\n\r\n\t\t\taction.order = 201;\r\n\t\t\tthis.add('-activate', target, 'move: Quash');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tquickattack: {\r\n\t\tnum: 98,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Quick Attack\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tquickguard: {\r\n\t\tnum: 501,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Quick Guard\",\r\n\t\tpp: 15,\r\n\t\tpriority: 3,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'quickguard',\r\n\t\tonTry() {\r\n\t\t\treturn !!this.queue.willAct();\r\n\t\t},\r\n\t\tonHitSide(side, source) {\r\n\t\t\tsource.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonSideStart(target, source) {\r\n\t\t\t\tthis.add('-singleturn', source, 'Quick Guard');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 4,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\t// Quick Guard blocks moves with positive priority, even those given increased priority by Prankster or Gale Wings.\r\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)\r\n\t\t\t\tif (move.priority <= 0.1) return;\r\n\t\t\t\tif (!move.flags['protect']) {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-activate', target, 'move: Quick Guard');\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tquiverdance: {\r\n\t\tnum: 483,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Quiver Dance\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, dance: 1},\r\n\t\tboosts: {\r\n\t\t\tspa: 1,\r\n\t\t\tspd: 1,\r\n\t\t\tspe: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\trage: {\r\n\t\tnum: 99,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Rage\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'rage',\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singlemove', pokemon, 'Rage');\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (target !== source && move.category !== 'Status') {\r\n\t\t\t\t\tthis.boost({atk: 1});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 100,\r\n\t\t\tonBeforeMove(pokemon) {\r\n\t\t\t\tthis.debug('removing Rage before attack');\r\n\t\t\t\tpokemon.removeVolatile('rage');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tragefist: {\r\n\t\tnum: 889,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\treturn Math.min(350, 50 + 50 * pokemon.timesAttacked);\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rage Fist\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t},\r\n\tragepowder: {\r\n\t\tnum: 476,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Rage Powder\",\r\n\t\tpp: 20,\r\n\t\tpriority: 2,\r\n\t\tflags: {powder: 1, noassist: 1, failcopycat: 1},\r\n\t\tvolatileStatus: 'ragepowder',\r\n\t\tonTry(source) {\r\n\t\t\treturn this.activePerHalf > 1;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Rage Powder');\r\n\t\t\t},\r\n\t\t\tonFoeRedirectTargetPriority: 1,\r\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\r\n\t\t\t\tconst ragePowderUser = this.effectState.target;\r\n\t\t\t\tif (ragePowderUser.isSkyDropped()) return;\r\n\r\n\t\t\t\tif (source.runStatusImmunity('powder') && this.validTarget(ragePowderUser, source, move.target)) {\r\n\t\t\t\t\tif (move.smartTarget) move.smartTarget = false;\r\n\t\t\t\t\tthis.debug(\"Rage Powder redirected target of move\");\r\n\t\t\t\t\treturn ragePowderUser;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tragingbull: {\r\n\t\tnum: 873,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Raging Bull\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTryHit(pokemon) {\r\n\t\t\t// will shatter screens through sub, before you hit\r\n\t\t\tpokemon.side.removeSideCondition('reflect');\r\n\t\t\tpokemon.side.removeSideCondition('lightscreen');\r\n\t\t\tpokemon.side.removeSideCondition('auroraveil');\r\n\t\t},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tswitch (pokemon.species.name) {\r\n\t\t\tcase 'Tauros-Paldea-Combat':\r\n\t\t\t\tmove.type = 'Fighting';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Tauros-Paldea-Blaze':\r\n\t\t\t\tmove.type = 'Fire';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Tauros-Paldea-Aqua':\r\n\t\t\t\tmove.type = 'Water';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tragingfury: {\r\n\t\tnum: 833,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Raging Fury\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'lockedmove',\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove']?.duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\r\n\t\ttype: \"Fire\",\r\n\t},\r\n\traindance: {\r\n\t\tnum: 240,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Rain Dance\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tweather: 'RainDance',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Water\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\trapidspin: {\r\n\t\tnum: 229,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rapid Spin\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonAfterHit(target, pokemon) {\r\n\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon);\r\n\t\t\t}\r\n\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\r\n\t\t\tfor (const condition of sideConditions) {\r\n\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\r\n\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\r\n\t\t\t\tpokemon.removeVolatile('partiallytrapped');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonAfterSubDamage(damage, target, pokemon) {\r\n\t\t\tif (pokemon.hp && pokemon.removeVolatile('leechseed')) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon);\r\n\t\t\t}\r\n\t\t\tconst sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\r\n\t\t\tfor (const condition of sideConditions) {\r\n\t\t\t\tif (pokemon.hp && pokemon.side.removeSideCondition(condition)) {\r\n\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pokemon.hp && pokemon.volatiles['partiallytrapped']) {\r\n\t\t\t\tpokemon.removeVolatile('partiallytrapped');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\trazorleaf: {\r\n\t\tnum: 75,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 55,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Razor Leaf\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, slicing: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\trazorshell: {\r\n\t\tnum: 534,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Razor Shell\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\trazorwind: {\r\n\t\tnum: 13,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Razor Wind\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\trecover: {\r\n\t\tnum: 105,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Recover\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\trecycle: {\r\n\t\tnum: 278,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Recycle\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (pokemon.item || !pokemon.lastItem) return false;\r\n\t\t\tconst item = pokemon.lastItem;\r\n\t\t\tpokemon.lastItem = '';\r\n\t\t\tthis.add('-item', pokemon, this.dex.items.get(item), '[from] move: Recycle');\r\n\t\t\tpokemon.setItem(item);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\treflect: {\r\n\t\tnum: 115,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Reflect\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'reflect',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasItem('lightclay')) {\r\n\t\t\t\t\treturn 8;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonAnyModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Physical') {\r\n\t\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\r\n\t\t\t\t\t\tthis.debug('Reflect weaken');\r\n\t\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\r\n\t\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'Reflect');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 1,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'Reflect');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\treflecttype: {\r\n\t\tnum: 513,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Reflect Type\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (source.species && (source.species.num === 493 || source.species.num === 773)) return false;\r\n\t\t\tif (source.terastallized) return false;\r\n\t\t\tconst oldApparentType = source.apparentType;\r\n\t\t\tlet newBaseTypes = target.getTypes(true).filter(type => type !== '???');\r\n\t\t\tif (!newBaseTypes.length) {\r\n\t\t\t\tif (target.addedType) {\r\n\t\t\t\t\tnewBaseTypes = ['Normal'];\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.add('-start', source, 'typechange', '[from] move: Reflect Type', '[of] ' + target);\r\n\t\t\tsource.setType(newBaseTypes);\r\n\t\t\tsource.addedType = target.addedType;\r\n\t\t\tsource.knownType = target.isAlly(source) && target.knownType;\r\n\t\t\tif (!source.knownType) source.apparentType = oldApparentType;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\trefresh: {\r\n\t\tnum: 287,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Refresh\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (['', 'slp', 'frz'].includes(pokemon.status)) return false;\r\n\t\t\tpokemon.cureStatus();\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\trelicsong: {\r\n\t\tnum: 547,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Relic Song\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'slp',\r\n\t\t},\r\n\t\tonHit(target, pokemon, move) {\r\n\t\t\tif (pokemon.baseSpecies.baseSpecies === 'Meloetta' && !pokemon.transformed) {\r\n\t\t\t\tmove.willChangeForme = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\r\n\t\t\tif (move.willChangeForme) {\r\n\t\t\t\tconst meloettaForme = pokemon.species.id === 'meloettapirouette' ? '' : '-Pirouette';\r\n\t\t\t\tpokemon.formeChange('Meloetta' + meloettaForme, this.effect, false, '[msg]');\r\n\t\t\t}\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\trest: {\r\n\t\tnum: 156,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Rest\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.status === 'slp' || source.hasAbility('comatose')) return false;\r\n\r\n\t\t\tif (source.hp === source.maxhp) {\r\n\t\t\t\tthis.add('-fail', source, 'heal');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tif (source.hasAbility(['insomnia', 'vitalspirit'])) {\r\n\t\t\t\tthis.add('-fail', source, '[from] ability: ' + source.getAbility().name, '[of] ' + source);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tconst result = target.setStatus('slp', source, move);\r\n\t\t\tif (!result) return result;\r\n\t\t\ttarget.statusState.time = 3;\r\n\t\t\ttarget.statusState.startTime = 3;\r\n\t\t\tthis.heal(target.maxhp); // Aesthetic only as the healing happens after you fall asleep in-game\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tretaliate: {\r\n\t\tnum: 514,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Retaliate\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, pokemon) {\r\n\t\t\tif (pokemon.side.faintedLastTurn) {\r\n\t\t\t\tthis.debug('Boosted for a faint last turn');\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\treturn: {\r\n\t\tnum: 216,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\treturn Math.floor((pokemon.happiness * 10) / 25) || 1;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Return\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\trevelationdance: {\r\n\t\tnum: 686,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Revelation Dance\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, dance: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tlet type = pokemon.getTypes()[0];\r\n\t\t\tif (type === \"Bird\") type = \"???\";\r\n\t\t\tmove.type = type;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\trevenge: {\r\n\t\tnum: 279,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst damagedByTarget = pokemon.attackedBy.some(\r\n\t\t\t\tp => p.source === target && p.damage > 0 && p.thisTurn\r\n\t\t\t);\r\n\t\t\tif (damagedByTarget) {\r\n\t\t\t\tthis.debug('BP doubled for getting hit by ' + target);\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Revenge\",\r\n\t\tpp: 10,\r\n\t\tpriority: -4,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\treversal: {\r\n\t\tnum: 179,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target) {\r\n\t\t\tconst ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1);\r\n\t\t\tlet bp;\r\n\t\t\tif (ratio < 2) {\r\n\t\t\t\tbp = 200;\r\n\t\t\t} else if (ratio < 5) {\r\n\t\t\t\tbp = 150;\r\n\t\t\t} else if (ratio < 10) {\r\n\t\t\t\tbp = 100;\r\n\t\t\t} else if (ratio < 17) {\r\n\t\t\t\tbp = 80;\r\n\t\t\t} else if (ratio < 33) {\r\n\t\t\t\tbp = 40;\r\n\t\t\t} else {\r\n\t\t\t\tbp = 20;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Reversal\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\trevivalblessing: {\r\n\t\tnum: 863,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Revival Blessing\",\r\n\t\tpp: 1,\r\n\t\tnoPPBoosts: true,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonTryHit(source) {\r\n\t\t\tif (!source.side.pokemon.filter(ally => ally.fainted).length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tslotCondition: 'revivalblessing',\r\n\t\t// No this not a real switchout move\r\n\t\t// This is needed to trigger a switch protocol to choose a fainted party member\r\n\t\t// Feel free to refactor\r\n\t\tselfSwitch: true,\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\t// reviving implemented in side.ts, kind of\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\trisingvoltage: {\r\n\t\tnum: 804,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tbasePowerCallback(source, target, move) {\r\n\t\t\tif (this.field.isTerrain('electricterrain') && target.isGrounded()) {\r\n\t\t\t\tif (!source.isAlly(target)) this.hint(`${move.name}'s BP doubled on grounded target.`);\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Rising Voltage\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tmaxMove: {basePower: 140},\r\n\t},\r\n\troar: {\r\n\t\tnum: 46,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Roar\",\r\n\t\tpp: 20,\r\n\t\tpriority: -6,\r\n\t\tflags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, noassist: 1, failcopycat: 1},\r\n\t\tforceSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\troaroftime: {\r\n\t\tnum: 459,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Roar of Time\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\trockblast: {\r\n\t\tnum: 350,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rock Blast\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\trockclimb: {\r\n\t\tnum: 431,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Rock Climb\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\trockpolish: {\r\n\t\tnum: 397,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Rock Polish\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Rock\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\trockslide: {\r\n\t\tnum: 157,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rock Slide\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\trocksmash: {\r\n\t\tnum: 249,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rock Smash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\trockthrow: {\r\n\t\tnum: 88,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rock Throw\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\trocktomb: {\r\n\t\tnum: 317,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rock Tomb\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\trockwrecker: {\r\n\t\tnum: 439,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Rock Wrecker\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, recharge: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'mustrecharge',\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\troleplay: {\r\n\t\tnum: 272,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Role Play\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1, allyanim: 1},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tif (target.ability === source.ability) return false;\r\n\r\n\t\t\tconst additionalBannedTargetAbilities = [\r\n\t\t\t\t// Zen Mode included here for compatability with Gen 5-6\r\n\t\t\t\t'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'wonderguard', 'zenmode',\r\n\t\t\t];\r\n\r\n\t\t\tif (target.getAbility().isPermanent || additionalBannedTargetAbilities.includes(target.ability) ||\r\n\t\t\t\tsource.getAbility().isPermanent) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst oldAbility = source.setAbility(target.ability);\r\n\t\t\tif (oldAbility) {\r\n\t\t\t\tthis.add('-ability', source, source.getAbility().name, '[from] move: Role Play', '[of] ' + target);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn oldAbility as false | null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\trollingkick: {\r\n\t\tnum: 27,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Rolling Kick\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\trollout: {\r\n\t\tnum: 205,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 30,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tlet bp = move.basePower;\r\n\t\t\tconst rolloutData = pokemon.volatiles['rollout'];\r\n\t\t\tif (rolloutData?.hitCount) {\r\n\t\t\t\tbp *= Math.pow(2, rolloutData.contactHitCount);\r\n\t\t\t}\r\n\t\t\tif (rolloutData && pokemon.status !== 'slp') {\r\n\t\t\t\trolloutData.hitCount++;\r\n\t\t\t\trolloutData.contactHitCount++;\r\n\t\t\t\tif (rolloutData.hitCount < 5) {\r\n\t\t\t\t\trolloutData.duration = 2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pokemon.volatiles['defensecurl']) {\r\n\t\t\t\tbp *= 2;\r\n\t\t\t}\r\n\t\t\tthis.debug(\"BP: \" + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Rollout\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, noparentalbond: 1, failinstruct: 1},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tif (pokemon.volatiles['rollout'] || pokemon.status === 'slp' || !target) return;\r\n\t\t\tpokemon.addVolatile('rollout');\r\n\t\t\t// @ts-ignore\r\n\t\t\t// TS thinks pokemon.volatiles['rollout'] doesn't exist because of the condition on the return above\r\n\t\t\t// but it does exist now because addVolatile created it\r\n\t\t\tpokemon.volatiles['rollout'].targetSlot = move.sourceEffect ? pokemon.lastMoveTargetLoc : pokemon.getLocOf(target);\r\n\t\t},\r\n\t\tonAfterMove(source, target, move) {\r\n\t\t\tconst rolloutData = source.volatiles[\"rollout\"];\r\n\t\t\tif (\r\n\t\t\t\trolloutData &&\r\n\t\t\t\trolloutData.hitCount === 5 &&\r\n\t\t\t\trolloutData.contactHitCount < 5\r\n\t\t\t\t// this conditions can only be met in gen7 and gen8dlc1\r\n\t\t\t\t// see `disguise` and `iceface` abilities in the resp mod folders\r\n\t\t\t) {\r\n\t\t\t\tsource.addVolatile(\"rolloutstorage\");\r\n\t\t\t\tsource.volatiles[\"rolloutstorage\"].contactHitCount =\r\n\t\t\t\t\trolloutData.contactHitCount;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonLockMove: 'rollout',\r\n\t\t\tonStart() {\r\n\t\t\t\tthis.effectState.hitCount = 0;\r\n\t\t\t\tthis.effectState.contactHitCount = 0;\r\n\t\t\t},\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\r\n\t\t\t\t\t// don't lock\r\n\t\t\t\t\tdelete target.volatiles['rollout'];\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\troost: {\r\n\t\tnum: 355,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Roost\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'roost',\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonResidualOrder: 25,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tif (!target.terastallized) {\r\n\t\t\t\t\tthis.add('-singleturn', target, 'move: Roost');\r\n\t\t\t\t} else if (target.terastallized === \"Flying\") {\r\n\t\t\t\t\tthis.add('-hint', \"If a Flying Terastallized Pokemon uses Roost, it remains Flying-type.\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTypePriority: -1,\r\n\t\t\tonType(types, pokemon) {\r\n\t\t\t\tthis.effectState.typeWas = types;\r\n\t\t\t\treturn types.filter(type => type !== 'Flying');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Flying\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\trototiller: {\r\n\t\tnum: 563,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Rototiller\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {distance: 1, nonsky: 1},\r\n\t\tonHitField(target, source) {\r\n\t\t\tconst targets: Pokemon[] = [];\r\n\t\t\tlet anyAirborne = false;\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tif (!pokemon.runImmunity('Ground')) {\r\n\t\t\t\t\tthis.add('-immune', pokemon);\r\n\t\t\t\t\tanyAirborne = true;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (pokemon.hasType('Grass')) {\r\n\t\t\t\t\t// This move affects every grounded Grass-type Pokemon in play.\r\n\t\t\t\t\ttargets.push(pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!targets.length && !anyAirborne) return false; // Fails when there are no grounded Grass types or airborne Pokemon\r\n\t\t\tfor (const pokemon of targets) {\r\n\t\t\t\tthis.boost({atk: 1, spa: 1}, pokemon, source);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tround: {\r\n\t\tnum: 496,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tbasePowerCallback(target, source, move) {\r\n\t\t\tif (move.sourceEffect === 'round') {\r\n\t\t\t\tthis.debug('BP doubled');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Round\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tonTry(source, target, move) {\r\n\t\t\tfor (const action of this.queue.list as MoveAction[]) {\r\n\t\t\t\tif (!action.pokemon || !action.move || action.maxMove || action.zmove) continue;\r\n\t\t\t\tif (action.move.id === 'round') {\r\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\truination: {\r\n\t\tnum: 877,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\treturn this.clampIntRange(Math.floor(target.getUndynamaxedHP() / 2), 1);\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Ruination\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsacredfire: {\r\n\t\tnum: 221,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sacred Fire\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsacredsword: {\r\n\t\tnum: 533,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Sacred Sword\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tignoreEvasion: true,\r\n\t\tignoreDefensive: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsafeguard: {\r\n\t\tnum: 219,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Safeguard\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'safeguard',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Safeguard');\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonSetStatus(status, target, source, effect) {\r\n\t\t\t\tif (!effect || !source) return;\r\n\t\t\t\tif (effect.id === 'yawn') return;\r\n\t\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\t\tif (target !== source) {\r\n\t\t\t\t\tthis.debug('interrupting setStatus');\r\n\t\t\t\t\tif (effect.name === 'Synchronize' || (effect.effectType === 'Move' && !effect.secondaries)) {\r\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Safeguard');\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTryAddVolatile(status, target, source, effect) {\r\n\t\t\t\tif (!effect || !source) return;\r\n\t\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\t\tif ((status.id === 'confusion' || status.id === 'yawn') && target !== source) {\r\n\t\t\t\t\tif (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Safeguard');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideStart(side, source) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-sidestart', side, 'Safeguard', '[persistent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-sidestart', side, 'Safeguard');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 3,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'Safeguard');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsaltcure: {\r\n\t\tnum: 864,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Salt Cure\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Salt Cure');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 13,\r\n\t\t\tonResidual(pokemon) {\r\n\t\t\t\tthis.damage(pokemon.baseMaxhp / (pokemon.hasType(['Water', 'Steel']) ? 4 : 8));\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Salt Cure');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tvolatileStatus: 'saltcure',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t},\r\n\tsandattack: {\r\n\t\tnum: 28,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sand Attack\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\taccuracy: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsandsearstorm: {\r\n\t\tnum: 848,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Sandsear Storm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ground\",\r\n\t},\r\n\tsandstorm: {\r\n\t\tnum: 201,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sandstorm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {wind: 1},\r\n\t\tweather: 'Sandstorm',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Rock\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsandtomb: {\r\n\t\tnum: 328,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Sand Tomb\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsappyseed: {\r\n\t\tnum: 738,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Sappy Seed\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (target.hasType('Grass')) return null;\r\n\t\t\ttarget.addVolatile('leechseed', source);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsavagespinout: {\r\n\t\tnum: 634,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Savage Spin-Out\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"buginiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tscald: {\r\n\t\tnum: 503,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Scald\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tthawsTarget: true,\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tscaleshot: {\r\n\t\tnum: 799,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Scale Shot\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tselfBoost: {\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t\tspe: 1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t},\r\n\tscaryface: {\r\n\t\tnum: 184,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Scary Face\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tspe: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tscorchingsands: {\r\n\t\tnum: 815,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Scorching Sands\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tthawsTarget: true,\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t},\r\n\tscratch: {\r\n\t\tnum: 10,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Scratch\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tscreech: {\r\n\t\tnum: 103,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Screech\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsearingshot: {\r\n\t\tnum: 545,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Searing Shot\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsearingsunrazesmash: {\r\n\t\tnum: 724,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 200,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Searing Sunraze Smash\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1},\r\n\t\tisZ: \"solganiumz\",\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsecretpower: {\r\n\t\tnum: 290,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Secret Power\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (this.field.isTerrain('')) return;\r\n\t\t\tmove.secondaries = [];\r\n\t\t\tif (this.field.isTerrain('electricterrain')) {\r\n\t\t\t\tmove.secondaries.push({\r\n\t\t\t\t\tchance: 30,\r\n\t\t\t\t\tstatus: 'par',\r\n\t\t\t\t});\r\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\r\n\t\t\t\tmove.secondaries.push({\r\n\t\t\t\t\tchance: 30,\r\n\t\t\t\t\tstatus: 'slp',\r\n\t\t\t\t});\r\n\t\t\t} else if (this.field.isTerrain('mistyterrain')) {\r\n\t\t\t\tmove.secondaries.push({\r\n\t\t\t\t\tchance: 30,\r\n\t\t\t\t\tboosts: {\r\n\t\t\t\t\t\tspa: -1,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t} else if (this.field.isTerrain('psychicterrain')) {\r\n\t\t\t\tmove.secondaries.push({\r\n\t\t\t\t\tchance: 30,\r\n\t\t\t\t\tboosts: {\r\n\t\t\t\t\t\tspe: -1,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsecretsword: {\r\n\t\tnum: 548,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\toverrideDefensiveStat: 'def',\r\n\t\tname: \"Secret Sword\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tseedbomb: {\r\n\t\tnum: 402,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Seed Bomb\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tseedflare: {\r\n\t\tnum: 465,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Seed Flare\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 40,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tseismictoss: {\r\n\t\tnum: 69,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tdamage: 'level',\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Seismic Toss\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tmaxMove: {basePower: 75},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tselfdestruct: {\r\n\t\tnum: 120,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 200,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Self-Destruct\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, noparentalbond: 1},\r\n\t\tselfdestruct: \"always\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tshadowball: {\r\n\t\tnum: 247,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Shadow Ball\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tboosts: {\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tshadowbone: {\r\n\t\tnum: 708,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Shadow Bone\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tshadowclaw: {\r\n\t\tnum: 421,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Shadow Claw\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tshadowforce: {\r\n\t\tnum: 467,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Shadow Force\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, charge: 1, mirror: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1},\r\n\t\tbreaksProtect: true,\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonInvulnerability: false,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tshadowpunch: {\r\n\t\tnum: 325,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Shadow Punch\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tshadowsneak: {\r\n\t\tnum: 425,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Shadow Sneak\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tshadowstrike: {\r\n\t\tnum: 0,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"CAP\",\r\n\t\tname: \"Shadow Strike\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 50,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsharpen: {\r\n\t\tnum: 159,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sharpen\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tshatteredpsyche: {\r\n\t\tnum: 648,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Shattered Psyche\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"psychiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tshedtail: {\r\n\t\tnum: 880,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Shed Tail\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tvolatileStatus: 'substitute',\r\n\t\tonTryHit(source) {\r\n\t\t\tif (!this.canSwitch(source.side)) {\r\n\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\tif (source.volatiles['substitute']) {\r\n\t\t\t\tthis.add('-fail', source, 'move: Shed Tail');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\tif (source.hp <= Math.ceil(source.maxhp / 2)) {\r\n\t\t\t\tthis.add('-fail', source, 'move: Shed Tail', '[weak]');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target) {\r\n\t\t\tthis.directDamage(Math.ceil(target.maxhp / 2));\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tsource.skipBeforeSwitchOutEventFlag = true;\r\n\t\t\t},\r\n\t\t},\r\n\t\tselfSwitch: 'shedtail',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t},\r\n\tsheercold: {\r\n\t\tnum: 329,\r\n\t\taccuracy: 30,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Sheer Cold\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\tohko: 'Ice',\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tshellsidearm: {\r\n\t\tnum: 801,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Shell Side Arm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tif (!source.isAlly(target)) {\r\n\t\t\t\tthis.attrLastMove('[anim] Shell Side Arm ' + move.category);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tif (!target) return;\r\n\t\t\tconst atk = pokemon.getStat('atk', false, true);\r\n\t\t\tconst spa = pokemon.getStat('spa', false, true);\r\n\t\t\tconst def = target.getStat('def', false, true);\r\n\t\t\tconst spd = target.getStat('spd', false, true);\r\n\t\t\tconst physical = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * atk) / def) / 50);\r\n\t\t\tconst special = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * spa) / spd) / 50);\r\n\t\t\tif (physical > special || (physical === special && this.random(2) === 0)) {\r\n\t\t\t\tmove.category = 'Physical';\r\n\t\t\t\tmove.flags.contact = 1;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\t// Shell Side Arm normally reveals its category via animation on cart, but doesn't play either custom animation against allies\r\n\t\t\tif (!source.isAlly(target)) this.hint(move.category + \" Shell Side Arm\");\r\n\t\t},\r\n\t\tonAfterSubDamage(damage, target, source, move) {\r\n\t\t\tif (!source.isAlly(target)) this.hint(move.category + \" Shell Side Arm\");\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t},\r\n\tshellsmash: {\r\n\t\tnum: 504,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Shell Smash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: -1,\r\n\t\t\tspd: -1,\r\n\t\t\tatk: 2,\r\n\t\t\tspa: 2,\r\n\t\t\tspe: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tshelltrap: {\r\n\t\tnum: 704,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Shell Trap\",\r\n\t\tpp: 5,\r\n\t\tpriority: -3,\r\n\t\tflags: {protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1},\r\n\t\tpriorityChargeCallback(pokemon) {\r\n\t\t\tpokemon.addVolatile('shelltrap');\r\n\t\t},\r\n\t\tonTryMove(pokemon) {\r\n\t\t\tif (!pokemon.volatiles['shelltrap']?.gotHit) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('cant', pokemon, 'Shell Trap', 'Shell Trap');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Shell Trap');\r\n\t\t\t},\r\n\t\t\tonHit(pokemon, source, move) {\r\n\t\t\t\tif (!pokemon.isAlly(source) && move.category === 'Physical') {\r\n\t\t\t\t\tthis.effectState.gotHit = true;\r\n\t\t\t\t\tconst action = this.queue.willMove(pokemon);\r\n\t\t\t\t\tif (action) {\r\n\t\t\t\t\t\tthis.queue.prioritizeAction(action);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tshelter: {\r\n\t\tnum: 842,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Shelter\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tshiftgear: {\r\n\t\tnum: 508,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Shift Gear\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspe: 2,\r\n\t\t\tatk: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Steel\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tshockwave: {\r\n\t\tnum: 351,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Shock Wave\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tshoreup: {\r\n\t\tnum: 659,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Shore Up\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tlet factor = 0.5;\r\n\t\t\tif (this.field.isWeather('sandstorm')) {\r\n\t\t\t\tfactor = 0.667;\r\n\t\t\t}\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\r\n\t\t\tif (!success) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsignalbeam: {\r\n\t\tnum: 324,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Signal Beam\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsilktrap: {\r\n\t\tnum: 852,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Silk Trap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'silktrap',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'Protect');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect'] || move.category === 'Status') {\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.boost({spe: -1}, source, target, this.dex.getActiveMove(\"Silk Trap\"));\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.boost({spe: -1}, source, target, this.dex.getActiveMove(\"Silk Trap\"));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Bug\",\r\n\t},\r\n\tsilverwind: {\r\n\t\tnum: 318,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Silver Wind\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tatk: 1,\r\n\t\t\t\t\tdef: 1,\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t\tspd: 1,\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsimplebeam: {\r\n\t\tnum: 493,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Simple Beam\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.getAbility().isPermanent || target.ability === 'simple' || target.ability === 'truant') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst oldAbility = pokemon.setAbility('simple');\r\n\t\t\tif (oldAbility) {\r\n\t\t\t\tthis.add('-ability', pokemon, 'Simple', '[from] move: Simple Beam');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn oldAbility as false | null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsing: {\r\n\t\tnum: 47,\r\n\t\taccuracy: 55,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sing\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tstatus: 'slp',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsinisterarrowraid: {\r\n\t\tnum: 695,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 180,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sinister Arrow Raid\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"decidiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsizzlyslide: {\r\n\t\tnum: 735,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Sizzly Slide\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, defrost: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsketch: {\r\n\t\tnum: 166,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sketch\",\r\n\t\tpp: 1,\r\n\t\tnoPPBoosts: true,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tbypasssub: 1, allyanim: 1, failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst disallowedMoves = ['chatter', 'sketch', 'struggle'];\r\n\t\t\tconst move = target.lastMove;\r\n\t\t\tif (source.transformed || !move || source.moves.includes(move.id)) return false;\r\n\t\t\tif (disallowedMoves.includes(move.id) || move.isZ || move.isMax) return false;\r\n\t\t\tconst sketchIndex = source.moves.indexOf('sketch');\r\n\t\t\tif (sketchIndex < 0) return false;\r\n\t\t\tconst sketchedMove = {\r\n\t\t\t\tmove: move.name,\r\n\t\t\t\tid: move.id,\r\n\t\t\t\tpp: move.pp,\r\n\t\t\t\tmaxpp: move.pp,\r\n\t\t\t\ttarget: move.target,\r\n\t\t\t\tdisabled: false,\r\n\t\t\t\tused: false,\r\n\t\t\t};\r\n\t\t\tsource.moveSlots[sketchIndex] = sketchedMove;\r\n\t\t\tsource.baseMoveSlots[sketchIndex] = sketchedMove;\r\n\t\t\tthis.add('-activate', source, 'move: Sketch', move.name);\r\n\t\t},\r\n\t\tnoSketch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tskillswap: {\r\n\t\tnum: 285,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Skill Swap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tconst additionalBannedAbilities = ['hungerswitch', 'illusion', 'neutralizinggas', 'wonderguard'];\r\n\t\t\tconst targetAbility = target.getAbility();\r\n\t\t\tconst sourceAbility = source.getAbility();\r\n\t\t\t// TODO: research in what order these should be checked\r\n\t\t\tif (\r\n\t\t\t\ttarget.volatiles['dynamax'] ||\r\n\t\t\t\ttargetAbility.isPermanent || sourceAbility.isPermanent ||\r\n\t\t\t\tadditionalBannedAbilities.includes(target.ability) || additionalBannedAbilities.includes(source.ability)\r\n\t\t\t) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst sourceCanBeSet = this.runEvent('SetAbility', source, source, this.effect, targetAbility);\r\n\t\t\tif (!sourceCanBeSet) return sourceCanBeSet;\r\n\t\t\tconst targetCanBeSet = this.runEvent('SetAbility', target, source, this.effect, sourceAbility);\r\n\t\t\tif (!targetCanBeSet) return targetCanBeSet;\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tconst targetAbility = target.getAbility();\r\n\t\t\tconst sourceAbility = source.getAbility();\r\n\t\t\tif (target.isAlly(source)) {\r\n\t\t\t\tthis.add('-activate', source, 'move: Skill Swap', '', '', '[of] ' + target);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-activate', source, 'move: Skill Swap', targetAbility, sourceAbility, '[of] ' + target);\r\n\t\t\t}\r\n\t\t\tthis.singleEvent('End', sourceAbility, source.abilityState, source);\r\n\t\t\tthis.singleEvent('End', targetAbility, target.abilityState, target);\r\n\t\t\tsource.ability = targetAbility.id;\r\n\t\t\ttarget.ability = sourceAbility.id;\r\n\t\t\tsource.abilityState = {id: this.toID(source.ability), target: source};\r\n\t\t\ttarget.abilityState = {id: this.toID(target.ability), target: target};\r\n\t\t\tif (!target.isAlly(source)) target.volatileStaleness = 'external';\r\n\t\t\tthis.singleEvent('Start', targetAbility, source.abilityState, source);\r\n\t\t\tthis.singleEvent('Start', sourceAbility, target.abilityState, target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tskittersmack: {\r\n\t\tnum: 806,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Skitter Smack\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t},\r\n\tskullbash: {\r\n\t\tnum: 130,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Skull Bash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tthis.boost({def: 1}, attacker, attacker, move);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tskyattack: {\r\n\t\tnum: 143,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Sky Attack\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, protect: 1, mirror: 1, distance: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tcritRatio: 2,\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tskydrop: {\r\n\t\tnum: 507,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sky Drop\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tcontact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1,\r\n\t\t},\r\n\t\tonModifyMove(move, source) {\r\n\t\t\tif (!source.volatiles['skydrop']) {\r\n\t\t\t\tmove.accuracy = true;\r\n\t\t\t\tdelete move.flags['contact'];\r\n\t\t\t}\r\n\t\t},\r\n\t\tonMoveFail(target, source) {\r\n\t\t\tif (source.volatiles['twoturnmove'] && source.volatiles['twoturnmove'].duration === 1) {\r\n\t\t\t\tsource.removeVolatile('skydrop');\r\n\t\t\t\tsource.removeVolatile('twoturnmove');\r\n\t\t\t\tif (target === this.effectState.target) {\r\n\t\t\t\t\tthis.add('-end', target, 'Sky Drop', '[interrupt]');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonTry(source, target) {\r\n\t\t\treturn !target.fainted;\r\n\t\t},\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (source.removeVolatile(move.id)) {\r\n\t\t\t\tif (target !== source.volatiles['twoturnmove'].source) return false;\r\n\r\n\t\t\t\tif (target.hasType('Flying')) {\r\n\t\t\t\t\tthis.add('-immune', target);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (target.volatiles['substitute'] || target.isAlly(source)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (target.getWeight() >= 2000) {\r\n\t\t\t\t\tthis.add('-fail', target, 'move: Sky Drop', '[heavy]');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.add('-prepare', source, move.name, target);\r\n\t\t\t\tsource.addVolatile('twoturnmove', target);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (target.hp) this.add('-end', target, 'Sky Drop');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonAnyDragOut(pokemon) {\r\n\t\t\t\tif (pokemon === this.effectState.target || pokemon === this.effectState.source) return false;\r\n\t\t\t},\r\n\t\t\tonFoeTrapPokemonPriority: -15,\r\n\t\t\tonFoeTrapPokemon(defender) {\r\n\t\t\t\tif (defender !== this.effectState.source) return;\r\n\t\t\t\tdefender.trapped = true;\r\n\t\t\t},\r\n\t\t\tonFoeBeforeMovePriority: 12,\r\n\t\t\tonFoeBeforeMove(attacker, defender, move) {\r\n\t\t\t\tif (attacker === this.effectState.source) {\r\n\t\t\t\t\tattacker.activeMoveActions--;\r\n\t\t\t\t\tthis.debug('Sky drop nullifying.');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonRedirectTargetPriority: 99,\r\n\t\t\tonRedirectTarget(target, source, source2) {\r\n\t\t\t\tif (source !== this.effectState.target) return;\r\n\t\t\t\tif (this.effectState.source.fainted) return;\r\n\t\t\t\treturn this.effectState.source;\r\n\t\t\t},\r\n\t\t\tonAnyInvulnerability(target, source, move) {\r\n\t\t\t\tif (target !== this.effectState.target && target !== this.effectState.source) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (source === this.effectState.target && target === this.effectState.source) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (['gust', 'twister', 'skyuppercut', 'thunder', 'hurricane', 'smackdown', 'thousandarrows'].includes(move.id)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tonAnyBasePower(basePower, target, source, move) {\r\n\t\t\t\tif (target !== this.effectState.target && target !== this.effectState.source) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (source === this.effectState.target && target === this.effectState.source) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.id === 'gust' || move.id === 'twister') {\r\n\t\t\t\t\tthis.debug('BP doubled on midair target');\r\n\t\t\t\t\treturn this.chainModify(2);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFaint(target) {\r\n\t\t\t\tif (target.volatiles['skydrop'] && target.volatiles['twoturnmove'].source) {\r\n\t\t\t\t\tthis.add('-end', target.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tskyuppercut: {\r\n\t\tnum: 327,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sky Uppercut\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tslackoff: {\r\n\t\tnum: 303,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Slack Off\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tslam: {\r\n\t\tnum: 21,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Slam\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tslash: {\r\n\t\tnum: 163,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Slash\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsleeppowder: {\r\n\t\tnum: 79,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sleep Powder\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'slp',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsleeptalk: {\r\n\t\tnum: 214,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sleep Talk\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tsleepUsable: true,\r\n\t\tonTry(source) {\r\n\t\t\treturn source.status === 'slp' || source.hasAbility('comatose');\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst moves = [];\r\n\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\tconst moveid = moveSlot.id;\r\n\t\t\t\tif (!moveid) continue;\r\n\t\t\t\tconst move = this.dex.moves.get(moveid);\r\n\t\t\t\tif (move.flags['nosleeptalk'] || move.flags['charge'] || (move.isZ && move.basePower !== 1) || move.isMax) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tmoves.push(moveid);\r\n\t\t\t}\r\n\t\t\tlet randomMove = '';\r\n\t\t\tif (moves.length) randomMove = this.sample(moves);\r\n\t\t\tif (!randomMove) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.actions.useMove(randomMove, pokemon);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'crit2'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsludge: {\r\n\t\tnum: 124,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Sludge\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsludgebomb: {\r\n\t\tnum: 188,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Sludge Bomb\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsludgewave: {\r\n\t\tnum: 482,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 95,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Sludge Wave\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsmackdown: {\r\n\t\tnum: 479,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Smack Down\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tvolatileStatus: 'smackdown',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tlet applies = false;\r\n\t\t\t\tif (pokemon.hasType('Flying') || pokemon.hasAbility('levitate')) applies = true;\r\n\t\t\t\tif (pokemon.hasItem('ironball') || pokemon.volatiles['ingrain'] ||\r\n\t\t\t\t\tthis.field.getPseudoWeather('gravity')) applies = false;\r\n\t\t\t\tif (pokemon.removeVolatile('fly') || pokemon.removeVolatile('bounce')) {\r\n\t\t\t\t\tapplies = true;\r\n\t\t\t\t\tthis.queue.cancelMove(pokemon);\r\n\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\r\n\t\t\t\t}\r\n\t\t\t\tif (pokemon.volatiles['magnetrise']) {\r\n\t\t\t\t\tapplies = true;\r\n\t\t\t\t\tdelete pokemon.volatiles['magnetrise'];\r\n\t\t\t\t}\r\n\t\t\t\tif (pokemon.volatiles['telekinesis']) {\r\n\t\t\t\t\tapplies = true;\r\n\t\t\t\t\tdelete pokemon.volatiles['telekinesis'];\r\n\t\t\t\t}\r\n\t\t\t\tif (!applies) return false;\r\n\t\t\t\tthis.add('-start', pokemon, 'Smack Down');\r\n\t\t\t},\r\n\t\t\tonRestart(pokemon) {\r\n\t\t\t\tif (pokemon.removeVolatile('fly') || pokemon.removeVolatile('bounce')) {\r\n\t\t\t\t\tthis.queue.cancelMove(pokemon);\r\n\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\r\n\t\t\t\t\tthis.add('-start', pokemon, 'Smack Down');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsmartstrike: {\r\n\t\tnum: 684,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Smart Strike\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsmellingsalts: {\r\n\t\tnum: 265,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.status === 'par') {\r\n\t\t\t\tthis.debug('BP doubled on paralyzed target');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Smelling Salts\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.status === 'par') target.cureStatus();\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsmog: {\r\n\t\tnum: 123,\r\n\t\taccuracy: 70,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Smog\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 40,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsmokescreen: {\r\n\t\tnum: 108,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Smokescreen\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\taccuracy: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {evasion: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsnaptrap: {\r\n\t\tnum: 779,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Snap Trap\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tsnarl: {\r\n\t\tnum: 555,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 55,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Snarl\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsnatch: {\r\n\t\tnum: 289,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Snatch\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {bypasssub: 1, mustpressure: 1, noassist: 1, failcopycat: 1},\r\n\t\tvolatileStatus: 'snatch',\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singleturn', pokemon, 'Snatch');\r\n\t\t\t},\r\n\t\t\tonAnyPrepareHitPriority: -1,\r\n\t\t\tonAnyPrepareHit(source, target, move) {\r\n\t\t\t\tconst snatchUser = this.effectState.source;\r\n\t\t\t\tif (snatchUser.isSkyDropped()) return;\r\n\t\t\t\tif (!move || move.isZ || move.isMax || !move.flags['snatch'] || move.sourceEffect === 'snatch') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tsnatchUser.removeVolatile('snatch');\r\n\t\t\t\tthis.add('-activate', snatchUser, 'move: Snatch', '[of] ' + source);\r\n\t\t\t\tthis.actions.useMove(move.id, snatchUser);\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsnipeshot: {\r\n\t\tnum: 745,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Snipe Shot\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\ttracksTarget: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\tsnore: {\r\n\t\tnum: 173,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Snore\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsleepUsable: true,\r\n\t\tonTry(source) {\r\n\t\t\treturn source.status === 'slp' || source.hasAbility('comatose');\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsnowscape: {\r\n\t\tnum: 883,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Snowscape\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tweather: 'snow',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Ice\",\r\n\t},\r\n\tsoak: {\r\n\t\tnum: 487,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Soak\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.getTypes().join() === 'Water' || !target.setType('Water')) {\r\n\t\t\t\t// Soak should animate even when it fails.\r\n\t\t\t\t// Returning false would suppress the animation.\r\n\t\t\t\tthis.add('-fail', target);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-start', target, 'typechange', 'Water');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsoftboiled: {\r\n\t\tnum: 135,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Soft-Boiled\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsolarbeam: {\r\n\t\tnum: 76,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Solar Beam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.addMove('-anim', attacker, move.name, defender);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonBasePower(basePower, pokemon, target) {\r\n\t\t\tconst weakWeathers = ['raindance', 'primordialsea', 'sandstorm', 'hail', 'snow'];\r\n\t\t\tif (weakWeathers.includes(pokemon.effectiveWeather())) {\r\n\t\t\t\tthis.debug('weakened by weather');\r\n\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsolarblade: {\r\n\t\tnum: 669,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 125,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Solar Blade\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, charge: 1, protect: 1, mirror: 1, slicing: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (attacker.removeVolatile(move.id)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\tif (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.addMove('-anim', attacker, move.name, defender);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonBasePower(basePower, pokemon, target) {\r\n\t\t\tconst weakWeathers = ['raindance', 'primordialsea', 'sandstorm', 'hail', 'snow'];\r\n\t\t\tif (weakWeathers.includes(pokemon.effectiveWeather())) {\r\n\t\t\t\tthis.debug('weakened by weather');\r\n\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsonicboom: {\r\n\t\tnum: 49,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tdamage: 20,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sonic Boom\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsoulstealing7starstrike: {\r\n\t\tnum: 699,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 195,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Soul-Stealing 7-Star Strike\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1},\r\n\t\tisZ: \"marshadiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tspacialrend: {\r\n\t\tnum: 460,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Spacial Rend\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tspark: {\r\n\t\tnum: 209,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Spark\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsparklingaria: {\r\n\t\tnum: 664,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sparkling Aria\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: {\r\n\t\t\tdustproof: true,\r\n\t\t\tchance: 100,\r\n\t\t\tvolatileStatus: 'sparklingaria',\r\n\t\t},\r\n\t\tonAfterMove(source, target, move) {\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tif (pokemon !== source && pokemon.removeVolatile('sparklingaria') && pokemon.status === 'brn' && !source.fainted) {\r\n\t\t\t\t\tpokemon.cureStatus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsparklyswirl: {\r\n\t\tnum: 740,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Sparkly Swirl\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon, source, move) {\r\n\t\t\t\tthis.add('-activate', source, 'move: Aromatherapy');\r\n\t\t\t\tfor (const ally of source.side.pokemon) {\r\n\t\t\t\t\tif (ally !== source && (ally.volatiles['substitute'] && !move.infiltrates)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tally.cureStatus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tspectralthief: {\r\n\t\tnum: 712,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Spectral Thief\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, bypasssub: 1},\r\n\t\tstealsBoosts: true,\r\n\t\t// Boost stealing implemented in scripts.js\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tspeedswap: {\r\n\t\tnum: 683,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Speed Swap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tconst targetSpe = target.storedStats.spe;\r\n\t\t\ttarget.storedStats.spe = source.storedStats.spe;\r\n\t\t\tsource.storedStats.spe = targetSpe;\r\n\t\t\tthis.add('-activate', source, 'move: Speed Swap', '[of] ' + target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tspicyextract: {\r\n\t\tnum: 858,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Spicy Extract\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 2,\r\n\t\t\tdef: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t},\r\n\tspiderweb: {\r\n\t\tnum: 169,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Spider Web\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\treturn target.addVolatile('trapped', source, move, 'trapper');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tspikecannon: {\r\n\t\tnum: 131,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Spike Cannon\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tmaxMove: {basePower: 120},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tspikes: {\r\n\t\tnum: 191,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Spikes\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, nonsky: 1, mustpressure: 1},\r\n\t\tsideCondition: 'spikes',\r\n\t\tcondition: {\r\n\t\t\t// this is a side condition\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'Spikes');\r\n\t\t\t\tthis.effectState.layers = 1;\r\n\t\t\t},\r\n\t\t\tonSideRestart(side) {\r\n\t\t\t\tif (this.effectState.layers >= 3) return false;\r\n\t\t\t\tthis.add('-sidestart', side, 'Spikes');\r\n\t\t\t\tthis.effectState.layers++;\r\n\t\t\t},\r\n\t\t\tonEntryHazard(pokemon) {\r\n\t\t\t\tif (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\t\tconst damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4\r\n\t\t\t\tthis.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"foeSide\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tspikyshield: {\r\n\t\tnum: 596,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Spiky Shield\",\r\n\t\tpp: 10,\r\n\t\tpriority: 4,\r\n\t\tflags: {noassist: 1, failcopycat: 1},\r\n\t\tstallingMove: true,\r\n\t\tvolatileStatus: 'spikyshield',\r\n\t\tonPrepareHit(pokemon) {\r\n\t\t\treturn !!this.queue.willAct() && this.runEvent('StallMove', pokemon);\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tpokemon.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-singleturn', target, 'move: Protect');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 3,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\tif (!move.flags['protect']) {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\tif (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.smartTarget) {\r\n\t\t\t\t\tmove.smartTarget = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Protect');\r\n\t\t\t\t}\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.damage(source.baseMaxhp / 8, source, target);\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\t\tthis.damage(source.baseMaxhp / 8, source, target);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tspinout: {\r\n\t\tnum: 859,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Spin Out\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -2,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tspiritbreak: {\r\n\t\tnum: 789,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Spirit Break\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t},\r\n\tspiritshackle: {\r\n\t\tnum: 662,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Spirit Shackle\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tonHit(target, source, move) {\r\n\t\t\t\tif (source.isActive) target.addVolatile('trapped', source, move, 'trapper');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tspitup: {\r\n\t\tnum: 255,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\tif (!pokemon.volatiles['stockpile']?.layers) return false;\r\n\t\t\treturn pokemon.volatiles['stockpile'].layers * 100;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Spit Up\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1},\r\n\t\tonTry(source) {\r\n\t\t\treturn !!source.volatiles['stockpile'];\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tpokemon.removeVolatile('stockpile');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tspite: {\r\n\t\tnum: 180,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Spite\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tonHit(target) {\r\n\t\t\tlet move: Move | ActiveMove | null = target.lastMove;\r\n\t\t\tif (!move || move.isZ) return false;\r\n\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\r\n\t\t\tconst ppDeducted = target.deductPP(move.id, 4);\r\n\t\t\tif (!ppDeducted) return false;\r\n\t\t\tthis.add(\"-activate\", target, 'move: Spite', move.name, ppDeducted);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsplash: {\r\n\t\tnum: 150,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Splash\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {gravity: 1},\r\n\t\tonTry(source, target, move) {\r\n\t\t\t// Additional Gravity check for Z-move variant\r\n\t\t\tif (this.field.getPseudoWeather('Gravity')) {\r\n\t\t\t\tthis.add('cant', source, 'move: Gravity', move);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonTryHit(target, source) {\r\n\t\t\tthis.add('-nothing');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 3}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsplinteredstormshards: {\r\n\t\tnum: 727,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 190,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Splintered Stormshards\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonHit() {\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tonAfterSubDamage() {\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tisZ: \"lycaniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsplishysplash: {\r\n\t\tnum: 730,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Splishy Splash\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tspore: {\r\n\t\tnum: 147,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Spore\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'slp',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tspotlight: {\r\n\t\tnum: 671,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Spotlight\",\r\n\t\tpp: 15,\r\n\t\tpriority: 3,\r\n\t\tflags: {protect: 1, reflectable: 1, allyanim: 1, noassist: 1, failcopycat: 1},\r\n\t\tvolatileStatus: 'spotlight',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (this.activePerHalf === 1) return false;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singleturn', pokemon, 'move: Spotlight');\r\n\t\t\t},\r\n\t\t\tonFoeRedirectTargetPriority: 2,\r\n\t\t\tonFoeRedirectTarget(target, source, source2, move) {\r\n\t\t\t\tif (this.validTarget(this.effectState.target, source, move.target)) {\r\n\t\t\t\t\tthis.debug(\"Spotlight redirected target of move\");\r\n\t\t\t\t\treturn this.effectState.target;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tspringtidestorm: {\r\n\t\tnum: 831,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Springtide Storm\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Fairy\",\r\n\t},\r\n\tstealthrock: {\r\n\t\tnum: 446,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Stealth Rock\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, mustpressure: 1},\r\n\t\tsideCondition: 'stealthrock',\r\n\t\tcondition: {\r\n\t\t\t// this is a side condition\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Stealth Rock');\r\n\t\t\t},\r\n\t\t\tonEntryHazard(pokemon) {\r\n\t\t\t\tif (pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\t\tconst typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6);\r\n\t\t\t\tthis.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"foeSide\",\r\n\t\ttype: \"Rock\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsteameruption: {\r\n\t\tnum: 592,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Steam Eruption\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tthawsTarget: true,\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'brn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsteamroller: {\r\n\t\tnum: 537,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Steamroller\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsteelbeam: {\r\n\t\tnum: 796,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 140,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Steel Beam\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmindBlownRecoil: true,\r\n\t\tonAfterMove(pokemon, target, move) {\r\n\t\t\tif (move.mindBlownRecoil && !move.multihit) {\r\n\t\t\t\tconst hpBeforeRecoil = pokemon.hp;\r\n\t\t\t\tthis.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Steel Beam'), true);\r\n\t\t\t\tif (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) {\r\n\t\t\t\t\tthis.runEvent('EmergencyExit', pokemon, pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tsteelroller: {\r\n\t\tnum: 798,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 130,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Steel Roller\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTry() {\r\n\t\t\treturn !this.field.isTerrain('');\r\n\t\t},\r\n\t\tonHit() {\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tonAfterSubDamage() {\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t},\r\n\tsteelwing: {\r\n\t\tnum: 211,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Steel Wing\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tdef: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tstickyweb: {\r\n\t\tnum: 564,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sticky Web\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1},\r\n\t\tsideCondition: 'stickyweb',\r\n\t\tcondition: {\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Sticky Web');\r\n\t\t\t},\r\n\t\t\tonEntryHazard(pokemon) {\r\n\t\t\t\tif (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\t\tthis.add('-activate', pokemon, 'move: Sticky Web');\r\n\t\t\t\tthis.boost({spe: -1}, pokemon, this.effectState.source, this.dex.getActiveMove('stickyweb'));\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"foeSide\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstockpile: {\r\n\t\tnum: 254,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Stockpile\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonTry(source) {\r\n\t\t\tif (source.volatiles['stockpile'] && source.volatiles['stockpile'].layers >= 3) return false;\r\n\t\t},\r\n\t\tvolatileStatus: 'stockpile',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.effectState.layers = 1;\r\n\t\t\t\tthis.effectState.def = 0;\r\n\t\t\t\tthis.effectState.spd = 0;\r\n\t\t\t\tthis.add('-start', target, 'stockpile' + this.effectState.layers);\r\n\t\t\t\tconst [curDef, curSpD] = [target.boosts.def, target.boosts.spd];\r\n\t\t\t\tthis.boost({def: 1, spd: 1}, target, target);\r\n\t\t\t\tif (curDef !== target.boosts.def) this.effectState.def--;\r\n\t\t\t\tif (curSpD !== target.boosts.spd) this.effectState.spd--;\r\n\t\t\t},\r\n\t\t\tonRestart(target) {\r\n\t\t\t\tif (this.effectState.layers >= 3) return false;\r\n\t\t\t\tthis.effectState.layers++;\r\n\t\t\t\tthis.add('-start', target, 'stockpile' + this.effectState.layers);\r\n\t\t\t\tconst curDef = target.boosts.def;\r\n\t\t\t\tconst curSpD = target.boosts.spd;\r\n\t\t\t\tthis.boost({def: 1, spd: 1}, target, target);\r\n\t\t\t\tif (curDef !== target.boosts.def) this.effectState.def--;\r\n\t\t\t\tif (curSpD !== target.boosts.spd) this.effectState.spd--;\r\n\t\t\t},\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tif (this.effectState.def || this.effectState.spd) {\r\n\t\t\t\t\tconst boosts: SparseBoostsTable = {};\r\n\t\t\t\t\tif (this.effectState.def) boosts.def = this.effectState.def;\r\n\t\t\t\t\tif (this.effectState.spd) boosts.spd = this.effectState.spd;\r\n\t\t\t\t\tthis.boost(boosts, target, target);\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-end', target, 'Stockpile');\r\n\t\t\t\tif (this.effectState.def !== this.effectState.layers * -1 || this.effectState.spd !== this.effectState.layers * -1) {\r\n\t\t\t\t\tthis.hint(\"In Gen 7, Stockpile keeps track of how many times it successfully altered each stat individually.\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstokedsparksurfer: {\r\n\t\tnum: 700,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 175,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Stoked Sparksurfer\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"aloraichiumz\",\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tstomp: {\r\n\t\tnum: 23,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Stomp\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstompingtantrum: {\r\n\t\tnum: 707,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (pokemon.moveLastTurnResult === false) {\r\n\t\t\t\tthis.debug('doubling Stomping Tantrum BP due to previous move failure');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Stomping Tantrum\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstoneaxe: {\r\n\t\tnum: 830,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Stone Axe\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tself: {\r\n\t\t\tonHit(source) {\r\n\t\t\t\tfor (const side of source.side.foeSidesWithConditions()) {\r\n\t\t\t\t\tside.addSideCondition('stealthrock');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: {}, // allows sheer force to trigger\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t},\r\n\tstoneedge: {\r\n\t\tnum: 444,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Stone Edge\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstoredpower: {\r\n\t\tnum: 500,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst bp = move.basePower + 20 * pokemon.positiveBoosts();\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Stored Power\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tstormthrow: {\r\n\t\tnum: 480,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Storm Throw\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\twillCrit: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tstrangesteam: {\r\n\t\tnum: 790,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Strange Steam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t},\r\n\tstrength: {\r\n\t\tnum: 70,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Strength\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstrengthsap: {\r\n\t\tnum: 668,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Strength Sap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, heal: 1},\r\n\t\tonHit(target, source) {\r\n\t\t\tif (target.boosts.atk === -6) return false;\r\n\t\t\tconst atk = target.getStat('atk', false, true);\r\n\t\t\tconst success = this.boost({atk: -1}, target, source, null, false, true);\r\n\t\t\treturn !!(this.heal(atk, source, target) || success);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tstringshot: {\r\n\t\tnum: 81,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"String Shot\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tspe: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tstruggle: {\r\n\t\tnum: 165,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Struggle\",\r\n\t\tpp: 1,\r\n\t\tnoPPBoosts: true,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tcontact: 1, protect: 1,\r\n\t\t\tfailencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tnoSketch: true,\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tmove.type = '???';\r\n\t\t\tthis.add('-activate', pokemon, 'move: Struggle');\r\n\t\t},\r\n\t\tstruggleRecoil: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tstrugglebug: {\r\n\t\tnum: 522,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Struggle Bug\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tspa: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tstuffcheeks: {\r\n\t\tnum: 747,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Stuff Cheeks\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonDisableMove(pokemon) {\r\n\t\t\tif (!pokemon.getItem().isBerry) pokemon.disableMove('stuffcheeks');\r\n\t\t},\r\n\t\tonTry(source) {\r\n\t\t\treturn source.getItem().isBerry;\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tif (!this.boost({def: 2})) return null;\r\n\t\t\tpokemon.eatItem(true);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tstunspore: {\r\n\t\tnum: 78,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Stun Spore\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {powder: 1, protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'par',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsubmission: {\r\n\t\tnum: 66,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Submission\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [1, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsubstitute: {\r\n\t\tnum: 164,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Substitute\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, nonsky: 1},\r\n\t\tvolatileStatus: 'substitute',\r\n\t\tonTryHit(source) {\r\n\t\t\tif (source.volatiles['substitute']) {\r\n\t\t\t\tthis.add('-fail', source, 'move: Substitute');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\tif (source.hp <= source.maxhp / 4 || source.maxhp === 1) { // Shedinja clause\r\n\t\t\t\tthis.add('-fail', source, 'move: Substitute', '[weak]');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(target) {\r\n\t\t\tthis.directDamage(target.maxhp / 4);\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(target, source, effect) {\r\n\t\t\t\tif (effect?.id === 'shedtail') {\r\n\t\t\t\t\tthis.add('-start', target, 'Substitute', '[from] move: Shed Tail');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-start', target, 'Substitute');\r\n\t\t\t\t}\r\n\t\t\t\tthis.effectState.hp = Math.floor(target.maxhp / 4);\r\n\t\t\t\tif (target.volatiles['partiallytrapped']) {\r\n\t\t\t\t\tthis.add('-end', target, target.volatiles['partiallytrapped'].sourceEffect, '[partiallytrapped]', '[silent]');\r\n\t\t\t\t\tdelete target.volatiles['partiallytrapped'];\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonTryPrimaryHitPriority: -1,\r\n\t\t\tonTryPrimaryHit(target, source, move) {\r\n\t\t\t\tif (target === source || move.flags['bypasssub'] || move.infiltrates) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tlet damage = this.actions.getDamage(source, target, move);\r\n\t\t\t\tif (!damage && damage !== 0) {\r\n\t\t\t\t\tthis.add('-fail', source);\r\n\t\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t\tdamage = this.runEvent('SubDamage', target, source, move, damage);\r\n\t\t\t\tif (!damage) {\r\n\t\t\t\t\treturn damage;\r\n\t\t\t\t}\r\n\t\t\t\tif (damage > target.volatiles['substitute'].hp) {\r\n\t\t\t\t\tdamage = target.volatiles['substitute'].hp as number;\r\n\t\t\t\t}\r\n\t\t\t\ttarget.volatiles['substitute'].hp -= damage;\r\n\t\t\t\tsource.lastDamage = damage;\r\n\t\t\t\tif (target.volatiles['substitute'].hp <= 0) {\r\n\t\t\t\t\tif (move.ohko) this.add('-ohko');\r\n\t\t\t\t\ttarget.removeVolatile('substitute');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Substitute', '[damage]');\r\n\t\t\t\t}\r\n\t\t\t\tif (move.recoil) {\r\n\t\t\t\t\tthis.damage(this.actions.calcRecoilDamage(damage, move), source, target, 'recoil');\r\n\t\t\t\t}\r\n\t\t\t\tif (move.drain) {\r\n\t\t\t\t\tthis.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain');\r\n\t\t\t\t}\r\n\t\t\t\tthis.singleEvent('AfterSubDamage', move, null, target, source, move, damage);\r\n\t\t\t\tthis.runEvent('AfterSubDamage', target, source, move, damage);\r\n\t\t\t\treturn this.HIT_SUBSTITUTE;\r\n\t\t\t},\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Substitute');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsubzeroslammer: {\r\n\t\tnum: 650,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Subzero Slammer\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"iciumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsuckerpunch: {\r\n\t\tnum: 389,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Sucker Punch\",\r\n\t\tpp: 5,\r\n\t\tpriority: 1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonTry(source, target) {\r\n\t\t\tconst action = this.queue.willMove(target);\r\n\t\t\tconst move = action?.choice === 'move' ? action.move : null;\r\n\t\t\tif (!move || (move.category === 'Status' && move.id !== 'mefirst') || target.volatiles['mustrecharge']) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsunnyday: {\r\n\t\tnum: 241,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sunny Day\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tweather: 'sunnyday',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Fire\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsunsteelstrike: {\r\n\t\tnum: 713,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Sunsteel Strike\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tignoreAbility: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Steel\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsuperfang: {\r\n\t\tnum: 162,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tdamageCallback(pokemon, target) {\r\n\t\t\treturn this.clampIntRange(target.getUndynamaxedHP() / 2, 1);\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Super Fang\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsuperpower: {\r\n\t\tnum: 276,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Superpower\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsupersonic: {\r\n\t\tnum: 48,\r\n\t\taccuracy: 55,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Supersonic\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'confusion',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsupersonicskystrike: {\r\n\t\tnum: 626,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Supersonic Skystrike\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"flyiniumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tsurf: {\r\n\t\tnum: 57,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Surf\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsurgingstrikes: {\r\n\t\tnum: 818,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Surging Strikes\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, punch: 1, mirror: 1},\r\n\t\twillCrit: true,\r\n\t\tmultihit: 3,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t},\r\n\tswagger: {\r\n\t\tnum: 207,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Swagger\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tvolatileStatus: 'confusion',\r\n\t\tboosts: {\r\n\t\t\tatk: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tswallow: {\r\n\t\tnum: 256,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Swallow\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonTry(source) {\r\n\t\t\treturn !!source.volatiles['stockpile'];\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst healAmount = [0.25, 0.5, 1];\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, healAmount[(pokemon.volatiles['stockpile'].layers - 1)]));\r\n\t\t\tif (!success) this.add('-fail', pokemon, 'heal');\r\n\t\t\tpokemon.removeVolatile('stockpile');\r\n\t\t\treturn success || this.NOT_FAIL;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tsweetkiss: {\r\n\t\tnum: 186,\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sweet Kiss\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'confusion',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tsweetscent: {\r\n\t\tnum: 230,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Sweet Scent\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tevasion: -2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tswift: {\r\n\t\tnum: 129,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Swift\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tswitcheroo: {\r\n\t\tnum: 415,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Switcheroo\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, allyanim: 1, noassist: 1, failcopycat: 1},\r\n\t\tonTryImmunity(target) {\r\n\t\t\treturn !target.hasAbility('stickyhold');\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tconst yourItem = target.takeItem(source);\r\n\t\t\tconst myItem = source.takeItem();\r\n\t\t\tif (target.item || source.item || (!yourItem && !myItem)) {\r\n\t\t\t\tif (yourItem) target.item = yourItem.id;\r\n\t\t\t\tif (myItem) source.item = myItem.id;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t(myItem && !this.singleEvent('TakeItem', myItem, source.itemState, target, source, move, myItem)) ||\r\n\t\t\t\t(yourItem && !this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem))\r\n\t\t\t) {\r\n\t\t\t\tif (yourItem) target.item = yourItem.id;\r\n\t\t\t\tif (myItem) source.item = myItem.id;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.add('-activate', source, 'move: Trick', '[of] ' + target);\r\n\t\t\tif (myItem) {\r\n\t\t\t\ttarget.setItem(myItem);\r\n\t\t\t\tthis.add('-item', target, myItem, '[from] move: Switcheroo');\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-enditem', target, yourItem, '[silent]', '[from] move: Switcheroo');\r\n\t\t\t}\r\n\t\t\tif (yourItem) {\r\n\t\t\t\tsource.setItem(yourItem);\r\n\t\t\t\tthis.add('-item', source, yourItem, '[from] move: Switcheroo');\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-enditem', source, myItem, '[silent]', '[from] move: Switcheroo');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tswordsdance: {\r\n\t\tnum: 14,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Swords Dance\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, dance: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 2,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tsynchronoise: {\r\n\t\tnum: 485,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Synchronoise\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonTryImmunity(target, source) {\r\n\t\t\treturn target.hasType(source.getTypes());\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsynthesis: {\r\n\t\tnum: 235,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Synthesis\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tlet factor = 0.5;\r\n\t\t\tswitch (pokemon.effectiveWeather()) {\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tfactor = 0.667;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\tcase 'sandstorm':\r\n\t\t\tcase 'hail':\r\n\t\t\tcase 'snow':\r\n\t\t\t\tfactor = 0.25;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tconst success = !!this.heal(this.modify(pokemon.maxhp, factor));\r\n\t\t\tif (!success) {\r\n\t\t\t\tthis.add('-fail', pokemon, 'heal');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttackle: {\r\n\t\tnum: 33,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Tackle\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\ttailglow: {\r\n\t\tnum: 294,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Tail Glow\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tspa: 3,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Bug\",\r\n\t\tzMove: {effect: 'clearnegativeboost'},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ttailslap: {\r\n\t\tnum: 541,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Tail Slap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 140},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\ttailwhip: {\r\n\t\tnum: 39,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Tail Whip\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\ttailwind: {\r\n\t\tnum: 366,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Tailwind\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, wind: 1},\r\n\t\tsideCondition: 'tailwind',\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tdurationCallback(target, source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Tailwind');\r\n\t\t\t\t\treturn 6;\r\n\t\t\t\t}\r\n\t\t\t\treturn 4;\r\n\t\t\t},\r\n\t\t\tonSideStart(side, source) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-sidestart', side, 'move: Tailwind', '[persistent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-sidestart', side, 'move: Tailwind');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifySpe(spe, pokemon) {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 5,\r\n\t\t\tonSideEnd(side) {\r\n\t\t\t\tthis.add('-sideend', side, 'move: Tailwind');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Flying\",\r\n\t\tzMove: {effect: 'crit2'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttakedown: {\r\n\t\tnum: 36,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Take Down\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [1, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\ttakeheart: {\r\n\t\tnum: 850,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Take Heart\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst success = !!this.boost({spa: 1, spd: 1});\r\n\t\t\treturn pokemon.cureStatus() || success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t},\r\n\ttarshot: {\r\n\t\tnum: 749,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Tar Shot\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'tarshot',\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'Tar Shot');\r\n\t\t\t},\r\n\t\t\tonEffectivenessPriority: -2,\r\n\t\t\tonEffectiveness(typeMod, target, type, move) {\r\n\t\t\t\tif (move.type !== 'Fire') return;\r\n\t\t\t\tif (!target) return;\r\n\t\t\t\tif (type !== target.getTypes()[0]) return;\r\n\t\t\t\treturn typeMod + 1;\r\n\t\t\t},\r\n\t\t},\r\n\t\tboosts: {\r\n\t\t\tspe: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Rock\",\r\n\t},\r\n\ttaunt: {\r\n\t\tnum: 269,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Taunt\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'taunt',\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tif (target.activeTurns && !this.queue.willMove(target)) {\r\n\t\t\t\t\tthis.effectState.duration++;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-start', target, 'move: Taunt');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 15,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'move: Taunt');\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tconst move = this.dex.moves.get(moveSlot.id);\r\n\t\t\t\t\tif (move.category === 'Status' && move.id !== 'mefirst') {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 5,\r\n\t\t\tonBeforeMove(attacker, defender, move) {\r\n\t\t\t\tif (!move.isZ && !move.isMax && move.category === 'Status' && move.id !== 'mefirst') {\r\n\t\t\t\t\tthis.add('cant', attacker, 'move: Taunt', move);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttearfullook: {\r\n\t\tnum: 715,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Tearful Look\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, mirror: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -1,\r\n\t\t\tspa: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tteatime: {\r\n\t\tnum: 752,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Teatime\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bypasssub: 1},\r\n\t\tonHitField(target, source, move) {\r\n\t\t\tconst targets: Pokemon[] = [];\r\n\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\tif (this.runEvent('Invulnerability', pokemon, source, move) === false) {\r\n\t\t\t\t\tthis.add('-miss', source, pokemon);\r\n\t\t\t\t} else if (this.runEvent('TryHit', pokemon, source, move) && pokemon.getItem().isBerry) {\r\n\t\t\t\t\ttargets.push(pokemon);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.add('-fieldactivate', 'move: Teatime');\r\n\t\t\tif (!targets.length) {\r\n\t\t\t\tthis.add('-fail', source, 'move: Teatime');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t}\r\n\t\t\tfor (const pokemon of targets) {\r\n\t\t\t\tpokemon.eatItem(true);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\ttechnoblast: {\r\n\t\tnum: 546,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Techno Blast\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tif (pokemon.ignoringItem()) return;\r\n\t\t\tmove.type = this.runEvent('Drive', pokemon, null, move, 'Normal');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttectonicrage: {\r\n\t\tnum: 630,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Tectonic Rage\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"groundiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tteeterdance: {\r\n\t\tnum: 298,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Teeter Dance\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, dance: 1},\r\n\t\tvolatileStatus: 'confusion',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacent\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\ttelekinesis: {\r\n\t\tnum: 477,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Telekinesis\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, gravity: 1, allyanim: 1},\r\n\t\tvolatileStatus: 'telekinesis',\r\n\t\tonTry(source, target, move) {\r\n\t\t\t// Additional Gravity check for Z-move variant\r\n\t\t\tif (this.field.getPseudoWeather('Gravity')) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('cant', source, 'move: Gravity', move);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tif (['Diglett', 'Dugtrio', 'Palossand', 'Sandygast'].includes(target.baseSpecies.baseSpecies) ||\r\n\t\t\t\t\t\ttarget.baseSpecies.name === 'Gengar-Mega') {\r\n\t\t\t\t\tthis.add('-immune', target);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t\tif (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false;\r\n\t\t\t\tthis.add('-start', target, 'Telekinesis');\r\n\t\t\t},\r\n\t\t\tonAccuracyPriority: -1,\r\n\t\t\tonAccuracy(accuracy, target, source, move) {\r\n\t\t\t\tif (move && !move.ohko) return true;\r\n\t\t\t},\r\n\t\t\tonImmunity(type) {\r\n\t\t\t\tif (type === 'Ground') return false;\r\n\t\t\t},\r\n\t\t\tonUpdate(pokemon) {\r\n\t\t\t\tif (pokemon.baseSpecies.name === 'Gengar-Mega') {\r\n\t\t\t\t\tdelete pokemon.volatiles['telekinesis'];\r\n\t\t\t\t\tthis.add('-end', pokemon, 'Telekinesis', '[silent]');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 19,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Telekinesis');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spa: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tteleport: {\r\n\t\tnum: 100,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Teleport\",\r\n\t\tpp: 20,\r\n\t\tpriority: -6,\r\n\t\tflags: {},\r\n\t\tonTry(source) {\r\n\t\t\treturn !!this.canSwitch(source.side);\r\n\t\t},\r\n\t\tselfSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tterablast: {\r\n\t\tnum: 851,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Tera Blast\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, mustpressure: 1},\r\n\t\tonModifyType(move, pokemon, target) {\r\n\t\t\tif (pokemon.terastallized) {\r\n\t\t\t\tmove.type = pokemon.teraType;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (pokemon.terastallized && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) {\r\n\t\t\t\tmove.category = 'Physical';\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\tterrainpulse: {\r\n\t\tnum: 805,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Terrain Pulse\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, pulse: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tif (!pokemon.isGrounded()) return;\r\n\t\t\tswitch (this.field.terrain) {\r\n\t\t\tcase 'electricterrain':\r\n\t\t\t\tmove.type = 'Electric';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'grassyterrain':\r\n\t\t\t\tmove.type = 'Grass';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'mistyterrain':\r\n\t\t\t\tmove.type = 'Fairy';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'psychicterrain':\r\n\t\t\t\tmove.type = 'Psychic';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (this.field.terrain && pokemon.isGrounded()) {\r\n\t\t\t\tmove.basePower *= 2;\r\n\t\t\t\tthis.debug('BP doubled in Terrain');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t},\r\n\tthief: {\r\n\t\tnum: 168,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Thief\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, failmefirst: 1, noassist: 1, failcopycat: 1},\r\n\t\tonAfterHit(target, source, move) {\r\n\t\t\tif (source.item || source.volatiles['gem']) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst yourItem = target.takeItem(source);\r\n\t\t\tif (!yourItem) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem) ||\r\n\t\t\t\t!source.setItem(yourItem)) {\r\n\t\t\t\ttarget.item = yourItem.id; // bypass setItem so we don't break choicelock or anything\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-enditem', target, yourItem, '[silent]', '[from] move: Thief', '[of] ' + source);\r\n\t\t\tthis.add('-item', source, yourItem, '[from] move: Thief', '[of] ' + target);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tthousandarrows: {\r\n\t\tnum: 614,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Thousand Arrows\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tonEffectiveness(typeMod, target, type, move) {\r\n\t\t\tif (move.type !== 'Ground') return;\r\n\t\t\tif (!target) return; // avoid crashing when called from a chat plugin\r\n\t\t\t// ignore effectiveness if the target is Flying type and immune to Ground\r\n\t\t\tif (!target.runImmunity('Ground')) {\r\n\t\t\t\tif (target.hasType('Flying')) return 0;\r\n\t\t\t}\r\n\t\t},\r\n\t\tvolatileStatus: 'smackdown',\r\n\t\tignoreImmunity: {'Ground': true},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ground\",\r\n\t\tzMove: {basePower: 180},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tthousandwaves: {\r\n\t\tnum: 615,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Thousand Waves\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tif (source.isActive) target.addVolatile('trapped', source, move, 'trapper');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tthrash: {\r\n\t\tnum: 37,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Thrash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, failinstruct: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'lockedmove',\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {\r\n\t\t\t\tpokemon.removeVolatile('lockedmove');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tthroatchop: {\r\n\t\tnum: 675,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Throat Chop\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'Throat Chop', '[silent]');\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\t\tif (this.dex.moves.get(moveSlot.id).flags['sound']) {\r\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 6,\r\n\t\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\t\tif (!move.isZ && !move.isMax && move.flags['sound']) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Throat Chop');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\t\tif (!move.isZ && !move.isMax && move.flags['sound']) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'move: Throat Chop');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 22,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Throat Chop', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tonHit(target) {\r\n\t\t\t\ttarget.addVolatile('throatchop');\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tthunder: {\r\n\t\tnum: 87,\r\n\t\taccuracy: 70,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Thunder\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tswitch (target?.effectiveWeather()) {\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\t\tmove.accuracy = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tmove.accuracy = 50;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tthunderbolt: {\r\n\t\tnum: 85,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Thunderbolt\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tthundercage: {\r\n\t\tnum: 819,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Thunder Cage\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t},\r\n\tthunderfang: {\r\n\t\tnum: 422,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Thunder Fang\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {bite: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondaries: [\r\n\t\t\t{\r\n\t\t\t\tchance: 10,\r\n\t\t\t\tstatus: 'par',\r\n\t\t\t}, {\r\n\t\t\t\tchance: 10,\r\n\t\t\t\tvolatileStatus: 'flinch',\r\n\t\t\t},\r\n\t\t],\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tthunderouskick: {\r\n\t\tnum: 823,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Thunderous Kick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tdef: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tthunderpunch: {\r\n\t\tnum: 9,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Thunder Punch\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, punch: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tthundershock: {\r\n\t\tnum: 84,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Thunder Shock\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tthunderwave: {\r\n\t\tnum: 86,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Thunder Wave\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'par',\r\n\t\tignoreImmunity: false,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttickle: {\r\n\t\tnum: 321,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Tickle\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: -1,\r\n\t\t\tdef: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\ttidyup: {\r\n\t\tnum: 882,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Tidy Up\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tonHit(pokemon) {\r\n\t\t\tlet success = false;\r\n\t\t\tfor (const active of this.getAllActive()) {\r\n\t\t\t\tif (active.removeVolatile('substitute')) success = true;\r\n\t\t\t}\r\n\t\t\tconst removeAll = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\r\n\t\t\tconst sides = [pokemon.side, ...pokemon.side.foeSidesWithConditions()];\r\n\t\t\tfor (const side of sides) {\r\n\t\t\t\tfor (const sideCondition of removeAll) {\r\n\t\t\t\t\tif (side.removeSideCondition(sideCondition)) {\r\n\t\t\t\t\t\tthis.add('-sideend', side, this.dex.conditions.get(sideCondition).name);\r\n\t\t\t\t\t\tsuccess = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (success) this.add('-activate', pokemon, 'move: Tidy Up');\r\n\t\t\treturn !!this.boost({atk: 1, spe: 1}, pokemon, pokemon, null, false, true) || success;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t},\r\n\ttopsyturvy: {\r\n\t\tnum: 576,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Topsy-Turvy\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target) {\r\n\t\t\tlet success = false;\r\n\t\t\tlet i: BoostID;\r\n\t\t\tfor (i in target.boosts) {\r\n\t\t\t\tif (target.boosts[i] === 0) continue;\r\n\t\t\t\ttarget.boosts[i] = -target.boosts[i];\r\n\t\t\t\tsuccess = true;\r\n\t\t\t}\r\n\t\t\tif (!success) return false;\r\n\t\t\tthis.add('-invertboost', target, '[from] move: Topsy-Turvy');\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttorchsong: {\r\n\t\tnum: 871,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Torch Song\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspa: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ttorment: {\r\n\t\tnum: 259,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Torment\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1},\r\n\t\tvolatileStatus: 'torment',\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true,\r\n\t\t\tonStart(pokemon, source, effect) {\r\n\t\t\t\tif (pokemon.volatiles['dynamax']) {\r\n\t\t\t\t\tdelete pokemon.volatiles['torment'];\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (effect?.id === 'gmaxmeltdown') this.effectState.duration = 3;\r\n\t\t\t\tthis.add('-start', pokemon, 'Torment');\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Torment');\r\n\t\t\t},\r\n\t\t\tonDisableMove(pokemon) {\r\n\t\t\t\tif (pokemon.lastMove && pokemon.lastMove.id !== 'struggle') pokemon.disableMove(pokemon.lastMove.id);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\ttoxic: {\r\n\t\tnum: 92,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Toxic\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\t// No Guard-like effect for Poison-type users implemented in Scripts#tryMoveHit\r\n\t\tstatus: 'tox',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttoxicspikes: {\r\n\t\tnum: 390,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Toxic Spikes\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {reflectable: 1, nonsky: 1, mustpressure: 1},\r\n\t\tsideCondition: 'toxicspikes',\r\n\t\tcondition: {\r\n\t\t\t// this is a side condition\r\n\t\t\tonSideStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Toxic Spikes');\r\n\t\t\t\tthis.effectState.layers = 1;\r\n\t\t\t},\r\n\t\t\tonSideRestart(side) {\r\n\t\t\t\tif (this.effectState.layers >= 2) return false;\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Toxic Spikes');\r\n\t\t\t\tthis.effectState.layers++;\r\n\t\t\t},\r\n\t\t\tonEntryHazard(pokemon) {\r\n\t\t\t\tif (!pokemon.isGrounded()) return;\r\n\t\t\t\tif (pokemon.hasType('Poison')) {\r\n\t\t\t\t\tthis.add('-sideend', pokemon.side, 'move: Toxic Spikes', '[of] ' + pokemon);\r\n\t\t\t\t\tpokemon.side.removeSideCondition('toxicspikes');\r\n\t\t\t\t} else if (pokemon.hasType('Steel') || pokemon.hasItem('heavydutyboots')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else if (this.effectState.layers >= 2) {\r\n\t\t\t\t\tpokemon.trySetStatus('tox', pokemon.side.foe.active[0]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpokemon.trySetStatus('psn', pokemon.side.foe.active[0]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"foeSide\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttoxicthread: {\r\n\t\tnum: 672,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Toxic Thread\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'psn',\r\n\t\tboosts: {\r\n\t\t\tspe: -1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\ttrailblaze: {\r\n\t\tnum: 885,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Trailblaze\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tspe: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttransform: {\r\n\t\tnum: 144,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Transform\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {allyanim: 1, failencore: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},\r\n\t\tonHit(target, pokemon) {\r\n\t\t\tif (!pokemon.transformInto(target)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {effect: 'heal'},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttriattack: {\r\n\t\tnum: 161,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Tri Attack\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tonHit(target, source) {\r\n\t\t\t\tconst result = this.random(3);\r\n\t\t\t\tif (result === 0) {\r\n\t\t\t\t\ttarget.trySetStatus('brn', source);\r\n\t\t\t\t} else if (result === 1) {\r\n\t\t\t\t\ttarget.trySetStatus('par', source);\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget.trySetStatus('frz', source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ttrick: {\r\n\t\tnum: 271,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Trick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, allyanim: 1, noassist: 1, failcopycat: 1},\r\n\t\tonTryImmunity(target) {\r\n\t\t\treturn !target.hasAbility('stickyhold');\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tconst yourItem = target.takeItem(source);\r\n\t\t\tconst myItem = source.takeItem();\r\n\t\t\tif (target.item || source.item || (!yourItem && !myItem)) {\r\n\t\t\t\tif (yourItem) target.item = yourItem.id;\r\n\t\t\t\tif (myItem) source.item = myItem.id;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t(myItem && !this.singleEvent('TakeItem', myItem, source.itemState, target, source, move, myItem)) ||\r\n\t\t\t\t(yourItem && !this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem))\r\n\t\t\t) {\r\n\t\t\t\tif (yourItem) target.item = yourItem.id;\r\n\t\t\t\tif (myItem) source.item = myItem.id;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.add('-activate', source, 'move: Trick', '[of] ' + target);\r\n\t\t\tif (myItem) {\r\n\t\t\t\ttarget.setItem(myItem);\r\n\t\t\t\tthis.add('-item', target, myItem, '[from] move: Trick');\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-enditem', target, yourItem, '[silent]', '[from] move: Trick');\r\n\t\t\t}\r\n\t\t\tif (yourItem) {\r\n\t\t\t\tsource.setItem(yourItem);\r\n\t\t\t\tthis.add('-item', source, yourItem, '[from] move: Trick');\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-enditem', source, myItem, '[silent]', '[from] move: Trick');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spe: 2}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttrickortreat: {\r\n\t\tnum: 567,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Trick-or-Treat\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.hasType('Ghost')) return false;\r\n\t\t\tif (!target.addType('Ghost')) return false;\r\n\t\t\tthis.add('-start', target, 'typeadd', 'Ghost', '[from] move: Trick-or-Treat');\r\n\r\n\t\t\tif (target.side.active.length === 2 && target.position === 1) {\r\n\t\t\t\t// Curse Glitch\r\n\t\t\t\tconst action = this.queue.willMove(target);\r\n\t\t\t\tif (action && action.move.id === 'curse') {\r\n\t\t\t\t\taction.targetLoc = -1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tzMove: {boost: {atk: 1, def: 1, spa: 1, spd: 1, spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\ttrickroom: {\r\n\t\tnum: 433,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Trick Room\",\r\n\t\tpp: 5,\r\n\t\tpriority: -7,\r\n\t\tflags: {mirror: 1},\r\n\t\tpseudoWeather: 'trickroom',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Trick Room');\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonFieldStart(target, source) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Trick Room', '[of] ' + source, '[persistent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Trick Room', '[of] ' + source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldRestart(target, source) {\r\n\t\t\t\tthis.field.removePseudoWeather('trickroom');\r\n\t\t\t},\r\n\t\t\t// Speed modification is changed in Pokemon.getActionSpeed() in sim/pokemon.js\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 1,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Trick Room');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {accuracy: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\ttriplearrows: {\r\n\t\tnum: 843,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Triple Arrows\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tcritRatio: 2,\r\n\t\tsecondaries: [\r\n\t\t\t{\r\n\t\t\t\tchance: 50,\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tdef: -1,\r\n\t\t\t\t},\r\n\t\t\t}, {\r\n\t\t\t\tchance: 30,\r\n\t\t\t\tvolatileStatus: 'flinch',\r\n\t\t\t},\r\n\t\t],\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\ttripleaxel: {\r\n\t\tnum: 813,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 20,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\treturn 20 * move.hit;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Triple Axel\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 3,\r\n\t\tmultiaccuracy: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Ice\",\r\n\t\tzMove: {basePower: 120},\r\n\t\tmaxMove: {basePower: 140},\r\n\t},\r\n\ttripledive: {\r\n\t\tnum: 865,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 30,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Triple Dive\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 3,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\ttriplekick: {\r\n\t\tnum: 167,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 10,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\treturn 10 * move.hit;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Triple Kick\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tmultihit: 3,\r\n\t\tmultiaccuracy: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tzMove: {basePower: 120},\r\n\t\tmaxMove: {basePower: 80},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttropkick: {\r\n\t\tnum: 688,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Trop Kick\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\ttrumpcard: {\r\n\t\tnum: 376,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(source, target, move) {\r\n\t\t\tconst callerMoveId = move.sourceEffect || move.id;\r\n\t\t\tconst moveSlot = callerMoveId === 'instruct' ? source.getMoveData(move.id) : source.getMoveData(callerMoveId);\r\n\t\t\tlet bp;\r\n\t\t\tif (!moveSlot) {\r\n\t\t\t\tbp = 40;\r\n\t\t\t} else {\r\n\t\t\t\tswitch (moveSlot.pp) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\tbp = 200;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tbp = 80;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tbp = 60;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tbp = 50;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbp = 40;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Trump Card\",\r\n\t\tpp: 5,\r\n\t\tnoPPBoosts: true,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttwinbeam: {\r\n\t\tnum: 888,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Twin Beam\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttwineedle: {\r\n\t\tnum: 41,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 25,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Twineedle\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: 2,\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tstatus: 'psn',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tmaxMove: {basePower: 100},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttwinkletackle: {\r\n\t\tnum: 656,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 1,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Twinkle Tackle\",\r\n\t\tpp: 1,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\r\n\t\tisZ: \"fairiumz\",\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fairy\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\ttwister: {\r\n\t\tnum: 239,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Twister\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Dragon\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tuturn: {\r\n\t\tnum: 369,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"U-turn\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tselfSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tuproar: {\r\n\t\tnum: 253,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Uproar\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, nosleeptalk: 1, failinstruct: 1},\r\n\t\tself: {\r\n\t\t\tvolatileStatus: 'uproar',\r\n\t\t},\r\n\t\tonTryHit(target) {\r\n\t\t\tconst activeTeam = target.side.activeTeam();\r\n\t\t\tconst foeActiveTeam = target.side.foe.activeTeam();\r\n\t\t\tfor (const [i, allyActive] of activeTeam.entries()) {\r\n\t\t\t\tif (allyActive && allyActive.status === 'slp') allyActive.cureStatus();\r\n\t\t\t\tconst foeActive = foeActiveTeam[i];\r\n\t\t\t\tif (foeActive && foeActive.status === 'slp') foeActive.cureStatus();\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 3,\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'Uproar');\r\n\t\t\t},\r\n\t\t\tonResidual(target) {\r\n\t\t\t\tif (target.volatiles['throatchop']) {\r\n\t\t\t\t\ttarget.removeVolatile('uproar');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (target.lastMove && target.lastMove.id === 'struggle') {\r\n\t\t\t\t\t// don't lock\r\n\t\t\t\t\tdelete target.volatiles['uproar'];\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-start', target, 'Uproar', '[upkeep]');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 28,\r\n\t\t\tonResidualSubOrder: 1,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Uproar');\r\n\t\t\t},\r\n\t\t\tonLockMove: 'uproar',\r\n\t\t\tonAnySetStatus(status, pokemon) {\r\n\t\t\t\tif (status.id === 'slp') {\r\n\t\t\t\t\tif (pokemon === this.effectState.target) {\r\n\t\t\t\t\t\tthis.add('-fail', pokemon, 'slp', '[from] Uproar', '[msg]');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.add('-fail', pokemon, 'slp', '[from] Uproar');\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tvacuumwave: {\r\n\t\tnum: 410,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Vacuum Wave\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tvcreate: {\r\n\t\tnum: 557,\r\n\t\taccuracy: 95,\r\n\t\tbasePower: 180,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"V-create\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tspe: -1,\r\n\t\t\t\tdef: -1,\r\n\t\t\t\tspd: -1,\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tzMove: {basePower: 220},\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tveeveevolley: {\r\n\t\tnum: 741,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon) {\r\n\t\t\tconst bp = Math.floor((pokemon.happiness * 10) / 25) || 1;\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Veevee Volley\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tvenomdrench: {\r\n\t\tnum: 599,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Venom Drench\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tif (target.status === 'psn' || target.status === 'tox') {\r\n\t\t\t\treturn !!this.boost({atk: -1, spa: -1, spe: -1}, target, source, move);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Poison\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tvenoshock: {\r\n\t\tnum: 474,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Venoshock\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonBasePower(basePower, pokemon, target) {\r\n\t\t\tif (target.status === 'psn' || target.status === 'tox') {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tvictorydance: {\r\n\t\tnum: 837,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Victory Dance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, dance: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tdef: 1,\r\n\t\t\tspe: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Fighting\",\r\n\t},\r\n\tvinewhip: {\r\n\t\tnum: 22,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 45,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Vine Whip\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tvisegrip: {\r\n\t\tnum: 11,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 55,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Vise Grip\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tvitalthrow: {\r\n\t\tnum: 233,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Vital Throw\",\r\n\t\tpp: 10,\r\n\t\tpriority: -1,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tvoltswitch: {\r\n\t\tnum: 521,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Volt Switch\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tselfSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tvolttackle: {\r\n\t\tnum: 344,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Volt Tackle\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [33, 100],\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\twakeupslap: {\r\n\t\tnum: 358,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (target.status === 'slp' || target.hasAbility('comatose')) {\r\n\t\t\t\tthis.debug('BP doubled on sleeping target');\r\n\t\t\t\treturn move.basePower * 2;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Wake-Up Slap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonHit(target) {\r\n\t\t\tif (target.status === 'slp') target.cureStatus();\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\twaterfall: {\r\n\t\tnum: 127,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Waterfall\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\twatergun: {\r\n\t\tnum: 55,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Water Gun\",\r\n\t\tpp: 25,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\twaterpledge: {\r\n\t\tnum: 518,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tbasePowerCallback(target, source, move) {\r\n\t\t\tif (['firepledge', 'grasspledge'].includes(move.sourceEffect)) {\r\n\t\t\t\tthis.add('-combine');\r\n\t\t\t\treturn 150;\r\n\t\t\t}\r\n\t\t\treturn 80;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Water Pledge\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, nonsky: 1, pledgecombo: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tfor (const action of this.queue) {\r\n\t\t\t\tif (action.choice !== 'move') continue;\r\n\t\t\t\tconst otherMove = action.move;\r\n\t\t\t\tconst otherMoveUser = action.pokemon;\r\n\t\t\t\tif (\r\n\t\t\t\t\t!otherMove || !action.pokemon || !otherMoveUser.isActive ||\r\n\t\t\t\t\totherMoveUser.fainted || action.maxMove || action.zmove\r\n\t\t\t\t) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (otherMoveUser.isAlly(source) && ['firepledge', 'grasspledge'].includes(otherMove.id)) {\r\n\t\t\t\t\tthis.queue.prioritizeAction(action, move);\r\n\t\t\t\t\tthis.add('-waiting', source, otherMoveUser);\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move) {\r\n\t\t\tif (move.sourceEffect === 'grasspledge') {\r\n\t\t\t\tmove.type = 'Grass';\r\n\t\t\t\tmove.forceSTAB = true;\r\n\t\t\t\tmove.sideCondition = 'grasspledge';\r\n\t\t\t}\r\n\t\t\tif (move.sourceEffect === 'firepledge') {\r\n\t\t\t\tmove.type = 'Water';\r\n\t\t\t\tmove.forceSTAB = true;\r\n\t\t\t\tmove.self = {sideCondition: 'waterpledge'};\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 4,\r\n\t\t\tonSideStart(targetSide) {\r\n\t\t\t\tthis.add('-sidestart', targetSide, 'Water Pledge');\r\n\t\t\t},\r\n\t\t\tonSideResidualOrder: 26,\r\n\t\t\tonSideResidualSubOrder: 7,\r\n\t\t\tonSideEnd(targetSide) {\r\n\t\t\t\tthis.add('-sideend', targetSide, 'Water Pledge');\r\n\t\t\t},\r\n\t\t\tonModifyMove(move, pokemon) {\r\n\t\t\t\tif (move.secondaries && move.id !== 'secretpower') {\r\n\t\t\t\t\tthis.debug('doubling secondary chance');\r\n\t\t\t\t\tfor (const secondary of move.secondaries) {\r\n\t\t\t\t\t\tif (pokemon.hasAbility('serenegrace') && secondary.volatileStatus === 'flinch') continue;\r\n\t\t\t\t\t\tif (secondary.chance) secondary.chance *= 2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (move.self?.chance) move.self.chance *= 2;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\twaterpulse: {\r\n\t\tnum: 352,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Water Pulse\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, pulse: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'confusion',\r\n\t\t},\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\twatershuriken: {\r\n\t\tnum: 594,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 15,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (pokemon.species.name === 'Greninja-Ash' && pokemon.hasAbility('battlebond') &&\r\n\t\t\t\t!pokemon.transformed) {\r\n\t\t\t\treturn move.basePower + 5;\r\n\t\t\t}\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Water Shuriken\",\r\n\t\tpp: 20,\r\n\t\tpriority: 1,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tmultihit: [2, 5],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\twatersport: {\r\n\t\tnum: 346,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Water Sport\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {nonsky: 1},\r\n\t\tpseudoWeather: 'watersport',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tonFieldStart(field, source) {\r\n\t\t\t\tthis.add('-fieldstart', 'move: Water Sport', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonBasePowerPriority: 1,\r\n\t\t\tonBasePower(basePower, attacker, defender, move) {\r\n\t\t\t\tif (move.type === 'Fire') {\r\n\t\t\t\t\tthis.debug('water sport weaken');\r\n\t\t\t\t\treturn this.chainModify([1352, 4096]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 3,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Water Sport');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Water\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\twaterspout: {\r\n\t\tnum: 323,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 150,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst bp = move.basePower * pokemon.hp / pokemon.maxhp;\r\n\t\t\tthis.debug('BP: ' + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Water Spout\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\twavecrash: {\r\n\t\tnum: 834,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Wave Crash\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [33, 100],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\tweatherball: {\r\n\t\tnum: 311,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Weather Ball\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tonModifyType(move, pokemon) {\r\n\t\t\tswitch (pokemon.effectiveWeather()) {\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tmove.type = 'Fire';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\t\tmove.type = 'Water';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'sandstorm':\r\n\t\t\t\tmove.type = 'Rock';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'hail':\r\n\t\t\tcase 'snow':\r\n\t\t\t\tmove.type = 'Ice';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tswitch (pokemon.effectiveWeather()) {\r\n\t\t\tcase 'sunnyday':\r\n\t\t\tcase 'desolateland':\r\n\t\t\t\tmove.basePower *= 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'raindance':\r\n\t\t\tcase 'primordialsea':\r\n\t\t\t\tmove.basePower *= 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'sandstorm':\r\n\t\t\t\tmove.basePower *= 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'hail':\r\n\t\t\tcase 'snow':\r\n\t\t\t\tmove.basePower *= 2;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.debug('BP: ' + move.basePower);\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 160},\r\n\t\tmaxMove: {basePower: 130},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\twhirlpool: {\r\n\t\tnum: 250,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 35,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Whirlpool\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Water\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\twhirlwind: {\r\n\t\tnum: 18,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Whirlwind\",\r\n\t\tpp: 20,\r\n\t\tpriority: -6,\r\n\t\tflags: {reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, wind: 1, noassist: 1, failcopycat: 1},\r\n\t\tforceSwitch: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\twickedblow: {\r\n\t\tnum: 817,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Wicked Blow\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, punch: 1, mirror: 1},\r\n\t\twillCrit: true,\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\twickedtorque: {\r\n\t\tnum: 897,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Wicked Torque\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {\r\n\t\t\tprotect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tchance: 10,\r\n\t\t\tstatus: 'slp',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t},\r\n\twideguard: {\r\n\t\tnum: 469,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Wide Guard\",\r\n\t\tpp: 10,\r\n\t\tpriority: 3,\r\n\t\tflags: {snatch: 1},\r\n\t\tsideCondition: 'wideguard',\r\n\t\tonTry() {\r\n\t\t\treturn !!this.queue.willAct();\r\n\t\t},\r\n\t\tonHitSide(side, source) {\r\n\t\t\tsource.addVolatile('stall');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 1,\r\n\t\t\tonSideStart(target, source) {\r\n\t\t\t\tthis.add('-singleturn', source, 'Wide Guard');\r\n\t\t\t},\r\n\t\t\tonTryHitPriority: 4,\r\n\t\t\tonTryHit(target, source, move) {\r\n\t\t\t\t// Wide Guard blocks all spread moves\r\n\t\t\t\tif (move?.target !== 'allAdjacent' && move.target !== 'allAdjacentFoes') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (move.isZ || move.isMax) {\r\n\t\t\t\t\tif (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return;\r\n\t\t\t\t\ttarget.getMoveHitData(move).zBrokeProtect = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-activate', target, 'move: Wide Guard');\r\n\t\t\t\tconst lockedmove = source.getVolatile('lockedmove');\r\n\t\t\t\tif (lockedmove) {\r\n\t\t\t\t\t// Outrage counter is reset\r\n\t\t\t\t\tif (source.volatiles['lockedmove'].duration === 2) {\r\n\t\t\t\t\t\tdelete source.volatiles['lockedmove'];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.NOT_FAIL;\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allySide\",\r\n\t\ttype: \"Rock\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\twildboltstorm: {\r\n\t\tnum: 847,\r\n\t\taccuracy: 80,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Unobtainable\",\r\n\t\tname: \"Wildbolt Storm\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, wind: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"allAdjacentFoes\",\r\n\t\ttype: \"Electric\",\r\n\t},\r\n\twildcharge: {\r\n\t\tnum: 528,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Wild Charge\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [1, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\twillowisp: {\r\n\t\tnum: 261,\r\n\t\taccuracy: 85,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Will-O-Wisp\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tstatus: 'brn',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Fire\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\twingattack: {\r\n\t\tnum: 17,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 60,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Wing Attack\",\r\n\t\tpp: 35,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, distance: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"any\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\twish: {\r\n\t\tnum: 273,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Wish\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tslotCondition: 'Wish',\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonStart(pokemon, source) {\r\n\t\t\t\tthis.effectState.hp = source.maxhp / 2;\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 4,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tif (target && !target.fainted) {\r\n\t\t\t\t\tconst damage = this.heal(this.effectState.hp, target, target);\r\n\t\t\t\t\tif (damage) {\r\n\t\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Wish', '[wisher] ' + this.effectState.source.name);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\twithdraw: {\r\n\t\tnum: 110,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Withdraw\",\r\n\t\tpp: 40,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tdef: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Water\",\r\n\t\tzMove: {boost: {def: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\twonderroom: {\r\n\t\tnum: 472,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Wonder Room\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {mirror: 1},\r\n\t\tpseudoWeather: 'wonderroom',\r\n\t\tcondition: {\r\n\t\t\tduration: 5,\r\n\t\t\tdurationCallback(source, effect) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-activate', source, 'ability: Persistent', '[move] Wonder Room');\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t}\r\n\t\t\t\treturn 5;\r\n\t\t\t},\r\n\t\t\tonModifyMove(move, source, target) {\r\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\r\n\t\t\t\tif (!move.overrideOffensiveStat) return;\r\n\t\t\t\tconst statAndBoosts = move.overrideOffensiveStat;\r\n\t\t\t\tif (!['def', 'spd'].includes(statAndBoosts)) return;\r\n\t\t\t\tmove.overrideOffensiveStat = statAndBoosts === 'def' ? 'spd' : 'def';\r\n\t\t\t\tthis.hint(`${move.name} uses ${statAndBoosts === 'def' ? '' : 'Sp. '}Def boosts when Wonder Room is active.`);\r\n\t\t\t},\r\n\t\t\tonFieldStart(field, source) {\r\n\t\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Wonder Room', '[of] ' + source, '[persistent]');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add('-fieldstart', 'move: Wonder Room', '[of] ' + source);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonFieldRestart(target, source) {\r\n\t\t\t\tthis.field.removePseudoWeather('wonderroom');\r\n\t\t\t},\r\n\t\t\t// Swapping defenses partially implemented in sim/pokemon.js:Pokemon#calculateStat and Pokemon#getStat\r\n\t\t\tonFieldResidualOrder: 27,\r\n\t\t\tonFieldResidualSubOrder: 5,\r\n\t\t\tonFieldEnd() {\r\n\t\t\t\tthis.add('-fieldend', 'move: Wonder Room');\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"all\",\r\n\t\ttype: \"Psychic\",\r\n\t\tzMove: {boost: {spd: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\twoodhammer: {\r\n\t\tnum: 452,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Wood Hammer\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\trecoil: [33, 100],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tworkup: {\r\n\t\tnum: 526,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Work Up\",\r\n\t\tpp: 30,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1},\r\n\t\tboosts: {\r\n\t\t\tatk: 1,\r\n\t\t\tspa: 1,\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {atk: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tworryseed: {\r\n\t\tnum: 388,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Worry Seed\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1},\r\n\t\tonTryImmunity(target) {\r\n\t\t\t// Truant and Insomnia have special treatment; they fail before\r\n\t\t\t// checking accuracy and will double Stomping Tantrum's BP\r\n\t\t\tif (target.ability === 'truant' || target.ability === 'insomnia') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.getAbility().isPermanent) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonHit(pokemon) {\r\n\t\t\tconst oldAbility = pokemon.setAbility('insomnia');\r\n\t\t\tif (oldAbility) {\r\n\t\t\t\tthis.add('-ability', pokemon, 'Insomnia', '[from] move: Worry Seed');\r\n\t\t\t\tif (pokemon.status === 'slp') {\r\n\t\t\t\t\tpokemon.cureStatus();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn oldAbility as false | null;\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Grass\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\twrap: {\r\n\t\tnum: 35,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 15,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Wrap\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tvolatileStatus: 'partiallytrapped',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\twringout: {\r\n\t\tnum: 378,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 0,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tconst hp = target.hp;\r\n\t\t\tconst maxHP = target.maxhp;\r\n\t\t\tconst bp = Math.floor(Math.floor((120 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1;\r\n\t\t\tthis.debug('BP for ' + hp + '/' + maxHP + \" HP: \" + bp);\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tisNonstandard: \"Past\",\r\n\t\tname: \"Wring Out\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {basePower: 190},\r\n\t\tmaxMove: {basePower: 140},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\txscissor: {\r\n\t\tnum: 404,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"X-Scissor\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, slicing: 1},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Bug\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tyawn: {\r\n\t\tnum: 281,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tname: \"Yawn\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, reflectable: 1, mirror: 1},\r\n\t\tvolatileStatus: 'yawn',\r\n\t\tonTryHit(target) {\r\n\t\t\tif (target.status || !target.runStatusImmunity('slp')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tnoCopy: true, // doesn't get copied by Baton Pass\r\n\t\t\tduration: 2,\r\n\t\t\tonStart(target, source) {\r\n\t\t\t\tthis.add('-start', target, 'move: Yawn', '[of] ' + source);\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 23,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'move: Yawn', '[silent]');\r\n\t\t\t\ttarget.trySetStatus('slp', this.effectState.source);\r\n\t\t\t},\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Normal\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Cute\",\r\n\t},\r\n\tzapcannon: {\r\n\t\tnum: 192,\r\n\t\taccuracy: 50,\r\n\t\tbasePower: 120,\r\n\t\tcategory: \"Special\",\r\n\t\tname: \"Zap Cannon\",\r\n\t\tpp: 5,\r\n\t\tpriority: 0,\r\n\t\tflags: {bullet: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tstatus: 'par',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tzenheadbutt: {\r\n\t\tnum: 428,\r\n\t\taccuracy: 90,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Zen Headbutt\",\r\n\t\tpp: 15,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 20,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Psychic\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tzingzap: {\r\n\t\tnum: 716,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tname: \"Zing Zap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 30,\r\n\t\t\tvolatileStatus: 'flinch',\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tzippyzap: {\r\n\t\tnum: 729,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tisNonstandard: \"LGPE\",\r\n\t\tname: \"Zippy Zap\",\r\n\t\tpp: 10,\r\n\t\tpriority: 2,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tself: {\r\n\t\t\t\tboosts: {\r\n\t\t\t\t\tevasion: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n};\r\n"], "mappings": "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", "names": [] }