Spaces:
Paused
Paused
| export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { | |
| allyswitch: { | |
| inherit: true, | |
| // Prevents setting the volatile used to check for Ally Switch failure | |
| onPrepareHit() {}, | |
| }, | |
| anchorshot: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| aromatherapy: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| assist: { | |
| inherit: true, | |
| flags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| auroraveil: { | |
| inherit: true, | |
| onTry() { | |
| return this.field.isWeather('hail'); | |
| }, | |
| }, | |
| autotomize: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| beakblast: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| belch: { | |
| inherit: true, | |
| flags: { protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| blizzard: { | |
| inherit: true, | |
| onModifyMove(move) { | |
| if (this.field.isWeather('hail')) move.accuracy = true; | |
| }, | |
| }, | |
| boltbeak: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| bonemerang: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| burnup: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| celebrate: { | |
| inherit: true, | |
| flags: { nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| charge: { | |
| inherit: true, | |
| condition: { | |
| onStart(pokemon, source, effect) { | |
| this.add('-start', pokemon, 'Charge'); | |
| }, | |
| onRestart(pokemon, source, effect) { | |
| this.add('-start', pokemon, 'Charge'); | |
| }, | |
| onBasePowerPriority: 9, | |
| onBasePower(basePower, attacker, defender, move) { | |
| if (move.type === 'Electric') { | |
| this.debug('charge boost'); | |
| return this.chainModify(2); | |
| } | |
| }, | |
| onMoveAborted(pokemon, target, move) { | |
| if (move.id !== 'charge') { | |
| pokemon.removeVolatile('charge'); | |
| } | |
| }, | |
| onAfterMove(pokemon, target, move) { | |
| if (move.id !== 'charge') { | |
| pokemon.removeVolatile('charge'); | |
| } | |
| }, | |
| onEnd(pokemon) { | |
| this.add('-end', pokemon, 'Charge', '[silent]'); | |
| }, | |
| }, | |
| }, | |
| chatter: { | |
| inherit: true, | |
| flags: { | |
| protect: 1, mirror: 1, sound: 1, distance: 1, bypasssub: 1, | |
| noassist: 1, failcopycat: 1, failinstruct: 1, failmefirst: 1, nosleeptalk: 1, failmimic: 1, nosketch: 1, | |
| }, | |
| }, | |
| copycat: { | |
| inherit: true, | |
| flags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| coreenforcer: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| corrosivegas: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| craftyshield: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| curse: { | |
| inherit: true, | |
| onModifyMove(move, source, target) { | |
| if (!source.hasType('Ghost')) { | |
| move.target = move.nonGhostTarget!; | |
| } | |
| }, | |
| target: "randomNormal", | |
| }, | |
| cut: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| darkvoid: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| flags: { protect: 1, reflectable: 1, mirror: 1, metronome: 1 }, | |
| }, | |
| doubleironbash: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| dragonhammer: { | |
| inherit: true, | |
| flags: { contact: 1, protect: 1, mirror: 1 }, | |
| }, | |
| dualchop: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| electrify: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| eternabeam: { | |
| inherit: true, | |
| flags: { recharge: 1, protect: 1, mirror: 1, failinstruct: 1 }, | |
| isNonstandard: null, | |
| }, | |
| fishiousrend: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| flowershield: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| fly: { | |
| inherit: true, | |
| onTryMove(attacker, defender, move) { | |
| if (attacker.removeVolatile(move.id)) { | |
| return; | |
| } | |
| this.add('-prepare', attacker, move.name); | |
| if (!this.runEvent('ChargeMove', attacker, defender, move)) { | |
| return; | |
| } | |
| // In SwSh, Fly's animation leaks the initial target through a camera focus | |
| // The animation leak target itself isn't "accurate"; the target it reveals is as if Fly weren't a charge movee | |
| // (Fly, like all other charge moves, will actually target slots on its charging turn, relevant for things like Follow Me) | |
| // We use a generic single-target move to represent this | |
| if (this.sides.length > 2) { | |
| const animatedTarget = attacker.getMoveTargets(this.dex.getActiveMove('aerialace'), defender).targets[0]; | |
| if (animatedTarget) { | |
| this.hint(`${move.name}'s animation targeted ${animatedTarget.name}`); | |
| } | |
| } | |
| attacker.addVolatile('twoturnmove', defender); | |
| return null; | |
| }, | |
| }, | |
| futuresight: { | |
| inherit: true, | |
| flags: { metronome: 1, futuremove: 1 }, | |
| }, | |
| geargrind: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| gearup: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| geomancy: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| glaciallance: { | |
| inherit: true, | |
| basePower: 130, | |
| }, | |
| grassyglide: { | |
| inherit: true, | |
| basePower: 70, | |
| }, | |
| grudge: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| hail: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| headcharge: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| heartswap: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| holdback: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| holdhands: { | |
| inherit: true, | |
| isNonstandard: null, | |
| flags: { bypasssub: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| hyperspacefury: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| flags: { mirror: 1, bypasssub: 1 }, | |
| }, | |
| hyperspacehole: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| icehammer: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| judgment: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| kinesis: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| kingsshield: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| landswrath: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| laserfocus: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| leaftornado: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| lovelykiss: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| lusterpurge: { | |
| inherit: true, | |
| basePower: 70, | |
| }, | |
| magiccoat: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| matblock: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxairstream: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxdarkness: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxflare: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxflutterby: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxgeyser: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxguard: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxhailstorm: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxknuckle: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxlightning: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxmindstorm: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxooze: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxovergrowth: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxphantasm: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxquake: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxrockfall: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxstarfall: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxsteelspike: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxstrike: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| maxwyrmwind: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| mefirst: { | |
| inherit: true, | |
| flags: { | |
| protect: 1, bypasssub: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, | |
| }, | |
| }, | |
| meteorassault: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| metronome: { | |
| inherit: true, | |
| flags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| milkdrink: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| mindblown: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| mindreader: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| mirrorcoat: { | |
| inherit: true, | |
| flags: { protect: 1, failmefirst: 1, noassist: 1, failcopycat: 1 }, | |
| }, | |
| mirrormove: { | |
| inherit: true, | |
| flags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| mistball: { | |
| inherit: true, | |
| basePower: 70, | |
| }, | |
| multiattack: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| naturepower: { | |
| inherit: true, | |
| isNonstandard: null, | |
| flags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| naturesmadness: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| oblivionwing: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| obstruct: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| octazooka: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| octolock: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| plasmafists: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| poweruppunch: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| psychoboost: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| psychoshift: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| purify: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| recover: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| relicsong: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| rest: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| revelationdance: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| revenge: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| roost: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| searingshot: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| secretsword: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| seedflare: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| shadowbone: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| shelltrap: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| shoreup: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| sketch: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| skullbash: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| slackoff: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| sleeptalk: { | |
| inherit: true, | |
| flags: { failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1 }, | |
| }, | |
| snaptrap: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| softboiled: { | |
| inherit: true, | |
| pp: 10, | |
| }, | |
| spectralthief: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| stickyweb: { | |
| inherit: true, | |
| condition: { | |
| onSideStart(side) { | |
| this.add('-sidestart', side, 'move: Sticky Web'); | |
| }, | |
| onSwitchIn(pokemon) { | |
| if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return; | |
| this.add('-activate', pokemon, 'move: Sticky Web'); | |
| this.boost({ spe: -1 }, pokemon, this.effectState.source, this.dex.getActiveMove('stickyweb')); | |
| }, | |
| }, | |
| }, | |
| stormthrow: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| submission: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| tailglow: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| technoblast: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| thousandarrows: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| thousandwaves: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| toxicthread: { | |
| inherit: true, | |
| isNonstandard: "Past", | |
| }, | |
| trickortreat: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| vcreate: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| venomdrench: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| vitalthrow: { | |
| inherit: true, | |
| isNonstandard: null, | |
| }, | |
| wickedblow: { | |
| inherit: true, | |
| basePower: 80, | |
| }, | |
| }; | |