{ "version": 3, "sources": ["../../../../../data/mods/gen8joltemons/moves.ts"], "sourcesContent": ["export const Moves: {[k: string]: ModdedMoveData} = {\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\tshortDesc: \"Badly poisons and lowers the target's Speed by 2\",\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: 'tox',\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: \"Poison\",\r\n\t\tzMove: {boost: {spe: 1}},\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tmeltingpoint: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"Replaces the user's Ice-type with Water. 1.5x power when used by Ice-types. Soaks foe.\",\r\n\t\tname: \"Melting Point\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, defrost: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Scald\", target);\r\n\t\t\tthis.add('-anim', source, \"Acid Armor\", target);\r\n\t\t},\r\n\t\tonBasePower(basePower, pokemon, target) {\r\n\t\t\tif (pokemon.hasType('Ice')) {\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\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\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tif (pokemon.hasType('Water')) {\r\n\t\t\t\t\tpokemon.setType(pokemon.getTypes(true).map(type => type === \"Ice\" ? \"???\" : type));\r\n\t\t\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[from] move: Melting Point');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpokemon.setType(pokemon.getTypes(true).map(type => type === \"Ice\" ? \"Water\" : type));\r\n\t\t\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[from] move: Melting Point');\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: \"Clever\",\r\n\t},\r\n\t/*\r\n\treconstruct: {\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"(Bugged) Charges turn 1. Heals 50% and resets lowered stats turn 2.\",\r\n\t\tname: \"Reconstruct\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, heal: 1},\r\n\t\theal: [1, 2],\r\n\t\tbeforeTurnCallback(pokemon) {\r\n\t\t\tpokemon.addVolatile('reconstruct');\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-start', pokemon, 'move: Reconstruct');\r\n\t\t\t},\r\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (move.category === 'Special' || move.category === 'Physical') {\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\tonTryMove(attacker, defender, move) {\r\n\t\t\t\tif (attacker.removeVolatile(move.id)) return;\r\n\t\t\t\tthis.add('-prepare', attacker, move.name);\r\n\t\t\t\tif (!this.runEvent('ChargeMove', attacker, defender, move)) return;\r\n\t\t\t\tattacker.addVolatile('twoturnmove', defender);\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t},\r\n\t\tonAfterMove(pokemon) {\r\n\t\t\tpokemon.removeVolatile('reconstruct');\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tconst boosts: SparseBoostsTable = {};\r\n\t\t\t\tlet i: BoostName;\r\n\t\t\t\tfor (i in pokemon.boosts) {\r\n\t\t\t\t\tif (pokemon.boosts[i] < 0) {\r\n\t\t\t\t\t\tboosts[i] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpokemon.setBoost(boosts);\r\n\t\t\t\tthis.add('-clearnegativeboost', pokemon, '[silent]');\r\n\t\t\t\tthis.add('-message', pokemon.name + \"'s negative stat changes were removed!\");\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},\r\n\treconstruct: {\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"Charges turn 1. Heals 50% and resets lowered stats turn 2.\",\r\n\t\tname: \"Reconstruct\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {charge: 1, heal: 1},\r\n\t\theal: [1, 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\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tconst boosts: SparseBoostsTable = {};\r\n\t\t\t\tlet i: BoostName;\r\n\t\t\t\tfor (i in pokemon.boosts) {\r\n\t\t\t\t\tif (pokemon.boosts[i] < 0) {\r\n\t\t\t\t\t\tboosts[i] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpokemon.setBoost(boosts);\r\n\t\t\t\tthis.add('-clearnegativeboost', pokemon, '[silent]');\r\n\t\t\t\tthis.add('-message', pokemon.name + \"'s negative stat changes were removed!\");\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},\r\n\t*/\r\n\treconstruct: {\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"Charges turn 1. Heals 50% and resets lowered stats turn 2.\",\r\n\t\tname: \"Reconstruct\",\r\n\t\tpp: 10,\r\n\t\tpriority: 5,\r\n\t\tflags: {charge: 1, heal: 1},\r\n\t\tvolatileStatus: 'reconstruct',\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Recover\", target);\r\n\t\t},\r\n\t\tbeforeMoveCallback(pokemon) {\r\n\t\t\tif (pokemon.volatiles['reconstruct']) return true;\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tduration: 2,\r\n\t\t\tonLockMove: 'reconstruct',\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: Reconstruct');\r\n\t\t\t},\r\n\t\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\t\tif (move.category === 'Special' || move.category === 'Physical') {\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\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: Reconstruct');\r\n\t\t\t\t\tconst moveData: Partial = {\r\n\t\t\t\t\t\tid: 'reconstruct' as ID,\r\n\t\t\t\t\t\tname: \"Reconstruct\",\r\n\t\t\t\t\t\taccuracy: true,\r\n\t\t\t\t\t\tcategory: \"Status\",\r\n\t\t\t\t\t\tpriority: 0,\r\n\t\t\t\t\t\tflags: {charge: 1, heal: 1},\r\n\t\t\t\t\t\theal: [1, 2],\r\n\t\t\t\t\t\teffectType: 'Move',\r\n\t\t\t\t\t\ttype: 'Steel',\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\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.add('-activate', pokemon, 'move: Reconstruct');\r\n\t\t\t},\r\n\t\t\tonMoveAborted(pokemon) {\r\n\t\t\t\tpokemon.removeVolatile('reconstruct');\r\n\t\t\t},\r\n\t\t\tonEnd(pokemon) {\r\n\t\t\t\tthis.add('-end', pokemon, 'move: Reconstruct', '[silent]');\r\n\t\t\t},\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon) {\r\n\t\t\t\tconst boosts: SparseBoostsTable = {};\r\n\t\t\t\tlet i: BoostID;\r\n\t\t\t\tfor (i in pokemon.boosts) {\r\n\t\t\t\t\tif (pokemon.boosts[i] < 0) {\r\n\t\t\t\t\t\tboosts[i] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpokemon.setBoost(boosts);\r\n\t\t\t\tthis.add('-clearnegativeboost', pokemon, '[silent]');\r\n\t\t\t\tthis.add('-message', pokemon.name + \"'s negative stat changes were removed!\");\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\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\tshortDesc: \"10% chance to lower the foe's SpD. Never misses if the user moves last.\",\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\tonModifyMove(move, source, target) {\r\n\t\t\tif (target && (target.newlySwitched || !this.queue.willMove(target))) move.accuracy = true;\r\n\t\t},\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\t/*\r\n\taridabsorption: {\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"(Placeholder, Currently a Life Dew clone)\",\r\n\t\tname: \"Arid Absorption\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Shore Up\", target);\r\n\t\t},\r\n\t\theal: [1, 4],\r\n\t\tsecondary: null,\r\n\t\ttarget: \"self\",\r\n\t\ttype: \"Ground\",\r\n\t},\r\n*/\r\n\taridabsorption: {\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"Heals by 33% of its max HP +33% and +1 Atk for every active Water-type.\",\r\n\t\tname: \"Arid Absorption\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {snatch: 1, heal: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Shore Up\", target);\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tonHit(pokemon, source, move) {\r\n\t\t\t\tthis.heal(source.baseMaxhp / 3, source, pokemon);\r\n\t\t\t},\r\n\t\t},\r\n\t\tonHitField(target, source) {\r\n\t\t\tif (target.hasType('Water')) {\r\n\t\t\t\tthis.heal(source.baseMaxhp / 3, source, target);\r\n\t\t\t\tthis.boost({atk: 1}, source);\r\n\t\t\t}\r\n\t\t\tif (source.hasType('Water')) {\r\n\t\t\t\tthis.heal(source.baseMaxhp / 3, source, target);\r\n\t\t\t\tthis.boost({atk: 1}, source);\r\n\t\t\t\tthis.damage(source.baseMaxhp / 3, source, target);\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},\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\tshortDesc: \"Raises Atk/Def of grounded Grass types by 1, sets Grassy Terrain.\",\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\tthis.field.setTerrain('grassyterrain');\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, def: 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\tarmthrust: {\r\n\t\tnum: 292,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 25,\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, punch: 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\tcounterspell: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"Uses target's SpA stat in damage calculation. -1 priority.\",\r\n\t\tname: \"Counterspell\",\r\n\t\tpp: 15,\r\n\t\tpriority: -1,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Psybeam\", target);\r\n\t\t},\r\n\t\toverrideOffensivePokemon: 'target',\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\tlightninglance: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 110,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Lowers the user's Attack and Sp. Def by 1.\",\r\n\t\tname: \"Lightning Lance\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1, defrost: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Charge\", target);\r\n\t\t\tthis.add('-anim', source, \"Sacred Sword\", target);\r\n\t\t},\r\n\t\tself: {\r\n\t\t\tboosts: {\r\n\t\t\t\tatk: -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: \"Electric\",\r\n\t\tcontestType: \"Cool\",\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\tshortDesc: \"Heals the user by 50% of its max HP; 66% in Rain.\",\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\tonHit(pokemon) {\r\n\t\t\tlet factor = 0.5;\r\n\t\t\tif (this.field.isWeather('raindance')) {\r\n\t\t\t\tfactor = 0.667;\r\n\t\t\t}\r\n\t\t\treturn !!this.heal(this.modify(pokemon.maxhp, factor));\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"allies\",\r\n\t\ttype: \"Water\",\r\n\t},\r\n\ttrashtalk: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"Prevents the target from using status moves for 1 turn.\",\r\n\t\tname: \"Trash Talk\",\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\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Confide\", target);\r\n\t\t\tthis.add('-anim', source, \"Gunk Shot\", target);\r\n\t\t},\r\n\t\tvolatileStatus: 'trashtalk',\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: Trash Talk');\r\n\t\t\t},\r\n\t\t\tonResidualOrder: 12,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'move: Trash Talk');\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: Trash Talk', 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: \"Poison\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tdeafeningshriek: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 100,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"Target becomes immune to sound moves after being hit.\",\r\n\t\tname: \"Deafening Shriek\",\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\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Hyper Voice\", target);\r\n\t\t\tthis.add('-anim', source, \"Boomburst\", target);\r\n\t\t},\r\n\t\tvolatileStatus: 'deafeningshriek',\r\n\t\tcondition: {\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'move: Deafening Shriek');\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.target !== 'self' && move.flags['sound']) {\r\n\t\t\t\t\tthis.add('-immune', target, '[from] move: Deafening Shriek');\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\ttarget: \"normal\",\r\n\t\ttype: \"Ghost\",\r\n\t\tcontestType: \"Cool\",\r\n\t},\r\n\tenchantedpunch: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\toverrideDefensiveStat: 'spd',\r\n\t\tshortDesc: \"Damages target based on Sp. Def, not Defense.\",\r\n\t\tname: \"Enchanted Punch\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, contact: 1, punch: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Meteor Mash\", target);\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\telectroball: {\r\n\t\tnum: 486,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 80,\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\toverrideOffensiveStat: 'spe',\r\n\t\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Electric\",\r\n\t\tcontestType: \"Clever\",\r\n\t\tshortDesc: \"Uses user's Spe stat as SpA in damage calculation.\",\r\n\t},\r\n\tfirepunch: {\r\n\t\tnum: 7,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\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\ticepunch: {\r\n\t\tnum: 8,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\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\tthunderpunch: {\r\n\t\tnum: 9,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\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\tskyuppercut: {\r\n\t\tnum: 327,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 70,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Hits Flying-types super effectively. Can hit Pokemon using Bounce, Fly, or Sky Drop.\",\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\tonEffectiveness(typeMod, target, type) {\r\n\t\t\tif (type === 'Flying') return 1;\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\tcrushclaw: {\r\n\t\tinherit: true,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 20,\r\n\t\tshortDesc: \"Hits twice. Lowers the target's Def after each hit.\",\r\n\t\tpp: 20,\r\n\t\tmultihit: 2,\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\ttype: \"Dark\",\r\n\t\tmaxMove: {basePower: 100},\r\n\t},\r\n\tpoisondart: {\r\n\t\taccuracy: true,\r\n\t\tbasePower: 40,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Usually goes first. 10% chance to poison foe.\",\r\n\t\tname: \"Poison Dart\",\r\n\t\tpp: 30,\r\n\t\tpriority: 1,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Poison Sting\", target);\r\n\t\t},\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: \"Cool\",\r\n\t},\r\n\tacidicfists: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Destroys screens, unless the target is immune. 10% poison chance.\",\r\n\t\tname: \"Acidic Fists\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {punch: 1, contact: 1, protect: 1, mirror: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Poison Jab\", target);\r\n\t\t\tthis.add('-anim', source, \"Corrosive Gas\", target);\r\n\t\t},\r\n\t\tonTryHit(pokemon) {\r\n\t\t\t// will shatter screens through sub, before you hit\r\n\t\t\tif (pokemon.runImmunity('Poison')) {\r\n\t\t\t\tpokemon.side.removeSideCondition('reflect');\r\n\t\t\t\tpokemon.side.removeSideCondition('lightscreen');\r\n\t\t\t\tpokemon.side.removeSideCondition('auroraveil');\r\n\t\t\t}\r\n\t\t},\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: \"Cool\",\r\n\t},\r\n\tmudspike: {\r\n\t\tnum: 398,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"10% poison chance, 30% if the user is a Poison-type\",\r\n\t\tname: \"Mud Spike\",\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\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Muddy Water\", target);\r\n\t\t\tthis.add('-anim', source, \"Corrosive Gas\", target);\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (!pokemon.hasType('Poison')) return;\r\n\t\t\tif (!move.secondaries) move.secondaries = [];\r\n\t\t\tmove.secondaries = move.secondaries.filter(s => s.chance !== 10 && s.status !== 'psn');\r\n\t\t\tmove.secondaries.push({\r\n\t\t\t\tchance: 30,\r\n\t\t\t\tstatus: 'psn',\r\n\t\t\t});\r\n\t\t},\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: \"Ground\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tbonemerang: {\r\n\t\tnum: 155,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"(Bugged) First hit has +1 priority, second hit has -1 priority.\",\r\n\t\tname: \"Bonemerang\",\r\n\t\tpp: 10,\r\n\t\tpriority: 1,\r\n\t\tflags: {protect: 1, mirror: 1},\r\n\t\tonModifyMove(move) {\r\n\t\t\tif (move.hit !== 1) move.priority = -1;\r\n\t\t},\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\trashpowder: {\r\n\t\taccuracy: 75,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"Burns the target.\",\r\n\t\tname: \"Rash Powder\",\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\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Spore\", target);\r\n\t\t},\r\n\t\tstatus: 'brn',\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: \"Clever\",\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 (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\tshortDesc: \"Power doubles if the user moves last or the foe switches.\",\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\trevenge: {\r\n\t\tnum: 279,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (this.queue.willMove(target)) {\r\n\t\t\t\tthis.debug('Revenge NOT boosted');\r\n\t\t\t\treturn move.basePower;\r\n\t\t\t}\r\n\t\t\tthis.debug('Revenge damage boost');\r\n\t\t\treturn move.basePower * 2;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Power doubles if the user moves last or the foe switches.\",\r\n\t\tname: \"Revenge\",\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: \"Fighting\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tavalanche: {\r\n\t\tnum: 419,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 50,\r\n\t\tbasePowerCallback(pokemon, target, move) {\r\n\t\t\tif (this.queue.willMove(target)) {\r\n\t\t\t\tthis.debug('Avalanche NOT boosted');\r\n\t\t\t\treturn move.basePower;\r\n\t\t\t}\r\n\t\t\tthis.debug('Avalanche damage boost');\r\n\t\t\treturn move.basePower * 2;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Power doubles if the user moves last or the foe switches.\",\r\n\t\tname: \"Avalanche\",\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: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\ttechnoblast: {\r\n\t\tnum: 546,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 90,\r\n\t\tonBasePower(basePower, source) {\r\n\t\t\tif (source.hasItem(['burndrive', 'dousedrive', 'chilldrive', 'shockdrive'])) {\r\n\t\t\t\treturn this.chainModify(1.2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"Type varies based on the held Drive. 1.2x power when holding a Drive.\",\r\n\t\tname: \"Techno Blast\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, pulse: 1, bullet: 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\taggravate: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"If the target is statused, applies Taunt.\",\r\n\t\tname: \"Aggravate\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Power Trip\", target);\r\n\t\t},\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.status) {\r\n\t\t\t\t\treturn !!target.addVolatile('taunt');\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\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\tcurse: {\r\n\t\tnum: 174,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 0,\r\n\t\tcategory: \"Status\",\r\n\t\tshortDesc: \"Curses if Ghost, else -1 Spe, +2 Atk, +1 Def.\",\r\n\t\tname: \"Curse\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {},\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}\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\tmove.self = {boosts: {spe: -1, atk: 2, def: 1}};\r\n\t\t\t} else if ((move.volatileStatus && target.volatiles['curse']) || target.hasType(['Normal', 'Ghost']) ||\r\n\t\t\t\ttarget.volatiles['protect'] || target.volatiles['spikyshield'] || target.volatiles['banefulbunker']) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tonStart(target) {\r\n\t\t\t\tthis.add('-start', target, 'move: Curse');\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.effectState.source.side.active[pokemon.volatiles['curse'].sourcePosition];\r\n\t\t\t\tif (!target || target.fainted || target.hp <= 0) {\r\n\t\t\t\t\tthis.debug('Nothing to curse');\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('Normal') || !target.hasType('Ghost'));\r\n\t\t},\r\n\t\tsecondary: null,\r\n\t\ttarget: \"randomNormal\",\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\toctazooka: {\r\n\t\tnum: 190,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"100% chance to lower the target's Evasion by 1.\",\r\n\t\tname: \"Octazooka\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, pulse: 1, bullet: 1},\r\n\t\tsecondary: {\r\n\t\t\tchance: 100,\r\n\t\t\tboosts: {\r\n\t\t\t\tevasion: -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\tsignalbeam: {\r\n\t\tnum: 324,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"100% chance to lower the target's Speed by 1.\",\r\n\t\tname: \"Signal 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: 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: \"Tough\",\r\n\t},\r\n\taurorabeam: {\r\n\t\tnum: 62,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"100% chance to lower the target's Attack by 1.\",\r\n\t\tname: \"Aurora 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: 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: \"Ice\",\r\n\t\tcontestType: \"Tough\",\r\n\t},\r\n\tvenoshock: {\r\n\t\tnum: 474,\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')) return move.basePower * 2;\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"Power doubles if the target has a status ailment.\",\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\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Poison\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tattackorder: {\r\n\t\tnum: 454,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 75,\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: \"Physical\",\r\n\t\tshortDesc: \"Power doubles if the target has a status ailment.\",\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\tsecondary: null,\r\n\t\ttarget: \"normal\",\r\n\t\ttype: \"Flying\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tsmother: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 65,\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('Smother damage boost');\r\n\t\t\t\treturn move.basePower * 1.5;\r\n\t\t\t}\r\n\t\t\tthis.debug('Smother NOT boosted');\r\n\t\t\treturn move.basePower;\r\n\t\t},\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"The target must move last next turn. 1.5x if the user moves first.\",\r\n\t\tname: \"Smother\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {contact: 1, protect: 1, mirror: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Wrap\", target);\r\n\t\t},\r\n\t\tonHit(target, source) {\r\n\t\t\ttarget.addVolatile('smother', source);\r\n\t\t},\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, 'Smother', '[silent]');\r\n\t\t\t},\r\n\t\t\tonFractionalPriority: -0.1,\r\n\t\t\tonResidualOrder: 22,\r\n\t\t\tonEnd(target) {\r\n\t\t\t\tthis.add('-end', target, 'Smother', '[silent]');\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\tfierydance: {\r\n\t\tnum: 552,\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\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\tsnowmanjazz: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"50% chance to raise the user's Sp. Atk by 1.\",\r\n\t\tname: \"Snowman Jazz\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, dance: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Quiver Dance\", target);\r\n\t\t\tthis.add('-anim', source, \"Ice Beam\", target);\r\n\t\t},\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: \"Ice\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tmoonlitwaltz: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"50% chance to raise the user's Sp. Atk by 1.\",\r\n\t\tname: \"Moonlit Waltz\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, dance: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Quiver Dance\", target);\r\n\t\t\tthis.add('-anim', source, \"Dark Pulse\", target);\r\n\t\t},\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: \"Dark\",\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: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"50% chance to raise the user's Sp. Atk by 1.\",\r\n\t\tname: \"Petal 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: \"Grass\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tskysoiree: {\r\n\t\taccuracy: 100,\r\n\t\tbasePower: 85,\r\n\t\tcategory: \"Special\",\r\n\t\tshortDesc: \"50% chance to raise the user's Sp. Atk by 1.\",\r\n\t\tname: \"Sky Soiree\",\r\n\t\tpp: 10,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, dance: 1},\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Quiver Dance\", target);\r\n\t\t\tthis.add('-anim', source, \"Gust\", target);\r\n\t\t},\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: \"Flying\",\r\n\t\tcontestType: \"Beautiful\",\r\n\t},\r\n\tshadowpunch: {\r\n\t\tnum: 325,\r\n\t\taccuracy: true,\r\n\t\tbasePower: 80,\r\n\t\tcategory: \"Physical\",\r\n\t\tshortDesc: \"Ignores burn, screens, and Substitute.\",\r\n\t\tname: \"Shadow Punch\",\r\n\t\tpp: 20,\r\n\t\tpriority: 0,\r\n\t\tflags: {protect: 1, mirror: 1, punch: 1},\r\n\t\tonBasePower(basePower, pokemon) {\r\n\t\t\tif (pokemon.status === 'brn') {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tinfiltrates: true,\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\tbouncybubble: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Bubble\", target);\r\n\t\t},\r\n\t},\r\n\tbuzzybuzz: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Discharge\", target);\r\n\t\t},\r\n\t},\r\n\tsizzlyslide: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Flame Charge\", target);\r\n\t\t},\r\n\t},\r\n\tglitzyglow: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Psychic\", target);\r\n\t\t},\r\n\t},\r\n\tbaddybad: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Photon Geyser\", target);\r\n\t\t},\r\n\t},\r\n\tfreezyfrost: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Blizzard\", target);\r\n\t\t},\r\n\t},\r\n\tsappyseed: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Horn Leech\", target);\r\n\t\t},\r\n\t},\r\n\tsparklyswirl: {\r\n\t\tinherit: true,\r\n\t\tisNonstandard: null,\r\n\t\tonPrepareHit(target, source, move) {\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\tthis.add('-anim', source, \"Dazzling Gleam\", target);\r\n\t\t},\r\n\t},\r\n\t// stuff that needs to be edited because of other stuff\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},\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\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\tif (item.id === 'boomerang') {\r\n\t\t\t\tsource.removeVolatile('fling');\r\n\t\t\t}\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\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 && item.id !== 'boomerang') {\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\tif (item.id === 'boomerang') {\r\n\t\t\t\t\t\tthis.add('-item', target, this.dex.items.get(item), '[from] item: Boomerang');\r\n\t\t\t\t\t\ttarget.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: \"normal\",\r\n\t\ttype: \"Dark\",\r\n\t\tcontestType: \"Clever\",\r\n\t},\r\n\tstealthrock: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\t// this is a side condition\r\n\t\t\tonStart(side) {\r\n\t\t\t\tthis.add('-sidestart', side, 'move: Stealth Rock');\r\n\t\t\t},\r\n\t\t\tonSwitchIn(pokemon) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tpokemon.hasItem('heavydutyboots') || pokemon.hasItem('coalengine')\r\n\t\t\t\t) 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},\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', effect);\r\n\t\t\t\t\treturn 7;\r\n\t\t\t\t} else if (source && source.hasItem('ironball')) {\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\tonStart() {\r\n\t\t\t\tthis.add('-fieldstart', 'move: Gravity');\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 accuracy * 5 / 3;\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']) {\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\tonResidualOrder: 22,\r\n\t\t\tonEnd() {\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\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\tif (pokemon.hp && pokemon.removeVolatile('curse')) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Curse', '[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\tif (pokemon.hp && pokemon.removeVolatile('curse')) {\r\n\t\t\t\tthis.add('-end', pokemon, 'Curse', '[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};\r\n"], "mappings": "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", "names": [] }