Spaces:
Running
Running
{ | |
"version": 3, | |
"sources": ["../../../../data/mods/gen1/moves.ts"], | |
"sourcesContent": ["/**\n * A lot of Gen 1 moves have to be updated due to different mechanics.\n * Some moves have had major changes, such as Bite's typing.\n */\n\nexport const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = {\n\tacid: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 33,\n\t\t\tboosts: {\n\t\t\t\tdef: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t},\n\tamnesia: {\n\t\tinherit: true,\n\t\tboosts: {\n\t\t\tspa: 2,\n\t\t\tspd: 2,\n\t\t},\n\t},\n\taurorabeam: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 33,\n\t\t\tboosts: {\n\t\t\t\tatk: -1,\n\t\t\t},\n\t\t},\n\t},\n\tbide: {\n\t\tinherit: true,\n\t\tpriority: 0,\n\t\taccuracy: true,\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.effectState.damage = 0;\n\t\t\t\tthis.effectState.time = this.random(2, 4);\n\t\t\t\tthis.add('-start', pokemon, 'Bide');\n\t\t\t},\n\t\t\tonBeforeMove(pokemon, t, move) {\n\t\t\t\tconst currentMove = this.dex.getActiveMove('bide');\n\t\t\t\tthis.effectState.damage += this.lastDamage;\n\t\t\t\tthis.effectState.time--;\n\t\t\t\tif (!this.effectState.time) {\n\t\t\t\t\tthis.add('-end', pokemon, currentMove);\n\t\t\t\t\tif (!this.effectState.damage) {\n\t\t\t\t\t\tthis.debug(\"Bide failed because no damage was stored\");\n\t\t\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\t\t\tpokemon.removeVolatile('bide');\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst target = this.getRandomTarget(pokemon, 'Pound');\n\t\t\t\t\tthis.actions.moveHit(target, pokemon, currentMove, { damage: this.effectState.damage * 2 } as ActiveMove);\n\t\t\t\t\tpokemon.removeVolatile('bide');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tthis.add('-activate', pokemon, 'Bide');\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tif (!pokemon.hasMove('bide')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (moveSlot.id !== 'bide') {\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttype: \"???\", // Will look as Normal but it's STAB-less\n\t},\n\tbind: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tself: {\n\t\t\tvolatileStatus: 'partialtrappinglock',\n\t\t},\n\t\tonTryMove(source, target) {\n\t\t\tif (target.volatiles['mustrecharge']) {\n\t\t\t\ttarget.removeVolatile('mustrecharge');\n\t\t\t\tthis.hint(\"In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.\", true);\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\t/**\n\t\t\t * The duration of the partially trapped must be always renewed to 2\n\t\t\t * so target doesn't move on trapper switch out as happens in gen 1.\n\t\t\t * However, this won't happen if there's no switch and the trapper is\n\t\t\t * about to end its partial trapping.\n\t\t\t **/\n\t\t\tif (target.volatiles['partiallytrapped']) {\n\t\t\t\tif (source.volatiles['partialtrappinglock'] && source.volatiles['partialtrappinglock'].duration! > 1) {\n\t\t\t\t\ttarget.volatiles['partiallytrapped'].duration = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\tbite: {\n\t\tinherit: true,\n\t\tcategory: \"Physical\",\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tvolatileStatus: 'flinch',\n\t\t},\n\t\ttype: \"Normal\",\n\t},\n\tblizzard: {\n\t\tinherit: true,\n\t\taccuracy: 90,\n\t\ttarget: \"normal\",\n\t},\n\tbubble: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 33,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t\ttarget: \"normal\",\n\t},\n\tbubblebeam: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 33,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t},\n\tclamp: {\n\t\tinherit: true,\n\t\taccuracy: 75,\n\t\tpp: 10,\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tself: {\n\t\t\tvolatileStatus: 'partialtrappinglock',\n\t\t},\n\t\tonTryMove(source, target) {\n\t\t\tif (target.volatiles['mustrecharge']) {\n\t\t\t\ttarget.removeVolatile('mustrecharge');\n\t\t\t\tthis.hint(\"In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.\", true);\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\t/**\n\t\t\t * The duration of the partially trapped must be always renewed to 2\n\t\t\t * so target doesn't move on trapper switch out as happens in gen 1.\n\t\t\t * However, this won't happen if there's no switch and the trapper is\n\t\t\t * about to end its partial trapping.\n\t\t\t **/\n\t\t\tif (target.volatiles['partiallytrapped']) {\n\t\t\t\tif (source.volatiles['partialtrappinglock'] && source.volatiles['partialtrappinglock'].duration! > 1) {\n\t\t\t\t\ttarget.volatiles['partiallytrapped'].duration = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\tconstrict: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 33,\n\t\t\tboosts: {\n\t\t\t\tspe: -1,\n\t\t\t},\n\t\t},\n\t},\n\tconversion: {\n\t\tinherit: true,\n\t\ttarget: \"normal\",\n\t\tonHit(target, source) {\n\t\t\tsource.setType(target.getTypes(true));\n\t\t\tthis.add('-start', source, 'typechange', source.types.join('/'), '[from] move: Conversion', `[of] ${target}`);\n\t\t},\n\t},\n\tcounter: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\twillCrit: false,\n\t\tbasePower: 1,\n\t\tdamageCallback(pokemon, target) {\n\t\t\t// Counter mechanics in gen 1:\n\t\t\t// - a move is Counterable if it is Normal or Fighting type, has nonzero Base Power, and is not Counter\n\t\t\t// - if Counter is used by the player, it will succeed if the opponent's last used move is Counterable\n\t\t\t// - if Counter is used by the opponent, it will succeed if the player's last selected move is Counterable\n\t\t\t// - (Counter will thus desync if the target's last used move is not as counterable as the target's last selected move)\n\t\t\t// - if Counter succeeds it will deal twice the last move damage dealt in battle (even if it's from a different pokemon because of a switch)\n\n\t\t\tconst lastMove = target.side.lastMove && this.dex.moves.get(target.side.lastMove.id);\n\t\t\tconst lastMoveIsCounterable = lastMove && lastMove.basePower > 0 &&\n\t\t\t\t['Normal', 'Fighting'].includes(lastMove.type) && lastMove.id !== 'counter';\n\n\t\t\tconst lastSelectedMove = target.side.lastSelectedMove && this.dex.moves.get(target.side.lastSelectedMove);\n\t\t\tconst lastSelectedMoveIsCounterable = lastSelectedMove && lastSelectedMove.basePower > 0 &&\n\t\t\t\t['Normal', 'Fighting'].includes(lastSelectedMove.type) && lastSelectedMove.id !== 'counter';\n\n\t\t\tif (!lastMoveIsCounterable && !lastSelectedMoveIsCounterable) {\n\t\t\t\tthis.debug(\"Gen 1 Counter: last move was not Counterable\");\n\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (this.lastDamage <= 0) {\n\t\t\t\tthis.debug(\"Gen 1 Counter: no previous damage exists\");\n\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!lastMoveIsCounterable || !lastSelectedMoveIsCounterable) {\n\t\t\t\tthis.hint(\"Desync Clause Mod activated!\");\n\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn 2 * this.lastDamage;\n\t\t},\n\t\tflags: { contact: 1, protect: 1, metronome: 1 },\n\t},\n\tcrabhammer: {\n\t\tinherit: true,\n\t\tcritRatio: 2,\n\t},\n\tdig: {\n\t\tinherit: true,\n\t\tbasePower: 100,\n\t\tcondition: {},\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile('twoturnmove')) {\n\t\t\t\tattacker.removeVolatile('invulnerability');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\tattacker.addVolatile('invulnerability', defender);\n\t\t\treturn null;\n\t\t},\n\t},\n\tdisable: {\n\t\tnum: 50,\n\t\taccuracy: 55,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Disable\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { protect: 1, mirror: 1, bypasssub: 1, metronome: 1 },\n\t\tvolatileStatus: 'disable',\n\t\tonTryHit(target) {\n\t\t\t// This function should not return if the checks are met. Adding && undefined ensures this happens.\n\t\t\treturn target.moveSlots.some(ms => ms.pp > 0) &&\n\t\t\t\t!('disable' in target.volatiles) &&\n\t\t\t\tundefined;\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\t// disable can only select moves that have pp > 0, hence the onTryHit modification\n\t\t\t\tconst moveSlot = this.sample(pokemon.moveSlots.filter(ms => ms.pp > 0));\n\t\t\t\tthis.add('-start', pokemon, 'Disable', moveSlot.move);\n\t\t\t\tthis.effectState.move = moveSlot.id;\n\t\t\t\t// 1-8 turns (which will in effect translate to 0-7 missed turns for the target)\n\t\t\t\tthis.effectState.time = this.random(1, 9);\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Disable');\n\t\t\t},\n\t\t\tonBeforeMovePriority: 6,\n\t\t\tonBeforeMove(pokemon, target, move) {\n\t\t\t\tpokemon.volatiles['disable'].time--;\n\t\t\t\tif (!pokemon.volatiles['disable'].time) {\n\t\t\t\t\tpokemon.removeVolatile('disable');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (pokemon.volatiles['bide']) move = this.dex.getActiveMove('bide');\n\t\t\t\tif (move.id === this.effectState.move) {\n\t\t\t\t\tthis.add('cant', pokemon, 'Disable', move);\n\t\t\t\t\tpokemon.removeVolatile('twoturnmove');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (moveSlot.id === this.effectState.move) {\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t\ttype: \"Normal\",\n\t},\n\tdizzypunch: {\n\t\tinherit: true,\n\t\tsecondary: null,\n\t},\n\tdoubleedge: {\n\t\tinherit: true,\n\t\tbasePower: 100,\n\t},\n\tdragonrage: {\n\t\tinherit: true,\n\t\tbasePower: 1,\n\t},\n\texplosion: {\n\t\tinherit: true,\n\t\tbasePower: 170,\n\t\ttarget: \"normal\",\n\t},\n\tfireblast: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 30,\n\t\t\tstatus: 'brn',\n\t\t},\n\t},\n\tfirespin: {\n\t\tinherit: true,\n\t\taccuracy: 70,\n\t\tbasePower: 15,\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tself: {\n\t\t\tvolatileStatus: 'partialtrappinglock',\n\t\t},\n\t\tonTryMove(source, target) {\n\t\t\tif (target.volatiles['mustrecharge']) {\n\t\t\t\ttarget.removeVolatile('mustrecharge');\n\t\t\t\tthis.hint(\"In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.\", true);\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\t/**\n\t\t\t * The duration of the partially trapped must be always renewed to 2\n\t\t\t * so target doesn't move on trapper switch out as happens in gen 1.\n\t\t\t * However, this won't happen if there's no switch and the trapper is\n\t\t\t * about to end its partial trapping.\n\t\t\t **/\n\t\t\tif (target.volatiles['partiallytrapped']) {\n\t\t\t\tif (source.volatiles['partialtrappinglock'] && source.volatiles['partialtrappinglock'].duration! > 1) {\n\t\t\t\t\ttarget.volatiles['partiallytrapped'].duration = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\tfly: {\n\t\tinherit: true,\n\t\tcondition: {},\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile('twoturnmove')) {\n\t\t\t\tattacker.removeVolatile('invulnerability');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\tattacker.addVolatile('invulnerability', defender);\n\t\t\treturn null;\n\t\t},\n\t},\n\tfocusenergy: {\n\t\tinherit: true,\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'move: Focus Energy');\n\t\t\t},\n\t\t\t// This does nothing as it's dealt with on critical hit calculation.\n\t\t\tonModifyMove() {},\n\t\t},\n\t},\n\tglare: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t},\n\tgrowth: {\n\t\tinherit: true,\n\t\tboosts: {\n\t\t\tspa: 1,\n\t\t\tspd: 1,\n\t\t},\n\t},\n\tgust: {\n\t\tinherit: true,\n\t\ttype: \"Normal\",\n\t},\n\thaze: {\n\t\tinherit: true,\n\t\tonHit(target, source) {\n\t\t\tthis.add('-activate', target, 'move: Haze');\n\t\t\tthis.add('-clearallboost', '[silent]');\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tpokemon.clearBoosts();\n\t\t\t\tif (pokemon !== source) {\n\t\t\t\t\tpokemon.cureStatus(true);\n\t\t\t\t}\n\t\t\t\tif (pokemon.status === 'tox') {\n\t\t\t\t\tpokemon.setStatus('psn', null, null, true);\n\t\t\t\t}\n\t\t\t\tpokemon.updateSpeed();\n\t\t\t\t// should only clear a specific set of volatiles\n\t\t\t\t// while technically the toxic counter shouldn't be cleared, the preserved toxic counter is never used again\n\t\t\t\t// in-game, so it is equivalent to just clear it.\n\t\t\t\tconst silentHack = '|[silent]';\n\t\t\t\tconst silentHackVolatiles = ['disable', 'confusion'];\n\t\t\t\tconst hazeVolatiles: { [key: string]: string } = {\n\t\t\t\t\t'disable': '',\n\t\t\t\t\t'confusion': '',\n\t\t\t\t\t'mist': 'Mist',\n\t\t\t\t\t'focusenergy': 'move: Focus Energy',\n\t\t\t\t\t'leechseed': 'move: Leech Seed',\n\t\t\t\t\t'lightscreen': 'Light Screen',\n\t\t\t\t\t'reflect': 'Reflect',\n\t\t\t\t\t'residualdmg': 'Toxic counter',\n\t\t\t\t};\n\t\t\t\tfor (const v in hazeVolatiles) {\n\t\t\t\t\tif (!pokemon.removeVolatile(v)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (silentHackVolatiles.includes(v)) {\n\t\t\t\t\t\t// these volatiles have their own onEnd method that prints, so to avoid\n\t\t\t\t\t\t// double printing and ensure they are still silent, we need to tack on a\n\t\t\t\t\t\t// silent attribute at the end\n\t\t\t\t\t\tthis.log[this.log.length - 1] += silentHack;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.add('-end', pokemon, hazeVolatiles[v], '[silent]');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttarget: \"self\",\n\t},\n\thighjumpkick: {\n\t\tinherit: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tthis.directDamage(1, source, target);\n\t\t},\n\t},\n\tjumpkick: {\n\t\tinherit: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tthis.directDamage(1, source, target);\n\t\t},\n\t},\n\tkaratechop: {\n\t\tinherit: true,\n\t\tcritRatio: 2,\n\t\ttype: \"Normal\",\n\t},\n\tleechseed: {\n\t\tinherit: true,\n\t\tonHit() {},\n\t\tcondition: {\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'move: Leech Seed');\n\t\t\t},\n\t\t\tonAfterMoveSelfPriority: 1,\n\t\t\tonAfterMoveSelf(pokemon) {\n\t\t\t\tconst leecher = this.getAtSlot(pokemon.volatiles['leechseed'].sourceSlot);\n\t\t\t\tif (!leecher || leecher.fainted || leecher.hp <= 0) {\n\t\t\t\t\tthis.debug('Nothing to leech into');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// We check if leeched Pok\u00E9mon has Toxic to increase leeched damage.\n\t\t\t\tlet toxicCounter = 1;\n\t\t\t\tconst residualdmg = pokemon.volatiles['residualdmg'];\n\t\t\t\tif (residualdmg) {\n\t\t\t\t\tresidualdmg.counter++;\n\t\t\t\t\ttoxicCounter = residualdmg.counter;\n\t\t\t\t}\n\t\t\t\tconst toLeech = this.clampIntRange(Math.floor(pokemon.baseMaxhp / 16), 1) * toxicCounter;\n\t\t\t\tconst damage = this.damage(toLeech, pokemon, leecher);\n\t\t\t\tif (residualdmg) this.hint(\"In Gen 1, Leech Seed's damage is affected by Toxic's counter.\", true);\n\t\t\t\tif (!damage || toLeech > damage) {\n\t\t\t\t\tthis.hint(\"In Gen 1, Leech Seed recovery is not limited by the remaining HP of the seeded Pokemon.\", true);\n\t\t\t\t}\n\t\t\t\tthis.heal(toLeech, leecher, pokemon);\n\t\t\t},\n\t\t},\n\t},\n\tlightscreen: {\n\t\tnum: 113,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Light Screen\",\n\t\tpp: 30,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tvolatileStatus: 'lightscreen',\n\t\tonTryHit(pokemon) {\n\t\t\tif (pokemon.volatiles['lightscreen']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Light Screen');\n\t\t\t},\n\t\t},\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t},\n\tmimic: {\n\t\tinherit: true,\n\t\tflags: { protect: 1, bypasssub: 1, metronome: 1 },\n\t\tonHit(target, source) {\n\t\t\tconst moveslot = source.moves.indexOf('mimic');\n\t\t\tif (moveslot < 0) return false;\n\t\t\tconst moves = target.moves;\n\t\t\tconst moveid = this.sample(moves);\n\t\t\tif (!moveid) return false;\n\t\t\tconst move = this.dex.moves.get(moveid);\n\t\t\tsource.moveSlots[moveslot] = {\n\t\t\t\tmove: move.name,\n\t\t\t\tid: move.id,\n\t\t\t\tpp: source.moveSlots[moveslot].pp,\n\t\t\t\tmaxpp: move.pp * 8 / 5,\n\t\t\t\ttarget: move.target,\n\t\t\t\tdisabled: false,\n\t\t\t\tused: false,\n\t\t\t\tvirtual: true,\n\t\t\t};\n\t\t\tthis.add('-start', source, 'Mimic', move.name);\n\t\t},\n\t},\n\tmirrormove: {\n\t\tinherit: true,\n\t\tonHit(pokemon) {\n\t\t\tconst foe = pokemon.side.foe.active[0];\n\t\t\tif (!foe?.lastMove || foe.lastMove.id === 'mirrormove') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tpokemon.side.lastSelectedMove = foe.lastMove.id;\n\t\t\tthis.actions.useMove(foe.lastMove.id, pokemon);\n\t\t},\n\t},\n\tmist: {\n\t\tinherit: true,\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Mist');\n\t\t\t},\n\t\t\tonTryBoost(boost, target, source, effect) {\n\t\t\t\tif (effect.effectType === 'Move' && effect.category !== 'Status') return;\n\t\t\t\tif (source && target !== source) {\n\t\t\t\t\tlet showMsg = false;\n\t\t\t\t\tlet i: BoostID;\n\t\t\t\t\tfor (i in boost) {\n\t\t\t\t\t\tif (boost[i]! < 0) {\n\t\t\t\t\t\t\tdelete boost[i];\n\t\t\t\t\t\t\tshowMsg = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (showMsg && !(effect as ActiveMove).secondaries) {\n\t\t\t\t\t\tthis.add('-activate', target, 'move: Mist');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\tnightshade: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\tbasePower: 1,\n\t},\n\tpetaldance: {\n\t\tinherit: true,\n\t\tonMoveFail() {},\n\t},\n\tpoisonsting: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 20,\n\t\t\tstatus: 'psn',\n\t\t},\n\t},\n\tpsychic: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 33,\n\t\t\tboosts: {\n\t\t\t\tspa: -1,\n\t\t\t\tspd: -1,\n\t\t\t},\n\t\t},\n\t},\n\tpsywave: {\n\t\tinherit: true,\n\t\tbasePower: 1,\n\t\tdamageCallback(pokemon) {\n\t\t\tconst psywaveDamage = (this.random(0, this.trunc(1.5 * pokemon.level)));\n\t\t\tif (psywaveDamage <= 0) {\n\t\t\t\tthis.hint(\"Desync Clause Mod activated!\");\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn psywaveDamage;\n\t\t},\n\t},\n\trage: {\n\t\tinherit: true,\n\t\tself: {\n\t\t\tvolatileStatus: 'rage',\n\t\t},\n\t\tcondition: {\n\t\t\t// Rage lock\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tthis.effectState.move = 'rage';\n\t\t\t\tthis.effectState.accuracy = 255;\n\t\t\t},\n\t\t\tonLockMove: 'rage',\n\t\t\tonHit(target, source, move) {\n\t\t\t\t// Disable and exploding moves boost Rage even if they miss/fail, so they are dealt with separately.\n\t\t\t\tif (target.boosts.atk < 6 && (move.category !== 'Status' && !move.selfdestruct)) {\n\t\t\t\t\tthis.boost({ atk: 1 });\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\trazorleaf: {\n\t\tinherit: true,\n\t\tcritRatio: 2,\n\t\ttarget: \"normal\",\n\t},\n\trazorwind: {\n\t\tinherit: true,\n\t\tcritRatio: 1,\n\t\ttarget: \"normal\",\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile('twoturnmove')) {\n\t\t\t\tattacker.removeVolatile('invulnerability');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t},\n\trecover: {\n\t\tinherit: true,\n\t\theal: null,\n\t\tonHit(target) {\n\t\t\tif (target.hp === target.maxhp) return false;\n\t\t\t// Fail when health is 255 or 511 less than max, unless it is divisible by 256\n\t\t\tif (\n\t\t\t\ttarget.hp === target.maxhp ||\n\t\t\t\t((target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) && target.hp % 256 !== 0)\n\t\t\t) {\n\t\t\t\tthis.hint(\n\t\t\t\t\t\"In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256, \" +\n\t\t\t\t\t\"unless the current hp is also divisible by 256.\"\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.heal(Math.floor(target.maxhp / 2), target, target);\n\t\t},\n\t},\n\treflect: {\n\t\tnum: 115,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Reflect\",\n\t\tpp: 20,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tvolatileStatus: 'reflect',\n\t\tonTryHit(pokemon) {\n\t\t\tif (pokemon.volatiles['reflect']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.add('-start', pokemon, 'Reflect');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Psychic\",\n\t},\n\trest: {\n\t\tinherit: true,\n\t\tonTry() {},\n\t\tonHit(target, source, move) {\n\t\t\tif (target.hp === target.maxhp) return false;\n\t\t\t// Fail when health is 255 or 511 less than max, unless it is divisible by 256\n\t\t\tif (\n\t\t\t\ttarget.hp === target.maxhp ||\n\t\t\t\t((target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) && target.hp % 256 !== 0)\n\t\t\t) {\n\t\t\t\tthis.hint(\n\t\t\t\t\t\"In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256, \" +\n\t\t\t\t\t\"unless the current hp is also divisible by 256.\"\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!target.setStatus('slp', source, move)) return false;\n\t\t\ttarget.statusState.time = 2;\n\t\t\ttarget.statusState.startTime = 2;\n\t\t\tthis.heal(target.maxhp); // Aesthetic only as the healing happens after you fall asleep in-game\n\t\t},\n\t},\n\troar: {\n\t\tinherit: true,\n\t\tforceSwitch: false,\n\t\tonTryHit() {},\n\t\tpriority: 0,\n\t},\n\trockslide: {\n\t\tinherit: true,\n\t\tsecondary: null,\n\t\ttarget: \"normal\",\n\t},\n\trockthrow: {\n\t\tinherit: true,\n\t\taccuracy: 65,\n\t},\n\tsandattack: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\ttype: \"Normal\",\n\t},\n\tseismictoss: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\tbasePower: 1,\n\t},\n\tselfdestruct: {\n\t\tinherit: true,\n\t\tbasePower: 130,\n\t\ttarget: \"normal\",\n\t},\n\tskullbash: {\n\t\tinherit: true,\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile('twoturnmove')) {\n\t\t\t\tattacker.removeVolatile('invulnerability');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t},\n\tskyattack: {\n\t\tinherit: true,\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile('twoturnmove')) {\n\t\t\t\tattacker.removeVolatile('invulnerability');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t},\n\tslash: {\n\t\tinherit: true,\n\t\tcritRatio: 2,\n\t},\n\tsludge: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 40,\n\t\t\tstatus: 'psn',\n\t\t},\n\t},\n\tsolarbeam: {\n\t\tinherit: true,\n\t\tonTryMove(attacker, defender, move) {\n\t\t\tif (attacker.removeVolatile('twoturnmove')) {\n\t\t\t\tattacker.removeVolatile('invulnerability');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-prepare', attacker, move.name);\n\t\t\tattacker.addVolatile('twoturnmove', defender);\n\t\t\treturn null;\n\t\t},\n\t},\n\tsonicboom: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\tbasePower: 1,\n\t},\n\tsoftboiled: {\n\t\tinherit: true,\n\t\theal: null,\n\t\tonHit(target) {\n\t\t\tif (target.hp === target.maxhp) return false;\n\t\t\t// Fail when health is 255 or 511 less than max, unless it is divisible by 256\n\t\t\tif (\n\t\t\t\ttarget.hp === target.maxhp ||\n\t\t\t\t((target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) && target.hp % 256 !== 0)\n\t\t\t) {\n\t\t\t\tthis.hint(\n\t\t\t\t\t\"In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256, \" +\n\t\t\t\t\t\"unless the current hp is also divisible by 256.\"\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.heal(Math.floor(target.maxhp / 2), target, target);\n\t\t},\n\t},\n\tstruggle: {\n\t\tinherit: true,\n\t\tpp: 10,\n\t\trecoil: [1, 2],\n\t\tonModifyMove() {},\n\t},\n\tsubstitute: {\n\t\tnum: 164,\n\t\taccuracy: true,\n\t\tbasePower: 0,\n\t\tcategory: \"Status\",\n\t\tname: \"Substitute\",\n\t\tpp: 10,\n\t\tpriority: 0,\n\t\tflags: { metronome: 1 },\n\t\tvolatileStatus: 'substitute',\n\t\tonTryHit(target) {\n\t\t\tif (target.volatiles['substitute']) {\n\t\t\t\tthis.add('-fail', target, 'move: Substitute');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t// We only prevent when hp is less than one quarter.\n\t\t\t// If you use substitute at exactly one quarter, you faint.\n\t\t\tif (target.hp < target.maxhp / 4) {\n\t\t\t\tthis.add('-fail', target, 'move: Substitute', '[weak]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonHit(target) {\n\t\t\t// If max HP is 3 or less substitute makes no damage\n\t\t\tif (target.maxhp > 3) {\n\t\t\t\tthis.directDamage(target.maxhp / 4, target, target);\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'Substitute');\n\t\t\t\tthis.effectState.hp = Math.floor(target.maxhp / 4) + 1;\n\t\t\t\tdelete target.volatiles['partiallytrapped'];\n\t\t\t},\n\t\t\tonTryHitPriority: -1,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (move.category === 'Status') {\n\t\t\t\t\t// In gen 1 it only blocks:\n\t\t\t\t\t// poison, confusion, secondary effect confusion, stat reducing moves and Leech Seed.\n\t\t\t\t\tconst SubBlocked = ['lockon', 'meanlook', 'mindreader', 'nightmare'];\n\t\t\t\t\tif (\n\t\t\t\t\t\tmove.status === 'psn' || move.status === 'tox' || (move.boosts && target !== source) ||\n\t\t\t\t\t\tmove.volatileStatus === 'confusion' || SubBlocked.includes(move.id)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.volatileStatus && target === source) return;\n\t\t\t\t// NOTE: In future generations the damage is capped to the remaining HP of the\n\t\t\t\t// Substitute, here we deliberately use the uncapped damage when tracking lastDamage etc.\n\t\t\t\t// Also, multi-hit moves must always deal the same damage as the first hit for any subsequent hits\n\t\t\t\tlet uncappedDamage = move.hit > 1 ? this.lastDamage : this.actions.getDamage(source, target, move);\n\t\t\t\tif (move.id === 'bide') uncappedDamage = source.volatiles['bide'].damage * 2;\n\t\t\t\tif (!uncappedDamage && uncappedDamage !== 0) return null;\n\t\t\t\tuncappedDamage = this.runEvent('SubDamage', target, source, move, uncappedDamage);\n\t\t\t\tif (!uncappedDamage && uncappedDamage !== 0) return uncappedDamage;\n\t\t\t\tthis.lastDamage = uncappedDamage;\n\t\t\t\ttarget.volatiles['substitute'].hp -= uncappedDamage > target.volatiles['substitute'].hp ?\n\t\t\t\t\ttarget.volatiles['substitute'].hp : uncappedDamage;\n\t\t\t\tif (target.volatiles['substitute'].hp <= 0) {\n\t\t\t\t\ttarget.removeVolatile('substitute');\n\t\t\t\t\ttarget.subFainted = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'Substitute', '[damage]');\n\t\t\t\t}\n\t\t\t\t// Drain/recoil/secondary effect confusion do not happen if the substitute breaks\n\t\t\t\tif (target.volatiles['substitute']) {\n\t\t\t\t\tif (move.recoil) {\n\t\t\t\t\t\tthis.damage(this.clampIntRange(Math.floor(uncappedDamage * move.recoil[0] / move.recoil[1]), 1),\n\t\t\t\t\t\t\tsource, target, 'recoil');\n\t\t\t\t\t}\n\t\t\t\t\tif (move.drain) {\n\t\t\t\t\t\tconst amount = this.clampIntRange(Math.floor(uncappedDamage * move.drain[0] / move.drain[1]), 1);\n\t\t\t\t\t\tthis.lastDamage = amount;\n\t\t\t\t\t\tthis.heal(amount, source, target, 'drain');\n\t\t\t\t\t}\n\t\t\t\t\tif (move.secondary?.volatileStatus === 'confusion') {\n\t\t\t\t\t\tconst secondary = move.secondary;\n\t\t\t\t\t\tif (secondary.chance === undefined || this.randomChance(Math.ceil(secondary.chance * 256 / 100) - 1, 256)) {\n\t\t\t\t\t\t\ttarget.addVolatile(move.secondary.volatileStatus, source, move);\n\t\t\t\t\t\t\tthis.hint(\n\t\t\t\t\t\t\t\t\"In Gen 1, moves that inflict confusion as a secondary effect can confuse targets with a Substitute, \" +\n\t\t\t\t\t\t\t\t\"as long as the move does not break the Substitute.\"\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.runEvent('AfterSubDamage', target, source, move, uncappedDamage);\n\t\t\t\t// Add here counter damage\n\t\t\t\tconst lastAttackedBy = target.getLastAttackedBy();\n\t\t\t\tif (!lastAttackedBy) {\n\t\t\t\t\ttarget.attackedBy.push({ source, move: move.id, damage: uncappedDamage, slot: source.getSlot(), thisTurn: true });\n\t\t\t\t} else {\n\t\t\t\t\tlastAttackedBy.move = move.id;\n\t\t\t\t\tlastAttackedBy.damage = uncappedDamage;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'Substitute');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\tsuperfang: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\tbasePower: 1,\n\t},\n\tthrash: {\n\t\tinherit: true,\n\t\tonMoveFail() {},\n\t},\n\tthunder: {\n\t\tinherit: true,\n\t\tsecondary: {\n\t\t\tchance: 10,\n\t\t\tstatus: 'par',\n\t\t},\n\t},\n\ttriattack: {\n\t\tinherit: true,\n\t\tonHit() {},\n\t\tsecondary: null,\n\t},\n\twhirlwind: {\n\t\tinherit: true,\n\t\taccuracy: 85,\n\t\tforceSwitch: false,\n\t\tonTryHit() {},\n\t\tpriority: 0,\n\t},\n\twingattack: {\n\t\tinherit: true,\n\t\tbasePower: 35,\n\t},\n\twrap: {\n\t\tinherit: true,\n\t\taccuracy: 85,\n\t\tignoreImmunity: true,\n\t\tvolatileStatus: 'partiallytrapped',\n\t\tself: {\n\t\t\tvolatileStatus: 'partialtrappinglock',\n\t\t},\n\t\tonTryMove(source, target) {\n\t\t\tif (target.volatiles['mustrecharge']) {\n\t\t\t\ttarget.removeVolatile('mustrecharge');\n\t\t\t\tthis.hint(\"In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.\", true);\n\t\t\t}\n\t\t},\n\t\tonHit(target, source) {\n\t\t\t/**\n\t\t\t * The duration of the partially trapped must be always renewed to 2\n\t\t\t * so target doesn't move on trapper switch out as happens in gen 1.\n\t\t\t * However, this won't happen if there's no switch and the trapper is\n\t\t\t * about to end its partial trapping.\n\t\t\t **/\n\t\t\tif (target.volatiles['partiallytrapped']) {\n\t\t\t\tif (source.volatiles['partialtrappinglock'] && source.volatiles['partialtrappinglock'].duration! > 1) {\n\t\t\t\t\ttarget.volatiles['partiallytrapped'].duration = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n};\n"], | |
"mappings": "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", | |
"names": [] | |
} | |