diff --git a/data/abilities.ts b/data/abilities.ts index 437408f24d..dc19d3ac5a 100644 --- a/data/abilities.ts +++ b/data/abilities.ts @@ -34,15 +34,12 @@ Ratings and how they work: export const Abilities: {[abilityid: string]: AbilityData} = { noability: { - shortDesc: "Does nothing.", isNonstandard: "Past", name: "No Ability", rating: 0.1, num: 0, }, adaptability: { - desc: "This Pokemon's moves that match one of its types have a same-type attack bonus (STAB) of 2 instead of 1.5.", - shortDesc: "This Pokemon's same-type attack bonus (STAB) is 2 instead of 1.5.", onModifyMove(move) { move.stab = 2; }, @@ -51,8 +48,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 91, }, aerilate: { - desc: "This Pokemon's Normal-type moves become Flying-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Flying type and have 1.2x power.", onModifyTypePriority: -1, onModifyType(move, pokemon) { const noModifyType = [ @@ -72,8 +67,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 185, }, aftermath: { - desc: "If this Pokemon is knocked out with a contact move, that move's user loses 1/4 of its maximum HP, rounded down. If any active Pokemon has the Damp Ability, this effect is prevented.", - shortDesc: "If this Pokemon is KOed with a contact move, that move's user loses 1/4 its max HP.", name: "Aftermath", onDamagingHitOrder: 1, onDamagingHit(damage, target, source, move) { @@ -85,7 +78,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 106, }, airlock: { - shortDesc: "While this Pokemon is active, the effects of weather conditions are disabled.", onStart(pokemon) { this.add('-ability', pokemon, 'Air Lock'); }, @@ -95,8 +87,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 76, }, analytic: { - desc: "The power of this Pokemon's move is multiplied by 1.3 if it is the last to move in a turn. Does not affect Doom Desire and Future Sight.", - shortDesc: "This Pokemon's attacks have 1.3x power if it is the last to move in a turn.", onBasePowerPriority: 21, onBasePower(basePower, pokemon) { let boosted = true; @@ -117,8 +107,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 148, }, angerpoint: { - desc: "If this Pokemon, but not its substitute, is struck by a critical hit, its Attack is raised by 12 stages.", - shortDesc: "If this Pokemon (not its substitute) takes a critical hit, its Attack is raised 12 stages.", onHit(target, source, move) { if (!target.hp) return; if (move?.effectType === 'Move' && target.getMoveHitData(move).crit) { @@ -131,8 +119,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 83, }, anticipation: { - desc: "On switch-in, this Pokemon is alerted if any opposing Pokemon has an attack that is super effective on this Pokemon, or an OHKO move. Counter, Metal Burst, and Mirror Coat count as attacking moves of their respective types, Hidden Power counts as its determined type, and Judgment, Multi-Attack, Natural Gift, Revelation Dance, Techno Blast, and Weather Ball are considered Normal-type moves.", - shortDesc: "On switch-in, this Pokemon shudders if any foe has a supereffective or OHKO move.", onStart(pokemon) { for (const target of pokemon.side.foe.active) { if (!target || target.fainted) continue; @@ -155,8 +141,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 107, }, arenatrap: { - desc: "Prevents adjacent opposing Pokemon from choosing to switch out unless they are immune to trapping or are airborne.", - shortDesc: "Prevents adjacent foes from choosing to switch unless they are airborne.", onFoeTrapPokemon(pokemon) { if (!this.isAdjacent(pokemon, this.effectData.target)) return; if (pokemon.isGrounded()) { @@ -175,8 +159,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 71, }, aromaveil: { - desc: "This Pokemon and its allies cannot be affected by Attract, Disable, Encore, Heal Block, Taunt, or Torment.", - shortDesc: "Protects user/allies from Attract, Disable, Encore, Heal Block, Taunt, and Torment.", onAllyTryAddVolatile(status, target, source, effect) { if (['attract', 'disable', 'encore', 'healblock', 'taunt', 'torment'].includes(status.id)) { if (effect.effectType === 'Move') { @@ -191,8 +173,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 165, }, aurabreak: { - desc: "While this Pokemon is active, the effects of the Dark Aura and Fairy Aura Abilities are reversed, multiplying the power of Dark- and Fairy-type moves, respectively, by 3/4 instead of 1.33.", - shortDesc: "While this Pokemon is active, the Dark Aura and Fairy Aura power modifier is 0.75x.", onStart(pokemon) { this.add('-ability', pokemon, 'Aura Break'); }, @@ -205,8 +185,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 188, }, baddreams: { - desc: "Causes adjacent opposing Pokemon to lose 1/8 of their maximum HP, rounded down, at the end of each turn if they are asleep.", - shortDesc: "Causes sleeping adjacent foes to lose 1/8 of their max HP at the end of each turn.", onResidualOrder: 26, onResidualSubOrder: 1, onResidual(pokemon) { @@ -223,13 +201,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 123, }, ballfetch: { - shortDesc: "No competitive use.", name: "Ball Fetch", rating: 0, num: 237, }, battery: { - shortDesc: "This Pokemon's allies have the power of their special attacks multiplied by 1.3.", onAllyBasePowerPriority: 22, onAllyBasePower(basePower, attacker, defender, move) { if (attacker !== this.effectData.target && move.category === 'Special') { @@ -242,15 +218,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 217, }, battlearmor: { - shortDesc: "This Pokemon cannot be struck by a critical hit.", onCriticalHit: false, name: "Battle Armor", rating: 1, num: 4, }, battlebond: { - desc: "If this Pokemon is a Greninja, it transforms into Ash-Greninja after knocking out a Pokemon. As Ash-Greninja, its Water Shuriken has 20 base power and always hits 3 times.", - shortDesc: "After KOing a Pokemon: becomes Ash-Greninja, Water Shuriken: 20 power, hits 3x.", onSourceAfterFaint(length, target, source, effect) { if (effect?.effectType !== 'Move') { return; @@ -271,8 +244,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 210, }, beastboost: { - desc: "This Pokemon's highest stat is raised by 1 stage if it attacks and knocks out another Pokemon.", - shortDesc: "This Pokemon's highest stat is raised by 1 if it attacks and KOes another Pokemon.", onSourceAfterFaint(length, target, source, effect) { if (effect && effect.effectType === 'Move') { let statName = 'atk'; @@ -292,8 +263,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 224, }, berserk: { - desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage from an attack bringing it to 1/2 or less of its maximum HP, its Special Attack is raised by 1 stage. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect.", - shortDesc: "This Pokemon's Sp. Atk is raised by 1 when it reaches 1/2 or less of its max HP.", onAfterMoveSecondary(target, source, move) { if (!source || source === target || !target.hp || !move.totalDamage) return; const lastAttackedBy = target.getLastAttackedBy(); @@ -308,7 +277,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 201, }, bigpecks: { - shortDesc: "Prevents other Pokemon from lowering this Pokemon's Defense stat stage.", onBoost(boost, target, source, effect) { if (source && target === source) return; if (boost.def && boost.def < 0) { @@ -323,8 +291,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 145, }, blaze: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Fire-type attack.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Fire attacks.", onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender, move) { if (move.type === 'Fire' && attacker.hp <= attacker.maxhp / 3) { @@ -344,8 +310,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 66, }, bulletproof: { - desc: "This Pokemon is immune to ballistic moves. Ballistic moves include Bullet Seed, Octazooka, Barrage, Rock Wrecker, Zap Cannon, Acid Spray, Aura Sphere, Focus Blast, and all moves with Ball or Bomb in their name.", - shortDesc: "Makes user immune to ballistic moves (Shadow Ball, Sludge Bomb, Focus Blast, etc).", onTryHit(pokemon, target, move) { if (move.flags['bullet']) { this.add('-immune', pokemon, '[from] ability: Bulletproof'); @@ -357,8 +321,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 171, }, cheekpouch: { - desc: "If this Pokemon eats a Berry, it restores 1/3 of its maximum HP, rounded down, in addition to the Berry's effect.", - shortDesc: "If this Pokemon eats a Berry, it restores 1/3 of its max HP after the Berry's effect.", onEatItem(item, pokemon) { this.heal(pokemon.baseMaxhp / 3); }, @@ -367,8 +329,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 167, }, chlorophyll: { - desc: "If Sunny Day is active and this Pokemon is not holding Utility Umbrella, this Pokemon's Speed is doubled.", - shortDesc: "If Sunny Day is active, this Pokemon's Speed is doubled.", onModifySpe(spe, pokemon) { if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) { return this.chainModify(2); @@ -379,7 +339,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 34, }, clearbody: { - shortDesc: "Prevents other Pokemon from lowering this Pokemon's stat stages.", onBoost(boost, target, source, effect) { if (source && target === source) return; let showMsg = false; @@ -399,7 +358,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 29, }, cloudnine: { - shortDesc: "While this Pokemon is active, the effects of weather conditions are disabled.", onStart(pokemon) { this.add('-ability', pokemon, 'Cloud Nine'); }, @@ -409,8 +367,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 13, }, colorchange: { - desc: "This Pokemon's type changes to match the type of the last move that hit it, unless that type is already one of its types. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect.", - shortDesc: "This Pokemon's type changes to the type of a move it's hit by, unless it has the type.", onAfterMoveSecondary(target, source, move) { if (!target.hp) return; const type = move.type; @@ -435,8 +391,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 16, }, comatose: { - desc: "This Pokemon cannot be statused, and is considered to be asleep. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", - shortDesc: "This Pokemon cannot be statused, and is considered to be asleep.", onStart(pokemon) { this.add('-ability', pokemon, 'Comatose'); }, @@ -453,8 +407,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 213, }, competitive: { - desc: "This Pokemon's Special Attack is raised by 2 stages for each of its stat stages that is lowered by an opposing Pokemon.", - shortDesc: "This Pokemon's Sp. Atk is raised by 2 for each of its stats that is lowered by a foe.", onAfterEachBoost(boost, target, source, effect) { if (!source || target.side === source.side) { if (effect.id === 'stickyweb') { @@ -479,7 +431,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 172, }, compoundeyes: { - shortDesc: "This Pokemon's moves have their accuracy multiplied by 1.3.", onSourceModifyAccuracyPriority: 9, onSourceModifyAccuracy(accuracy) { if (typeof accuracy !== 'number') return; @@ -491,8 +442,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 14, }, contrary: { - desc: "If this Pokemon has a stat stage raised it is lowered instead, and vice versa. This Ability does not affect stat stage increases received from Z-Power effects that happen before a Z-Move is used.", - shortDesc: "If this Pokemon has a stat stage raised it is lowered instead, and vice versa.", onBoost(boost, target, source, effect) { if (effect && effect.id === 'zpower') return; let i: BoostName; @@ -505,15 +454,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 126, }, corrosion: { - shortDesc: "This Pokemon can poison or badly poison other Pokemon regardless of their typing.", // Implemented in sim/pokemon.js:Pokemon#setStatus name: "Corrosion", rating: 2.5, num: 212, }, cottondown: { - desc: "When this Pokemon is hit by an attack, the Speed of all other Pokemon on the field is lowered by 1 stage.", - shortDesc: "If this Pokemon is hit, it lowers the Speed of all other Pokemon on the field 1 stage.", onDamagingHit(damage, target, source, move) { let activated = false; for (const pokemon of this.getAllActive()) { @@ -530,8 +476,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 238, }, cursedbody: { - desc: "If this Pokemon is hit by an attack, there is a 30% chance that move gets disabled unless one of the attacker's moves is already disabled.", - shortDesc: "If this Pokemon is hit by an attack, there is a 30% chance that move gets disabled.", onDamagingHit(damage, target, source, move) { if (source.volatiles['disable']) return; if (!move.isFutureMove) { @@ -545,8 +489,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 130, }, cutecharm: { - desc: "There is a 30% chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender.", - shortDesc: "30% chance of infatuating Pokemon of the opposite gender if they make contact.", onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -559,8 +501,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 56, }, damp: { - desc: "While this Pokemon is active, Explosion, Mind Blown, Misty Explosion, Self-Destruct, and the Aftermath Ability are prevented from having an effect.", - shortDesc: "Prevents Explosion/Mind Blown/Misty Explosion/Self-Destruct/Aftermath while active.", onAnyTryMove(target, source, effect) { if (['explosion', 'mindblown', 'mistyexplosion', 'selfdestruct'].includes(effect.id)) { this.attrLastMove('[still]'); @@ -578,16 +518,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 6, }, dancer: { - desc: "After another Pokemon uses a dance move, this Pokemon uses the same move. Moves used by this Ability cannot be copied again.", - shortDesc: "After another Pokemon uses a dance move, this Pokemon uses the same move.", name: "Dancer", // implemented in runMove in scripts.js rating: 1.5, num: 216, }, darkaura: { - desc: "While this Pokemon is active, the power of Dark-type moves used by active Pokemon is multiplied by 1.33.", - shortDesc: "While this Pokemon is active, a Dark move used by any Pokemon has 1.33x power.", onStart(pokemon) { this.add('-ability', pokemon, 'Dark Aura'); }, @@ -604,7 +540,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 186, }, dauntlessshield: { - shortDesc: "On switch-in, this Pokemon's Defense is raised by 1 stage.", onStart(pokemon) { this.boost({def: 1}, pokemon); }, @@ -613,8 +548,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 235, }, dazzling: { - desc: "While this Pokemon is active, priority moves from opposing Pokemon targeted at allies are prevented from having an effect.", - shortDesc: "While this Pokemon is active, allies are protected from opposing priority moves.", onFoeTryMove(target, source, move) { const targetAllExceptions = ['perishsong', 'flowershield', 'rototiller']; if (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) { @@ -633,8 +566,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 219, }, defeatist: { - desc: "While this Pokemon has 1/2 or less of its maximum HP, its Attack and Special Attack are halved.", - shortDesc: "While this Pokemon has 1/2 or less of its max HP, its Attack and Sp. Atk are halved.", onModifyAtkPriority: 5, onModifyAtk(atk, pokemon) { if (pokemon.hp <= pokemon.maxhp / 2) { @@ -652,8 +583,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 129, }, defiant: { - desc: "This Pokemon's Attack is raised by 2 stages for each of its stat stages that is lowered by an opposing Pokemon.", - shortDesc: "This Pokemon's Attack is raised by 2 for each of its stats that is lowered by a foe.", onAfterEachBoost(boost, target, source, effect) { if (!source || target.side === source.side) { if (effect.id === 'stickyweb') { @@ -678,8 +607,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 128, }, deltastream: { - desc: "On switch-in, the weather becomes strong winds that remove the weaknesses of the Flying type from Flying-type Pokemon. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Desolate Land or Primordial Sea.", - shortDesc: "On switch-in, strong winds begin until this Ability is not active in battle.", onStart(source) { this.field.setWeather('deltastream'); }, @@ -703,8 +630,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 191, }, desolateland: { - desc: "On switch-in, the weather becomes extremely harsh sunlight that prevents damaging Water-type moves from executing, in addition to all the effects of Sunny Day. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Delta Stream or Primordial Sea.", - shortDesc: "On switch-in, extremely harsh sunlight begins until this Ability is not active in battle.", onStart(source) { this.field.setWeather('desolateland'); }, @@ -728,8 +653,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 190, }, disguise: { - desc: "If this Pokemon is a Mimikyu, the first hit it takes in battle deals 0 neutral damage. Its disguise is then broken, it changes to Busted Form, and it loses 1/8 of its max HP. Confusion damage also breaks the disguise.", - shortDesc: "(Mimikyu only) The first hit it takes is blocked, and it takes 1/8 HP damage instead.", onDamagePriority: 1, onDamage(damage, target, source, effect) { if ( @@ -775,8 +698,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 209, }, download: { - desc: "On switch-in, this Pokemon's Attack or Special Attack is raised by 1 stage based on the weaker combined defensive stat of all opposing Pokemon. Attack is raised if their Defense is lower, and Special Attack is raised if their Special Defense is the same or lower.", - shortDesc: "On switch-in, Attack or Sp. Atk is raised 1 stage based on the foes' weaker Defense.", onStart(pokemon) { let totaldef = 0; let totalspd = 0; @@ -796,7 +717,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 88, }, drizzle: { - shortDesc: "On switch-in, this Pokemon summons Rain Dance.", onStart(source) { for (const action of this.queue) { if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'kyogre') return; @@ -809,7 +729,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 2, }, drought: { - shortDesc: "On switch-in, this Pokemon summons Sunny Day.", onStart(source) { for (const action of this.queue) { if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'groudon') return; @@ -822,8 +741,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 70, }, dryskin: { - desc: "This Pokemon is immune to Water-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Water-type move. The power of Fire-type moves is multiplied by 1.25 when used on this Pokemon. At the end of each turn, this Pokemon restores 1/8 of its maximum HP, rounded down, if the weather is Rain Dance, and loses 1/8 of its maximum HP, rounded down, if the weather is Sunny Day. If this Pokemon is holding Utility Umbrella, the effects of weather are nullified.", - shortDesc: "This Pokemon is healed 1/4 by Water, 1/8 by Rain; is hurt 1.25x by Fire, 1/8 by Sun.", onTryHit(target, source, move) { if (target !== source && move.type === 'Water') { if (!this.heal(target.baseMaxhp / 4)) { @@ -852,15 +769,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 87, }, earlybird: { - shortDesc: "This Pokemon's sleep counter drops by 2 instead of 1.", name: "Early Bird", // Implemented in statuses.js rating: 1.5, num: 48, }, effectspore: { - desc: "30% chance a Pokemon making contact with this Pokemon will be poisoned, paralyzed, or fall asleep.", - shortDesc: "30% chance of poison/paralysis/sleep on others making contact with this Pokemon.", onDamagingHit(damage, target, source, move) { if (move.flags['contact'] && !source.status && source.runStatusImmunity('powder')) { const r = this.random(100); @@ -878,7 +792,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 27, }, electricsurge: { - shortDesc: "On switch-in, this Pokemon summons Electric Terrain.", onStart(source) { this.field.setTerrain('electricterrain'); }, @@ -887,8 +800,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 226, }, emergencyexit: { - desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage bringing it to 1/2 or less of its maximum HP, it immediately switches out to a chosen ally. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect. This effect applies to both direct and indirect damage, except Curse and Substitute on use, Belly Drum, Pain Split, and confusion damage.", - shortDesc: "This Pokemon switches out when it reaches 1/2 or less of its maximum HP.", onEmergencyExit(target) { if (!this.canSwitch(target.side) || target.forceSwitchFlag || target.switchFlag) return; for (const side of this.sides) { @@ -904,8 +815,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 194, }, fairyaura: { - desc: "While this Pokemon is active, the power of Fairy-type moves used by active Pokemon is multiplied by 1.33.", - shortDesc: "While this Pokemon is active, a Fairy move used by any Pokemon has 1.33x power.", onStart(pokemon) { this.add('-ability', pokemon, 'Fairy Aura'); }, @@ -922,7 +831,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 187, }, filter: { - shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks.", onSourceModifyDamage(damage, source, target, move) { if (target.getMoveHitData(move).typeMod > 0) { this.debug('Filter neutralize'); @@ -934,7 +842,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 111, }, flamebody: { - shortDesc: "30% chance a Pokemon making contact with this Pokemon will be burned.", onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -947,8 +854,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 49, }, flareboost: { - desc: "While this Pokemon is burned, the power of its special attacks is multiplied by 1.5.", - shortDesc: "While this Pokemon is burned, its special attacks have 1.5x power.", onBasePowerPriority: 19, onBasePower(basePower, attacker, defender, move) { if (attacker.status === 'brn' && move.category === 'Special') { @@ -960,8 +865,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 138, }, flashfire: { - desc: "This Pokemon is immune to Fire-type moves. The first time it is hit by a Fire-type move, its attacking stat is multiplied by 1.5 while using a Fire-type attack as long as it remains active and has this Ability. If this Pokemon is frozen, it cannot be defrosted by Fire-type attacks.", - shortDesc: "This Pokemon's Fire attacks do 1.5x damage if hit by one Fire move; Fire immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Fire') { move.accuracy = true; @@ -1002,8 +905,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 18, }, flowergift: { - desc: "If this Pokemon is a Cherrim and Sunny Day is active, it changes to Sunshine Form and the Attack and Special Defense of it and its allies are multiplied by 1.5. If this Pokemon is a Cherrim and it is holding Utility Umbrella, it remains in its regular form and the Attack and Special Defense stats of it and its allies are not boosted. If this Pokemon is a Cherrim in its Sunshine form and is given Utility Umbrella, it will immediately switch back to its regular form. If this Pokemon is a Cherrim holding Utility Umbrella and its item is removed while Sunny Day is active, it will transform into its Sunshine Form. If an ally is holding Utility Umbrella while Cherrim is in its Sunshine Form, they will not receive the Attack and Special Defense boosts.", - shortDesc: "If user is Cherrim and Sunny Day is active, it and allies' Attack and Sp. Def are 1.5x.", onStart(pokemon) { delete this.effectData.forme; }, @@ -1038,8 +939,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 122, }, flowerveil: { - desc: "Grass-type Pokemon on this Pokemon's side cannot have their stat stages lowered by other Pokemon or have a major status condition inflicted on them by other Pokemon.", - shortDesc: "This side's Grass types can't have stats lowered or status inflicted by other Pokemon.", onAllyBoost(boost, target, source, effect) { if ((source && target === source) || !target.hasType('Grass')) return; let showMsg = false; @@ -1078,8 +977,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 166, }, fluffy: { - desc: "This Pokemon receives 1/2 damage from contact moves, but double damage from Fire moves.", - shortDesc: "This Pokemon takes 1/2 damage from contact moves, 2x damage from Fire moves.", onSourceModifyDamage(damage, source, target, move) { let mod = 1; if (move.type === 'Fire') mod *= 2; @@ -1091,8 +988,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 218, }, forecast: { - desc: "If this Pokemon is a Castform, its type changes to the current weather condition's type, except Sandstorm. If this Pokemon is holding Utility Umbrella and the weather condition is Sunny Day, Desolate Land, Rain Dance, or Primordial Sea, it will not change types.", - shortDesc: "Castform's type changes to the current weather condition's type, except Sandstorm.", onUpdate(pokemon) { if (pokemon.baseSpecies.baseSpecies !== 'Castform' || pokemon.transformed) return; let forme = null; @@ -1121,8 +1016,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 59, }, forewarn: { - desc: "On switch-in, this Pokemon is alerted to the move with the highest power, at random, known by an opposing Pokemon.", - shortDesc: "On switch-in, this Pokemon is alerted to the foes' move with the highest power.", onStart(pokemon) { let warnMoves: (Move | Pokemon)[][] = []; let warnBp = 1; @@ -1152,7 +1045,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 108, }, friendguard: { - shortDesc: "This Pokemon's allies receive 3/4 damage from other Pokemon's attacks.", name: "Friend Guard", onAnyModifyDamage(damage, source, target, move) { if (target !== this.effectData.target && target.side === this.effectData.target.side) { @@ -1164,7 +1056,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 132, }, frisk: { - shortDesc: "On switch-in, this Pokemon identifies the held items of all opposing Pokemon.", onStart(pokemon) { for (const target of pokemon.side.foe.active) { if (!target || target.fainted) continue; @@ -1178,8 +1069,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 119, }, fullmetalbody: { - desc: "Prevents other Pokemon from lowering this Pokemon's stat stages. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", - shortDesc: "Prevents other Pokemon from lowering this Pokemon's stat stages.", onBoost(boost, target, source, effect) { if (source && target === source) return; let showMsg = false; @@ -1200,7 +1089,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 230, }, furcoat: { - shortDesc: "This Pokemon's Defense is doubled.", onModifyDefPriority: 6, onModifyDef(def) { return this.chainModify(2); @@ -1210,7 +1098,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 169, }, galewings: { - shortDesc: "If this Pokemon is at full HP, its Flying-type moves have their priority increased by 1.", onModifyPriority(priority, pokemon, target, move) { if (move?.type === 'Flying' && pokemon.hp === pokemon.maxhp) return priority + 1; }, @@ -1219,8 +1106,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 177, }, galvanize: { - desc: "This Pokemon's Normal-type moves become Electric-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Electric type and have 1.2x power.", onModifyTypePriority: -1, onModifyType(move, pokemon) { const noModifyType = [ @@ -1240,13 +1125,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 206, }, gluttony: { - shortDesc: "When this Pokemon has 1/2 or less of its maximum HP, it uses certain Berries early.", name: "Gluttony", rating: 1.5, num: 82, }, gooey: { - shortDesc: "Pokemon making contact with this Pokemon have their Speed lowered by 1 stage.", onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { this.add('-ability', target, 'Gooey'); @@ -1258,7 +1141,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 183, }, gorillatactics: { - shortDesc: "This Pokemon's Attack is 1.5x, but it can only select the first move it executes.", onStart(pokemon) { pokemon.abilityData.choiceLock = ""; }, @@ -1301,7 +1183,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 255, }, grasspelt: { - shortDesc: "If Grassy Terrain is active, this Pokemon's Defense is multiplied by 1.5.", onModifyDefPriority: 6, onModifyDef(pokemon) { if (this.field.isTerrain('grassyterrain')) return this.chainModify(1.5); @@ -1311,7 +1192,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 179, }, grassysurge: { - shortDesc: "On switch-in, this Pokemon summons Grassy Terrain.", onStart(source) { this.field.setTerrain('grassyterrain'); }, @@ -1320,8 +1200,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 229, }, gulpmissile: { - desc: "If this Pokemon is a Cramorant, it changes forme when it hits a target with Surf or uses the first turn of Dive successfully. It becomes Gulping Form with an Arrokuda in its mouth if it has more than 1/2 of its maximum HP remaining, or Gorging Form with a Pikachu in its mouth if it has 1/2 or less of its maximum HP remaining. If Cramorant gets hit in Gulping or Gorging Form, it spits the Arrokuda or Pikachu at its attacker, even if it has no HP remaining. The projectile deals damage equal to 1/4 of the target's maximum HP, rounded down; this damage is blocked by the Magic Guard Ability but not by a substitute. An Arrokuda also lowers the target's Defense by 1 stage, and a Pikachu paralyzes the target. Cramorant will return to normal if it spits out a projectile, switches out, or Dynamaxes.", - shortDesc: "When hit after Surf/Dive, attacker takes 1/4 max HP and -1 Defense or paralysis.", onDamagingHit(damage, target, source, move) { if (target.transformed || target.isSemiInvulnerable()) return; if (['cramorantgulping', 'cramorantgorging'].includes(target.species.id)) { @@ -1358,8 +1236,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 241, }, guts: { - desc: "If this Pokemon has a major status condition, its Attack is multiplied by 1.5; burn's physical damage halving is ignored.", - shortDesc: "If this Pokemon is statused, its Attack is 1.5x; ignores burn halving physical damage.", onModifyAtkPriority: 5, onModifyAtk(atk, pokemon) { if (pokemon.status) { @@ -1371,8 +1247,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 62, }, harvest: { - desc: "If the last item this Pokemon used is a Berry, there is a 50% chance it gets restored at the end of each turn. If Sunny Day is active, this chance is 100%.", - shortDesc: "If last item used is a Berry, 50% chance to restore it each end of turn. 100% in Sun.", name: "Harvest", onResidualOrder: 26, onResidualSubOrder: 1, @@ -1389,8 +1263,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 139, }, healer: { - desc: "There is a 30% chance of curing an adjacent ally's major status condition at the end of each turn.", - shortDesc: "30% chance of curing an adjacent ally's status at the end of each turn.", name: "Healer", onResidualOrder: 5, onResidualSubOrder: 4, @@ -1412,8 +1284,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 131, }, heatproof: { - desc: "The power of Fire-type attacks against this Pokemon is halved, and burn damage taken is halved.", - shortDesc: "The power of Fire-type attacks against this Pokemon is halved; burn damage halved.", onSourceBasePowerPriority: 18, onSourceBasePower(basePower, attacker, defender, move) { if (move.type === 'Fire') { @@ -1430,7 +1300,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 85, }, heavymetal: { - shortDesc: "This Pokemon's weight is doubled.", onModifyWeightPriority: 1, onModifyWeight(weighthg) { return weighthg * 2; @@ -1440,13 +1309,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 134, }, honeygather: { - shortDesc: "No competitive use.", name: "Honey Gather", rating: 0, num: 118, }, hugepower: { - shortDesc: "This Pokemon's Attack is doubled.", onModifyAtkPriority: 5, onModifyAtk(atk) { return this.chainModify(2); @@ -1456,7 +1323,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 37, }, hungerswitch: { - shortDesc: "If Morpeko, it changes between Full Belly and Hangry Mode at the end of each turn.", onResidual(pokemon) { if (pokemon.species.baseSpecies !== 'Morpeko' || pokemon.transformed) return; const targetForme = pokemon.species.name === 'Morpeko' ? 'Morpeko-Hangry' : 'Morpeko'; @@ -1467,8 +1333,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 258, }, hustle: { - desc: "This Pokemon's Attack is multiplied by 1.5 and the accuracy of its physical attacks is multiplied by 0.8.", - shortDesc: "This Pokemon's Attack is 1.5x and accuracy of its physical attacks is 0.8x.", // This should be applied directly to the stat as opposed to chaining with the others onModifyAtkPriority: 5, onModifyAtk(atk) { @@ -1485,8 +1349,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 55, }, hydration: { - desc: "This Pokemon has its major status condition cured at the end of each turn if Rain Dance is active. If this Pokemon is holding Utility Umbrella, its major status condition will not be cured.", - shortDesc: "This Pokemon has its status cured at the end of each turn if Rain Dance is active.", onResidualOrder: 5, onResidualSubOrder: 4, onResidual(pokemon) { @@ -1501,7 +1363,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 93, }, hypercutter: { - shortDesc: "Prevents other Pokemon from lowering this Pokemon's Attack stat stage.", onBoost(boost, target, source, effect) { if (source && target === source) return; if (boost.atk && boost.atk < 0) { @@ -1516,8 +1377,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 52, }, icebody: { - desc: "If Hail is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn. This Pokemon takes no damage from Hail.", - shortDesc: "If Hail is active, this Pokemon heals 1/16 of its max HP each turn; immunity to Hail.", onWeather(target, source, effect) { if (effect.id === 'hail') { this.heal(target.baseMaxhp / 16); @@ -1531,8 +1390,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 115, }, iceface: { - desc: "If this Pokemon is an Eiscue, the first physical hit it takes in battle deals 0 neutral damage. Its ice face is then broken and it changes forme to Noice Face. Eiscue regains its Ice Face forme when Hail begins or when Eiscue switches in while Hail is active. Confusion damage also breaks the ice face.", - shortDesc: "If Eiscue, the first physical hit it takes deals 0 damage. This effect is restored in Hail.", onStart(pokemon) { if (this.field.isWeather('hail') && pokemon.species.id === 'eiscuenoice' && !pokemon.transformed) { this.add('-activate', pokemon, 'ability: Ice Face'); @@ -1583,7 +1440,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 248, }, icescales: { - shortDesc: "This Pokemon receives 1/2 damage from special attacks.", onSourceModifyDamage(damage, source, target, move) { if (move.category === 'Special') { return this.chainModify(0.5); @@ -1594,14 +1450,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 246, }, illuminate: { - shortDesc: "No competitive use.", name: "Illuminate", rating: 0, num: 35, }, illusion: { - desc: "When this Pokemon switches in, it appears as the last unfainted Pokemon in its party until it takes direct damage from another Pokemon's attack. This Pokemon's actual level and HP are displayed instead of those of the mimicked Pokemon.", - shortDesc: "This Pokemon appears as the last Pokemon in the party until it takes direct damage.", onBeforeSwitchIn(pokemon) { pokemon.illusion = null; let i; @@ -1637,7 +1490,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 149, }, immunity: { - shortDesc: "This Pokemon cannot be poisoned. Gaining this Ability while poisoned cures it.", onUpdate(pokemon) { if (pokemon.status === 'psn' || pokemon.status === 'tox') { this.add('-activate', pokemon, 'ability: Immunity'); @@ -1656,8 +1508,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 17, }, imposter: { - desc: "On switch-in, this Pokemon Transforms into the opposing Pokemon that is facing it. If there is no Pokemon at that position, this Pokemon does not Transform.", - shortDesc: "On switch-in, this Pokemon Transforms into the opposing Pokemon that is facing it.", onSwitchIn(pokemon) { this.effectData.switchingIn = true; }, @@ -1675,8 +1525,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 150, }, infiltrator: { - desc: "This Pokemon's moves ignore substitutes and the opposing side's Reflect, Light Screen, Safeguard, Mist and Aurora Veil.", - shortDesc: "Moves ignore substitutes and foe's Reflect/Light Screen/Safeguard/Mist/Aurora Veil.", onModifyMove(move) { move.infiltrates = true; }, @@ -1685,8 +1533,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 151, }, innardsout: { - desc: "If this Pokemon is knocked out with a move, that move's user loses HP equal to the amount of damage inflicted on this Pokemon.", - shortDesc: "If this Pokemon is KOed with a move, that move's user loses an equal amount of HP.", name: "Innards Out", onDamagingHitOrder: 1, onDamagingHit(damage, target, source, move) { @@ -1698,7 +1544,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 215, }, innerfocus: { - shortDesc: "This Pokemon cannot be made to flinch. Immune to Intimidate.", onTryAddVolatile(status, pokemon) { if (status.id === 'flinch') return null; }, @@ -1713,7 +1558,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 39, }, insomnia: { - shortDesc: "This Pokemon cannot fall asleep. Gaining this Ability while asleep cures it.", onUpdate(pokemon) { if (pokemon.status === 'slp') { this.add('-activate', pokemon, 'ability: Insomnia'); @@ -1732,8 +1576,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 15, }, intimidate: { - desc: "On switch-in, this Pokemon lowers the Attack of adjacent opposing Pokemon by 1 stage. Inner Focus, Oblivious, Own Tempo, Scrappy, and Pokemon behind a substitute are immune.", - shortDesc: "On switch-in, this Pokemon lowers the Attack of adjacent opponents by 1 stage.", onStart(pokemon) { let activated = false; for (const target of pokemon.side.foe.active) { @@ -1754,7 +1596,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 22, }, intrepidsword: { - shortDesc: "On switch-in, this Pokemon's Attack is raised by 1 stage.", onStart(pokemon) { this.boost({atk: 1}, pokemon); }, @@ -1763,8 +1604,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 234, }, ironbarbs: { - desc: "Pokemon making contact with this Pokemon lose 1/8 of their maximum HP, rounded down.", - shortDesc: "Pokemon making contact with this Pokemon lose 1/8 of their max HP.", onDamagingHitOrder: 1, onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { @@ -1776,8 +1615,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 160, }, ironfist: { - desc: "This Pokemon's punch-based attacks have their power multiplied by 1.2.", - shortDesc: "This Pokemon's punch-based attacks have 1.2x power. Sucker Punch is not boosted.", onBasePowerPriority: 23, onBasePower(basePower, attacker, defender, move) { if (move.flags['punch']) { @@ -1790,7 +1627,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 89, }, justified: { - shortDesc: "This Pokemon's Attack is raised by 1 stage after it is damaged by a Dark-type move.", onDamagingHit(damage, target, source, move) { if (move.type === 'Dark') { this.boost({atk: 1}); @@ -1801,8 +1637,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 154, }, keeneye: { - desc: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage. This Pokemon ignores a target's evasiveness stat stage.", - shortDesc: "This Pokemon's accuracy can't be lowered by others; ignores their evasiveness stat.", onBoost(boost, target, source, effect) { if (source && target === source) return; if (boost.accuracy && boost.accuracy < 0) { @@ -1820,16 +1654,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 51, }, klutz: { - desc: "This Pokemon's held item has no effect. This Pokemon cannot use Fling successfully. Macho Brace, Power Anklet, Power Band, Power Belt, Power Bracer, Power Lens, and Power Weight still have their effects.", - shortDesc: "This Pokemon's held item has no effect, except Macho Brace. Fling cannot be used.", // Item suppression implemented in Pokemon.ignoringItem() within sim/pokemon.js name: "Klutz", rating: -1, num: 103, }, leafguard: { - desc: "If Sunny Day is active and this Pokemon is not holding Utility Umbrella, this Pokemon cannot gain a major status condition and Rest will fail for it.", - shortDesc: "If Sunny Day is active, this Pokemon cannot be statused and Rest will fail for it.", onSetStatus(status, target, source, effect) { if (['sunnyday', 'desolateland'].includes(target.effectiveWeather())) { if ((effect as Move)?.status) { @@ -1849,16 +1679,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 102, }, levitate: { - desc: "This Pokemon is immune to Ground. Gravity, Ingrain, Smack Down, Thousand Arrows, and Iron Ball nullify the immunity.", - shortDesc: "This Pokemon is immune to Ground; Gravity/Ingrain/Smack Down/Iron Ball nullify it.", // airborneness implemented in sim/pokemon.js:Pokemon#isGrounded name: "Levitate", rating: 3.5, num: 26, }, libero: { - desc: "This Pokemon's type changes to match the type of the move it is about to use. This effect comes after all effects that change a move's type.", - shortDesc: "This Pokemon's type changes to match the type of the move it is about to use.", onPrepareHit(source, target, move) { if (move.hasBounced) return; const type = move.type; @@ -1872,7 +1698,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 236, }, lightmetal: { - shortDesc: "This Pokemon's weight is halved.", onModifyWeight(weighthg) { return this.trunc(weighthg / 2); }, @@ -1881,8 +1706,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 135, }, lightningrod: { - desc: "This Pokemon is immune to Electric-type moves and raises its Special Attack by 1 stage when hit by an Electric-type move. If this Pokemon is not the target of a single-target Electric-type move used by another Pokemon, this Pokemon redirects that move to itself if it is within the range of that move.", - shortDesc: "This Pokemon draws Electric moves to itself to raise Sp. Atk by 1; Electric immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Electric') { if (!this.boost({spa: 1})) { @@ -1907,7 +1730,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 31, }, limber: { - shortDesc: "This Pokemon cannot be paralyzed. Gaining this Ability while paralyzed cures it.", onUpdate(pokemon) { if (pokemon.status === 'par') { this.add('-activate', pokemon, 'ability: Limber'); @@ -1926,7 +1748,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 7, }, liquidooze: { - shortDesc: "This Pokemon damages those draining HP from it for as much as they would heal.", onSourceTryHeal(damage, target, source, effect) { this.debug("Heal is occurring: " + target + " <- " + source + " :: " + effect.id); const canOoze = ['drain', 'leechseed', 'strengthsap']; @@ -1940,8 +1761,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 64, }, liquidvoice: { - desc: "This Pokemon's sound-based moves become Water-type moves. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's sound-based moves become Water type.", onModifyTypePriority: -1, onModifyType(move, pokemon) { if (move.flags['sound'] && !pokemon.volatiles['dynamax']) { // hardcode @@ -1953,7 +1772,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 204, }, longreach: { - shortDesc: "This Pokemon's attacks do not make contact with the target.", onModifyMove(move) { delete move.flags['contact']; }, @@ -1962,8 +1780,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 203, }, magicbounce: { - desc: "This Pokemon blocks certain status moves and instead uses the move against the original user.", - shortDesc: "This Pokemon blocks certain status moves and bounces them back to the user.", name: "Magic Bounce", onTryHitPriority: 1, onTryHit(target, source, move) { @@ -1993,8 +1809,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 156, }, magicguard: { - desc: "This Pokemon can only be damaged by direct attacks. Curse and Substitute on use, Belly Drum, Pain Split, Struggle recoil, and confusion damage are considered direct damage.", - shortDesc: "This Pokemon can only be damaged by direct attacks.", onDamage(damage, target, source, effect) { if (effect.effectType !== 'Move') { if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); @@ -2006,8 +1820,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 98, }, magician: { - desc: "If this Pokemon has no item, it steals the item off a Pokemon it hits with an attack. Does not affect Doom Desire and Future Sight.", - shortDesc: "If this Pokemon has no item, it steals the item off a Pokemon it hits with an attack.", onSourceHit(target, source, move) { if (!move || !target) return; if (target !== source && move.category !== 'Status') { @@ -2026,7 +1838,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 170, }, magmaarmor: { - shortDesc: "This Pokemon cannot be frozen. Gaining this Ability while frozen cures it.", onUpdate(pokemon) { if (pokemon.status === 'frz') { this.add('-activate', pokemon, 'ability: Magma Armor'); @@ -2041,8 +1852,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 40, }, magnetpull: { - desc: "Prevents adjacent opposing Steel-type Pokemon from choosing to switch out unless they are immune to trapping.", - shortDesc: "Prevents adjacent Steel-type foes from choosing to switch.", onFoeTrapPokemon(pokemon) { if (pokemon.hasType('Steel') && this.isAdjacent(pokemon, this.effectData.target)) { pokemon.tryTrap(true); @@ -2060,8 +1869,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 42, }, marvelscale: { - desc: "If this Pokemon has a major status condition, its Defense is multiplied by 1.5.", - shortDesc: "If this Pokemon is statused, its Defense is 1.5x.", onModifyDefPriority: 6, onModifyDef(def, pokemon) { if (pokemon.status) { @@ -2073,8 +1880,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 63, }, megalauncher: { - desc: "This Pokemon's pulse moves have their power multiplied by 1.5. Heal Pulse restores 3/4 of a target's maximum HP, rounded half down.", - shortDesc: "This Pokemon's pulse moves have 1.5x power. Heal Pulse heals 3/4 target's max HP.", onBasePowerPriority: 19, onBasePower(basePower, attacker, defender, move) { if (move.flags['pulse']) { @@ -2086,7 +1891,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 178, }, merciless: { - shortDesc: "This Pokemon's attacks are critical hits if the target is poisoned.", onModifyCritRatio(critRatio, source, target) { if (target && ['psn', 'tox'].includes(target.status)) return 5; }, @@ -2095,7 +1899,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 196, }, mimicry: { - shortDesc: "This Pokemon's type changes to match the Terrain. Type reverts when Terrain ends.", onStart(pokemon) { if (this.field.terrain) { pokemon.addVolatile('mimicry'); @@ -2149,8 +1952,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 250, }, minus: { - desc: "If an active ally has this Ability or the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", - shortDesc: "If an active ally has this Ability or the Plus Ability, this Pokemon's Sp. Atk is 1.5x.", onModifySpAPriority: 5, onModifySpA(spa, pokemon) { if (pokemon.side.active.length === 1) { @@ -2170,8 +1971,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 58, }, mirrorarmor: { - desc: "When one of this Pokemon's stat stages would be lowered by another Pokemon, that Pokemon's stat stage is lowered instead. This effect does not happen if this Pokemon's stat stage was already -6.", - shortDesc: "If this Pokemon's stat stages would be lowered, the attacker's are lowered instead.", onBoost(boost, target, source, effect) { // Don't bounce self stat changes, or boosts that have already bounced if (target === source || !boost || effect.id === 'mirrorarmor') return; @@ -2192,7 +1991,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 240, }, mistysurge: { - shortDesc: "On switch-in, this Pokemon summons Misty Terrain.", onStart(source) { this.field.setTerrain('mistyterrain'); }, @@ -2201,7 +1999,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 228, }, moldbreaker: { - shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", onStart(pokemon) { this.add('-ability', pokemon, 'Mold Breaker'); }, @@ -2213,8 +2010,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 104, }, moody: { - desc: "This Pokemon has a random stat other than accuracy or evasion raised by 2 stages and another stat lowered by 1 stage at the end of each turn.", - shortDesc: "Boosts a random stat (except accuracy/evasion) +2 and another stat -1 every turn.", onResidualOrder: 26, onResidualSubOrder: 1, onResidual(pokemon) { @@ -2248,8 +2043,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 141, }, motordrive: { - desc: "This Pokemon is immune to Electric-type moves and raises its Speed by 1 stage when hit by an Electric-type move.", - shortDesc: "This Pokemon's Speed is raised 1 stage if hit by an Electric move; Electric immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Electric') { if (!this.boost({spe: 1})) { @@ -2263,8 +2056,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 78, }, moxie: { - desc: "This Pokemon's Attack is raised by 1 stage if it attacks and knocks out another Pokemon.", - shortDesc: "This Pokemon's Attack is raised by 1 stage if it attacks and KOes another Pokemon.", onSourceAfterFaint(length, target, source, effect) { if (effect && effect.effectType === 'Move') { this.boost({atk: length}, source); @@ -2275,7 +2066,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 153, }, multiscale: { - shortDesc: "If this Pokemon is at full HP, damage taken from attacks is halved.", onSourceModifyDamage(damage, source, target, move) { if (target.hp >= target.maxhp) { this.debug('Multiscale weaken'); @@ -2287,15 +2077,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 136, }, multitype: { - shortDesc: "If this Pokemon is an Arceus, its type changes to match its held Plate or Z-Crystal.", // Multitype's type-changing itself is implemented in statuses.js name: "Multitype", rating: 4, num: 121, }, mummy: { - desc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect the Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, and Zen Mode Abilities.", - shortDesc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy.", name: "Mummy", onDamagingHit(damage, target, source, move) { if (move.flags['contact'] && source.ability !== 'mummy') { @@ -2312,7 +2099,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 152, }, naturalcure: { - shortDesc: "This Pokemon has its major status condition cured when it switches out.", onCheckShow(pokemon) { // This is complicated // For the most part, in-game, it's obvious whether or not Natural Cure activated, @@ -2395,7 +2181,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 30, }, neuroforce: { - shortDesc: "This Pokemon's attacks that are super effective against the target do 1.25x damage.", onModifyDamage(damage, source, target, move) { if (move && target.getMoveHitData(move).typeMod > 0) { return this.chainModify([0x1400, 0x1000]); @@ -2406,8 +2191,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 233, }, neutralizinggas: { - desc: "While this Pokemon is active, Abilities have no effect. Does not affect the Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode Abilities.", - shortDesc: "While this Pokemon is active, Abilities have no effect.", // Ability suppression implemented in sim/pokemon.ts:Pokemon#ignoringAbility // TODO Will abilities that already started start again? (Intimidate seems like a good test case) onPreStart(pokemon) { @@ -2434,7 +2217,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 256, }, noguard: { - shortDesc: "Every move used by or against this Pokemon will always hit.", onAnyInvulnerabilityPriority: 1, onAnyInvulnerability(target, source, move) { if (move && (source === this.effectData.target || target === this.effectData.target)) return 0; @@ -2450,8 +2232,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 99, }, normalize: { - desc: "This Pokemon's moves are changed to be Normal type and have their power multiplied by 1.2. This effect comes before other effects that change a move's type.", - shortDesc: "This Pokemon's moves are changed to be Normal type and have 1.2x power.", onModifyTypePriority: 1, onModifyType(move, pokemon) { const noModifyType = [ @@ -2471,8 +2251,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 96, }, oblivious: { - desc: "This Pokemon cannot be infatuated or taunted. Gaining this Ability while affected cures it. Immune to Intimidate.", - shortDesc: "This Pokemon cannot be infatuated or taunted. Immune to Intimidate.", onUpdate(pokemon) { if (pokemon.volatiles['attract']) { this.add('-activate', pokemon, 'ability: Oblivious'); @@ -2505,7 +2283,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 12, }, overcoat: { - shortDesc: "This Pokemon is immune to powder moves and damage from Sandstorm or Hail.", onImmunity(type, pokemon) { if (type === 'sandstorm' || type === 'hail' || type === 'powder') return false; }, @@ -2521,8 +2298,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 142, }, overgrow: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Grass-type attack.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Grass attacks.", onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender, move) { if (move.type === 'Grass' && attacker.hp <= attacker.maxhp / 3) { @@ -2542,8 +2317,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 65, }, owntempo: { - desc: "This Pokemon cannot be confused. Gaining this Ability while confused cures it. Immune to Intimidate.", - shortDesc: "This Pokemon cannot be confused. Immune to Intimidate.", onUpdate(pokemon) { if (pokemon.volatiles['confusion']) { this.add('-activate', pokemon, 'ability: Own Tempo'); @@ -2569,8 +2342,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 20, }, parentalbond: { - desc: "This Pokemon's damaging moves become multi-hit moves that hit twice. The second hit has its damage quartered. Does not affect multi-hit moves or moves that have multiple targets.", - shortDesc: "This Pokemon's damaging moves hit twice. The second hit has its damage quartered.", onPrepareHit(source, target, move) { if (move.category === 'Status' || move.selfdestruct || move.multihit) return; if (['iceball', 'rollout'].includes(move.id)) return; @@ -2594,7 +2365,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 184, }, pastelveil: { - shortDesc: "This Pokemon and its allies cannot be poisoned. On switch-in, cures poisoned allies.", onStart(pokemon) { for (const ally of pokemon.allies()) { if (['psn', 'tox'].includes(ally.status)) { @@ -2635,8 +2405,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 257, }, perishbody: { - desc: "Making contact with this Pokemon starts the Perish Song effect for it and the attacker. This effect does not happen if this Pokemon already has a perish count.", - shortDesc: "Making contact with this Pokemon starts the Perish Song effect for it and the attacker.", onDamagingHit(damage, target, source, move) { if (!move.flags['contact']) return; @@ -2655,8 +2423,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 253, }, pickpocket: { - desc: "If this Pokemon has no item and is hit by a contact move, it steals the attacker's item. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect.", - shortDesc: "If this Pokemon has no item and is hit by a contact move, it steals the attacker's item.", onAfterMoveSecondary(target, source, move) { if (source && source !== target && move?.flags['contact']) { if (target.item || target.switchFlag || target.forceSwitchFlag || source.switchFlag === true) { @@ -2679,7 +2445,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 124, }, pickup: { - shortDesc: "If this Pokemon has no item, it finds one used by an adjacent Pokemon this turn.", onResidualOrder: 26, onResidualSubOrder: 1, onResidual(pokemon) { @@ -2702,8 +2467,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 53, }, pixilate: { - desc: "This Pokemon's Normal-type moves become Fairy-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Fairy type and have 1.2x power.", onModifyTypePriority: -1, onModifyType(move, pokemon) { const noModifyType = [ @@ -2723,8 +2486,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 182, }, plus: { - desc: "If an active ally has this Ability or the Minus Ability, this Pokemon's Special Attack is multiplied by 1.5.", - shortDesc: "If an active ally has this Ability or the Minus Ability, this Pokemon's Sp. Atk is 1.5x.", onModifySpAPriority: 5, onModifySpA(spa, pokemon) { if (pokemon.side.active.length === 1) { @@ -2744,8 +2505,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 57, }, poisonheal: { - desc: "If this Pokemon is poisoned, it restores 1/8 of its maximum HP, rounded down, at the end of each turn instead of losing HP.", - shortDesc: "This Pokemon is healed by 1/8 of its max HP each turn when poisoned; no HP loss.", onDamagePriority: 1, onDamage(damage, target, source, effect) { if (effect.id === 'psn' || effect.id === 'tox') { @@ -2758,7 +2517,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 90, }, poisonpoint: { - shortDesc: "30% chance a Pokemon making contact with this Pokemon will be poisoned.", onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -2771,7 +2529,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 38, }, poisontouch: { - shortDesc: "This Pokemon's contact moves have a 30% chance of poisoning.", // upokecenter says this is implemented as an added secondary effect onModifyMove(move) { if (!move || !move.flags['contact'] || move.target === 'self') return; @@ -2789,8 +2546,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 143, }, powerconstruct: { - desc: "If this Pokemon is a Zygarde in its 10% or 50% Forme, it changes to Complete Forme when it has 1/2 or less of its maximum HP at the end of the turn.", - shortDesc: "If Zygarde 10%/50%, changes to Complete if at 1/2 max HP or less at end of turn.", onResidualOrder: 27, onResidual(pokemon) { if (pokemon.baseSpecies.baseSpecies !== 'Zygarde' || pokemon.transformed || !pokemon.hp) return; @@ -2810,8 +2565,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 211, }, powerofalchemy: { - desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Stance Change, Trace, Wonder Guard, and Zen Mode.", - shortDesc: "This Pokemon copies the Ability of an ally that faints.", onAllyFaint(target) { if (!this.effectData.target.hp) return; const ability = target.getAbility(); @@ -2827,7 +2580,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 223, }, powerspot: { - shortDesc: "This Pokemon's allies have the power of their moves multiplied by 1.3.", onAllyBasePowerPriority: 22, onAllyBasePower(basePower, attacker, defender, move) { if (attacker !== this.effectData.target) { @@ -2840,7 +2592,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 249, }, prankster: { - shortDesc: "This Pokemon's Status moves have priority raised by 1, but Dark types are immune.", onModifyPriority(priority, pokemon, target, move) { if (move?.category === 'Status') { move.pranksterBoosted = true; @@ -2852,8 +2603,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 158, }, pressure: { - desc: "If this Pokemon is the target of an opposing Pokemon's move, that move loses one additional PP.", - shortDesc: "If this Pokemon is the target of a foe's move, that move loses one additional PP.", onStart(pokemon) { this.add('-ability', pokemon, 'Pressure'); }, @@ -2866,8 +2615,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 46, }, primordialsea: { - desc: "On switch-in, the weather becomes heavy rain that prevents damaging Fire-type moves from executing, in addition to all the effects of Rain Dance. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Delta Stream or Desolate Land.", - shortDesc: "On switch-in, heavy rain begins until this Ability is not active in battle.", onStart(source) { this.field.setWeather('primordialsea'); }, @@ -2891,8 +2638,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 189, }, prismarmor: { - desc: "This Pokemon receives 3/4 damage from supereffective attacks. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", - shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks.", onSourceModifyDamage(damage, source, target, move) { if (target.getMoveHitData(move).typeMod > 0) { this.debug('Prism Armor neutralize'); @@ -2905,7 +2650,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 232, }, propellertail: { - shortDesc: "This Pokemon's moves cannot be redirected to a different target by any effect.", onModifyMove(move) { // this doesn't actually do anything because ModifyMove happens after the tracksTarget check // the actual implementation is in Battle#getTarget @@ -2916,8 +2660,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 239, }, protean: { - desc: "This Pokemon's type changes to match the type of the move it is about to use. This effect comes after all effects that change a move's type.", - shortDesc: "This Pokemon's type changes to match the type of the move it is about to use.", onPrepareHit(source, target, move) { if (move.hasBounced) return; const type = move.type; @@ -2931,7 +2673,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 168, }, psychicsurge: { - shortDesc: "On switch-in, this Pokemon summons Psychic Terrain.", onStart(source) { this.field.setTerrain('psychicterrain'); }, @@ -2940,8 +2681,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 227, }, punkrock: { - desc: "This Pokemon's sound-based moves have their power multiplied by 1.3. This Pokemon takes halved damage from sound-based moves.", - shortDesc: "This Pokemon receives 1/2 damage from sound moves. Its own have 1.3x power.", onBasePowerPriority: 7, onBasePower(basePower, attacker, defender, move) { if (move.flags['sound']) { @@ -2960,7 +2699,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 244, }, purepower: { - shortDesc: "This Pokemon's Attack is doubled.", onModifyAtkPriority: 5, onModifyAtk(atk) { return this.chainModify(2); @@ -2970,8 +2708,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 74, }, queenlymajesty: { - desc: "While this Pokemon is active, priority moves from opposing Pokemon targeted at allies are prevented from having an effect.", - shortDesc: "While this Pokemon is active, allies are protected from opposing priority moves.", onFoeTryMove(target, source, move) { const targetAllExceptions = ['perishsong', 'flowershield', 'rototiller']; if (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) { @@ -2990,7 +2726,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 214, }, quickdraw: { - shortDesc: "This Pokemon has a 30% chance to move first in its priority bracket with attacking moves.", onFractionalPriorityPriority: -1, onFractionalPriority(priority, pokemon, target, move) { if (move.category !== "Status" && this.randomChance(3, 10)) { @@ -3003,8 +2738,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 259, }, quickfeet: { - desc: "If this Pokemon has a major status condition, its Speed is multiplied by 1.5; the Speed drop from paralysis is ignored.", - shortDesc: "If this Pokemon is statused, its Speed is 1.5x; ignores Speed drop from paralysis.", onModifySpe(spe, pokemon) { if (pokemon.status) { return this.chainModify(1.5); @@ -3015,8 +2748,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 95, }, raindish: { - desc: "If Rain Dance is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn. If this Pokemon is holding Utility Umbrella, its HP does not get restored.", - shortDesc: "If Rain Dance is active, this Pokemon heals 1/16 of its max HP each turn.", onWeather(target, source, effect) { if (target.hasItem('utilityumbrella')) return; if (effect.id === 'raindance' || effect.id === 'primordialsea') { @@ -3028,8 +2759,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 44, }, rattled: { - desc: "This Pokemon's Speed is raised by 1 stage if hit by a Bug-, Dark-, or Ghost-type attack, or Intimidate.", - shortDesc: "Speed is raised 1 stage if hit by a Bug-, Dark-, or Ghost-type attack, or Intimidated.", onDamagingHit(damage, target, source, move) { if (['Dark', 'Bug', 'Ghost'].includes(move.type)) { this.boost({spe: 1}); @@ -3045,8 +2774,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 155, }, receiver: { - desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Stance Change, Trace, Wonder Guard, and Zen Mode.", - shortDesc: "This Pokemon copies the Ability of an ally that faints.", onAllyFaint(target) { if (!this.effectData.target.hp) return; const ability = target.getAbility(); @@ -3062,8 +2789,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 222, }, reckless: { - desc: "This Pokemon's attacks with recoil or crash damage have their power multiplied by 1.2. Does not affect Struggle.", - shortDesc: "This Pokemon's attacks with recoil or crash damage have 1.2x power; not Struggle.", onBasePowerPriority: 23, onBasePower(basePower, attacker, defender, move) { if (move.recoil || move.hasCrashDamage) { @@ -3076,8 +2801,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 120, }, refrigerate: { - desc: "This Pokemon's Normal-type moves become Ice-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Ice type and have 1.2x power.", onModifyTypePriority: -1, onModifyType(move, pokemon) { const noModifyType = [ @@ -3097,7 +2820,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 174, }, regenerator: { - shortDesc: "This Pokemon restores 1/3 of its maximum HP, rounded down, when it switches out.", onSwitchOut(pokemon) { pokemon.heal(pokemon.baseMaxhp / 3); }, @@ -3106,7 +2828,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 144, }, ripen: { - shortDesc: "When this Pokemon eats a Berry, its effect is doubled.", onTryHeal(damage, target, source, effect) { if (!effect) return; if (effect.id === 'berryjuice' || effect.id === 'leftovers') { @@ -3147,8 +2868,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 247, }, rivalry: { - desc: "This Pokemon's attacks have their power multiplied by 1.25 against targets of the same gender or multiplied by 0.75 against targets of the opposite gender. There is no modifier if either this Pokemon or the target is genderless.", - shortDesc: "This Pokemon's attacks do 1.25x on same gender targets; 0.75x on opposite gender.", onBasePowerPriority: 24, onBasePower(basePower, attacker, defender, move) { if (attacker.gender && defender.gender) { @@ -3166,15 +2885,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 79, }, rkssystem: { - shortDesc: "If this Pokemon is a Silvally, its type changes to match its held Memory.", // RKS System's type-changing itself is implemented in statuses.js name: "RKS System", rating: 4, num: 225, }, rockhead: { - desc: "This Pokemon does not take recoil damage besides Struggle, Life Orb, and crash damage.", - shortDesc: "This Pokemon does not take recoil damage besides Struggle/Life Orb/crash damage.", onDamage(damage, target, source, effect) { if (effect.id === 'recoil') { if (!this.activeMove) throw new Error("Battle.activeMove is null"); @@ -3186,8 +2902,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 69, }, roughskin: { - desc: "Pokemon making contact with this Pokemon lose 1/8 of their maximum HP, rounded down.", - shortDesc: "Pokemon making contact with this Pokemon lose 1/8 of their max HP.", onDamagingHitOrder: 1, onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { @@ -3199,14 +2913,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 24, }, runaway: { - shortDesc: "No competitive use.", name: "Run Away", rating: 0, num: 50, }, sandforce: { - desc: "If Sandstorm is active, this Pokemon's Ground-, Rock-, and Steel-type attacks have their power multiplied by 1.3. This Pokemon takes no damage from Sandstorm.", - shortDesc: "This Pokemon's Ground/Rock/Steel attacks do 1.3x in Sandstorm; immunity to it.", onBasePowerPriority: 21, onBasePower(basePower, attacker, defender, move) { if (this.field.isWeather('sandstorm')) { @@ -3224,8 +2935,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 159, }, sandrush: { - desc: "If Sandstorm is active, this Pokemon's Speed is doubled. This Pokemon takes no damage from Sandstorm.", - shortDesc: "If Sandstorm is active, this Pokemon's Speed is doubled; immunity to Sandstorm.", onModifySpe(spe, pokemon) { if (this.field.isWeather('sandstorm')) { return this.chainModify(2); @@ -3239,8 +2948,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 146, }, sandspit: { - desc: "When this Pokemon is hit by an attack, Sandstorm begins. This effect happens after the effects of Max and G-Max Moves.", - shortDesc: "When this Pokemon is hit, Sandstorm begins.", onDamagingHit(damage, target, source, move) { if (this.field.getWeather().id !== 'sandstorm') { this.field.setWeather('sandstorm'); @@ -3251,7 +2958,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 245, }, sandstream: { - shortDesc: "On switch-in, this Pokemon summons Sandstorm.", onStart(source) { this.field.setWeather('sandstorm'); }, @@ -3260,8 +2966,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 45, }, sandveil: { - desc: "If Sandstorm is active, this Pokemon's evasiveness is multiplied by 1.25. This Pokemon takes no damage from Sandstorm.", - shortDesc: "If Sandstorm is active, this Pokemon's evasiveness is 1.25x; immunity to Sandstorm.", onImmunity(type, pokemon) { if (type === 'sandstorm') return false; }, @@ -3278,8 +2982,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 8, }, sapsipper: { - desc: "This Pokemon is immune to Grass-type moves and raises its Attack by 1 stage when hit by a Grass-type move.", - shortDesc: "This Pokemon's Attack is raised 1 stage if hit by a Grass move; Grass immunity.", onTryHitPriority: 1, onTryHit(target, source, move) { if (target !== source && move.type === 'Grass') { @@ -3300,8 +3002,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 157, }, schooling: { - desc: "On switch-in, if this Pokemon is a Wishiwashi that is level 20 or above and has more than 1/4 of its maximum HP left, it changes to School Form. If it is in School Form and its HP drops to 1/4 of its maximum HP or less, it changes to Solo Form at the end of the turn. If it is in Solo Form and its HP is greater than 1/4 its maximum HP at the end of the turn, it changes to School Form.", - shortDesc: "If user is Wishiwashi, changes to School Form if it has > 1/4 max HP, else Solo Form.", onStart(pokemon) { if (pokemon.baseSpecies.baseSpecies !== 'Wishiwashi' || pokemon.level < 20 || pokemon.transformed) return; if (pokemon.hp > pokemon.maxhp / 4) { @@ -3335,8 +3035,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 208, }, scrappy: { - desc: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves. Immune to Intimidate.", - shortDesc: "Fighting, Normal moves hit Ghost. Immune to Intimidate.", onModifyMovePriority: -5, onModifyMove(move) { if (!move.ignoreImmunity) move.ignoreImmunity = {}; @@ -3356,7 +3054,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 113, }, screencleaner: { - shortDesc: "On switch-in, the effects of Aurora Veil, Light Screen, and Reflect end for both sides.", onStart(pokemon) { let activated = false; for (const sideCondition of ['reflect', 'lightscreen', 'auroraveil']) { @@ -3381,7 +3078,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 251, }, serenegrace: { - shortDesc: "This Pokemon's moves have their secondary effect chance doubled.", onModifyMovePriority: -2, onModifyMove(move) { if (move.secondaries) { @@ -3396,8 +3092,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 32, }, shadowshield: { - desc: "If this Pokemon is at full HP, damage taken from attacks is halved. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", - shortDesc: "If this Pokemon is at full HP, damage taken from attacks is halved.", onSourceModifyDamage(damage, source, target, move) { if (target.hp >= target.maxhp) { this.debug('Shadow Shield weaken'); @@ -3410,8 +3104,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 231, }, shadowtag: { - desc: "Prevents adjacent opposing Pokemon from choosing to switch out unless they are immune to trapping or also have this Ability.", - shortDesc: "Prevents adjacent foes from choosing to switch unless they also have this Ability.", onFoeTrapPokemon(pokemon) { if (!pokemon.hasAbility('shadowtag') && this.isAdjacent(pokemon, this.effectData.target)) { pokemon.tryTrap(true); @@ -3429,8 +3121,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 23, }, shedskin: { - desc: "This Pokemon has a 33% chance to have its major status condition cured at the end of each turn.", - shortDesc: "This Pokemon has a 33% chance to have its status cured at the end of each turn.", onResidualOrder: 5, onResidualSubOrder: 4, onResidual(pokemon) { @@ -3445,8 +3135,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 61, }, sheerforce: { - desc: "This Pokemon's attacks with secondary effects have their power multiplied by 1.3, but the secondary effects are removed.", - shortDesc: "This Pokemon's attacks with secondary effects have 1.3x power; nullifies the effects.", onModifyMove(move, pokemon) { if (move.secondaries) { delete move.secondaries; @@ -3465,14 +3153,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 125, }, shellarmor: { - shortDesc: "This Pokemon cannot be struck by a critical hit.", onCriticalHit: false, name: "Shell Armor", rating: 1, num: 75, }, shielddust: { - shortDesc: "This Pokemon is not affected by the secondary effect of another Pokemon's attack.", onModifySecondaries(secondaries) { this.debug('Shield Dust prevent secondary'); return secondaries.filter(effect => !!(effect.self || effect.dustproof)); @@ -3482,8 +3168,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 19, }, shieldsdown: { - desc: "If this Pokemon is a Minior, it changes to its Core forme if it has 1/2 or less of its maximum HP, and changes to Meteor Form if it has more than 1/2 its maximum HP. This check is done on switch-in and at the end of each turn. While in its Meteor Form, it cannot become affected by major status conditions. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", - shortDesc: "If Minior, switch-in/end of turn it changes to Core at 1/2 max HP or less, else Meteor.", onStart(pokemon) { if (pokemon.baseSpecies.baseSpecies !== 'Minior' || pokemon.transformed) return; if (pokemon.hp > pokemon.maxhp / 2) { @@ -3528,8 +3212,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 197, }, simple: { - desc: "When this Pokemon's stat stages are raised or lowered, the effect is doubled instead. This Ability does not affect stat stage increases received from Z-Power effects that happen before a Z-Move is used.", - shortDesc: "When this Pokemon's stat stages are raised or lowered, the effect is doubled instead.", onBoost(boost, target, source, effect) { if (effect && effect.id === 'zpower') return; let i: BoostName; @@ -3542,7 +3224,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 86, }, skilllink: { - shortDesc: "This Pokemon's multi-hit attacks always hit the maximum number of times.", onModifyMove(move) { if (move.multihit && Array.isArray(move.multihit) && move.multihit.length) { move.multihit = move.multihit[1]; @@ -3556,7 +3237,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 92, }, slowstart: { - shortDesc: "On switch-in, this Pokemon's Attack and Speed are halved for 5 turns.", onStart(pokemon) { pokemon.addVolatile('slowstart'); }, @@ -3585,7 +3265,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 112, }, slushrush: { - shortDesc: "If Hail is active, this Pokemon's Speed is doubled.", onModifySpe(spe, pokemon) { if (this.field.isWeather('hail')) { return this.chainModify(2); @@ -3596,7 +3275,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 202, }, sniper: { - shortDesc: "If this Pokemon strikes with a critical hit, the damage is multiplied by 1.5.", onModifyDamage(damage, source, target, move) { if (target.getMoveHitData(move).crit) { this.debug('Sniper boost'); @@ -3608,8 +3286,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 97, }, snowcloak: { - desc: "If Hail is active, this Pokemon's evasiveness is multiplied by 1.25. This Pokemon takes no damage from Hail.", - shortDesc: "If Hail is active, this Pokemon's evasiveness is 1.25x; immunity to Hail.", onImmunity(type, pokemon) { if (type === 'hail') return false; }, @@ -3626,7 +3302,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 81, }, snowwarning: { - shortDesc: "On switch-in, this Pokemon summons Hail.", onStart(source) { this.field.setWeather('hail'); }, @@ -3635,8 +3310,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 117, }, solarpower: { - desc: "If Sunny Day is active, this Pokemon's Special Attack is multiplied by 1.5 and it loses 1/8 of its maximum HP, rounded down, at the end of each turn. If this Pokemon is holding Utility Umbrella, its Special Attack remains the same and it does not lose any HP.", - shortDesc: "If Sunny Day is active, this Pokemon's Sp. Atk is 1.5x; loses 1/8 max HP per turn.", onModifySpAPriority: 5, onModifySpA(spa, pokemon) { if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) { @@ -3654,7 +3327,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 94, }, solidrock: { - shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks.", onSourceModifyDamage(damage, source, target, move) { if (target.getMoveHitData(move).typeMod > 0) { this.debug('Solid Rock neutralize'); @@ -3666,8 +3338,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 116, }, soulheart: { - desc: "This Pokemon's Special Attack is raised by 1 stage when another Pokemon faints.", - shortDesc: "This Pokemon's Sp. Atk is raised by 1 stage when another Pokemon faints.", onAnyFaintPriority: 1, onAnyFaint() { this.boost({spa: 1}, this.effectData.target); @@ -3677,7 +3347,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 220, }, soundproof: { - shortDesc: "This Pokemon is immune to sound-based moves, including Heal Bell.", onTryHit(target, source, move) { if (move.target !== 'self' && move.flags['sound']) { this.add('-immune', target, '[from] ability: Soundproof'); @@ -3694,8 +3363,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 43, }, speedboost: { - desc: "This Pokemon's Speed is raised by 1 stage at the end of each full turn it has been on the field.", - shortDesc: "This Pokemon's Speed is raised 1 stage at the end of each full turn on the field.", onResidualOrder: 26, onResidualSubOrder: 1, onResidual(pokemon) { @@ -3708,7 +3375,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 3, }, stakeout: { - shortDesc: "This Pokemon's attacking stat is doubled against a target that switched in this turn.", onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender) { if (!defender.activeTurns) { @@ -3728,14 +3394,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 198, }, stall: { - shortDesc: "This Pokemon moves last among Pokemon using the same or greater priority moves.", onFractionalPriority: -0.1, name: "Stall", rating: -1, num: 100, }, stalwart: { - shortDesc: "This Pokemon's moves cannot be redirected to a different target by any effect.", onModifyMove(move) { // this doesn't actually do anything because ModifyMove happens after the tracksTarget check // the actual implementation is in Battle#getTarget @@ -3746,7 +3410,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 242, }, stamina: { - shortDesc: "This Pokemon's Defense is raised by 1 stage after it is damaged by a move.", onDamagingHit(damage, target, source, effect) { this.boost({def: 1}); }, @@ -3755,8 +3418,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 192, }, stancechange: { - desc: "If this Pokemon is an Aegislash, it changes to Blade Forme before attempting to use an attacking move, and changes to Shield Forme before attempting to use King's Shield.", - shortDesc: "If Aegislash, changes Forme to Blade before attacks and Shield before King's Shield.", onBeforeMovePriority: 0.5, onBeforeMove(attacker, defender, move) { if (attacker.species.baseSpecies !== 'Aegislash' || attacker.transformed) return; @@ -3769,7 +3430,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 176, }, static: { - shortDesc: "30% chance a Pokemon making contact with this Pokemon will be paralyzed.", onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -3782,7 +3442,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 9, }, steadfast: { - shortDesc: "If this Pokemon flinches, its Speed is raised by 1 stage.", onFlinch(pokemon) { this.boost({spe: 1}); }, @@ -3791,7 +3450,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 80, }, steamengine: { - shortDesc: "This Pokemon's Speed is raised by 6 stages after it is damaged by Fire/Water moves.", onDamagingHit(damage, target, source, move) { if (['Water', 'Fire'].includes(move.type)) { this.boost({spe: 6}); @@ -3802,7 +3460,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 243, }, steelworker: { - shortDesc: "This Pokemon's attacking stat is multiplied by 1.5 while using a Steel-type attack.", onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender, move) { if (move.type === 'Steel') { @@ -3822,7 +3479,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 200, }, steelyspirit: { - shortDesc: "This Pokemon and its allies' Steel-type moves have their power multiplied by 1.5.", onAllyBasePowerPriority: 22, onAllyBasePower(basePower, attacker, defender, move) { if (move.type === 'Steel') { @@ -3835,7 +3491,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 252, }, stench: { - shortDesc: "This Pokemon's attacks without a chance to flinch have a 10% chance to flinch.", onModifyMovePriority: -1, onModifyMove(move) { if (move.category !== "Status") { @@ -3855,7 +3510,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 1, }, stickyhold: { - shortDesc: "This Pokemon cannot lose its held item due to another Pokemon's attack.", onTakeItem(item, pokemon, source) { if (this.suppressingAttackEvents(pokemon) || !pokemon.hp || pokemon.item === 'stickybarb') return; if (!this.activeMove) throw new Error("Battle.activeMove is null"); @@ -3869,8 +3523,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 60, }, stormdrain: { - desc: "This Pokemon is immune to Water-type moves and raises its Special Attack by 1 stage when hit by a Water-type move. If this Pokemon is not the target of a single-target Water-type move used by another Pokemon, this Pokemon redirects that move to itself if it is within the range of that move.", - shortDesc: "This Pokemon draws Water moves to itself to raise Sp. Atk by 1; Water immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Water') { if (!this.boost({spa: 1})) { @@ -3895,8 +3547,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 114, }, strongjaw: { - desc: "This Pokemon's bite-based attacks have their power multiplied by 1.5.", - shortDesc: "This Pokemon's bite-based attacks have 1.5x power. Bug Bite is not boosted.", onBasePowerPriority: 19, onBasePower(basePower, attacker, defender, move) { if (move.flags['bite']) { @@ -3908,8 +3558,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 173, }, sturdy: { - desc: "If this Pokemon is at full HP, it survives one hit with at least 1 HP. OHKO moves fail when used against this Pokemon.", - shortDesc: "If this Pokemon is at full HP, it survives one hit with at least 1 HP. Immune to OHKO.", onTryHit(pokemon, target, move) { if (move.ohko) { this.add('-immune', pokemon, '[from] ability: Sturdy'); @@ -3928,7 +3576,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 5, }, suctioncups: { - shortDesc: "This Pokemon cannot be forced to switch out by another Pokemon's attack or item.", onDragOutPriority: 1, onDragOut(pokemon) { this.add('-activate', pokemon, 'ability: Suction Cups'); @@ -3939,7 +3586,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 21, }, superluck: { - shortDesc: "This Pokemon's critical hit ratio is raised by 1 stage.", onModifyCritRatio(critRatio) { return critRatio + 1; }, @@ -3948,7 +3594,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 105, }, surgesurfer: { - shortDesc: "If Electric Terrain is active, this Pokemon's Speed is doubled.", onModifySpe(spe) { if (this.field.isTerrain('electricterrain')) { return this.chainModify(2); @@ -3959,8 +3604,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 207, }, swarm: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Bug-type attack.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Bug attacks.", onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender, move) { if (move.type === 'Bug' && attacker.hp <= attacker.maxhp / 3) { @@ -3980,7 +3623,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 68, }, sweetveil: { - shortDesc: "This Pokemon and its allies cannot fall asleep.", name: "Sweet Veil", onAllySetStatus(status, target, source, effect) { if (status.id === 'slp') { @@ -4002,8 +3644,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 175, }, swiftswim: { - desc: "If Rain Dance is active and this Pokemon is not holding Utility Umbrella, this Pokemon's Speed is doubled.", - shortDesc: "If Rain Dance is active, this Pokemon's Speed is doubled.", onModifySpe(spe, pokemon) { if (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { return this.chainModify(2); @@ -4014,8 +3654,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 33, }, symbiosis: { - desc: "If an ally uses its item, this Pokemon gives its item to that ally immediately. Does not activate if the ally's item was stolen or knocked off.", - shortDesc: "If an ally uses its item, this Pokemon gives its item to that ally immediately.", onAllyAfterUseItem(item, pokemon) { const source = this.effectData.target; const myItem = source.takeItem(); @@ -4034,8 +3672,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 180, }, synchronize: { - desc: "If another Pokemon burns, paralyzes, poisons, or badly poisons this Pokemon, that Pokemon receives the same major status condition.", - shortDesc: "If another Pokemon burns/poisons/paralyzes this Pokemon, it also gets that status.", onAfterSetStatus(status, target, source, effect) { if (!source || source === target) return; if (effect && effect.id === 'toxicspikes') return; @@ -4051,7 +3687,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 28, }, tangledfeet: { - shortDesc: "This Pokemon's evasiveness is doubled as long as it is confused.", onModifyAccuracyPriority: 6, onModifyAccuracy(accuracy, target) { if (typeof accuracy !== 'number') return; @@ -4065,7 +3700,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 77, }, tanglinghair: { - shortDesc: "Pokemon making contact with this Pokemon have their Speed lowered by 1 stage.", onDamagingHit(damage, target, source, move) { if (move.flags['contact']) { this.add('-ability', target, 'Tangling Hair'); @@ -4077,8 +3711,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 221, }, technician: { - desc: "This Pokemon's moves of 60 power or less have their power multiplied by 1.5. Does affect Struggle.", - shortDesc: "This Pokemon's moves of 60 power or less have 1.5x power. Includes Struggle.", onBasePowerPriority: 30, onBasePower(basePower, attacker, defender, move) { const basePowerAfterMultiplier = this.modify(basePower, this.event.modifier); @@ -4093,7 +3725,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 101, }, telepathy: { - shortDesc: "This Pokemon does not take damage from attacks made by its allies.", onTryHit(target, source, move) { if (target !== source && target.side === source.side && move.category !== 'Status') { this.add('-activate', target, 'ability: Telepathy'); @@ -4105,7 +3736,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 140, }, teravolt: { - shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", onStart(pokemon) { this.add('-ability', pokemon, 'Teravolt'); }, @@ -4117,8 +3747,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 164, }, thickfat: { - desc: "If a Pokemon uses a Fire- or Ice-type attack against this Pokemon, that Pokemon's attacking stat is halved when calculating the damage to this Pokemon.", - shortDesc: "Fire/Ice-type moves against this Pokemon deal damage with a halved attacking stat.", onSourceModifyAtkPriority: 6, onSourceModifyAtk(atk, attacker, defender, move) { if (move.type === 'Ice' || move.type === 'Fire') { @@ -4138,7 +3766,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 47, }, tintedlens: { - shortDesc: "This Pokemon's attacks that are not very effective on a target deal double damage.", onModifyDamage(damage, source, target, move) { if (target.getMoveHitData(move).typeMod < 0) { this.debug('Tinted Lens boost'); @@ -4150,8 +3777,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 110, }, torrent: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Water-type attack.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Water attacks.", onModifyAtkPriority: 5, onModifyAtk(atk, attacker, defender, move) { if (move.type === 'Water' && attacker.hp <= attacker.maxhp / 3) { @@ -4171,7 +3796,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 67, }, toughclaws: { - shortDesc: "This Pokemon's contact moves have their power multiplied by 1.3.", onBasePowerPriority: 21, onBasePower(basePower, attacker, defender, move) { if (move.flags['contact']) { @@ -4183,8 +3807,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 181, }, toxicboost: { - desc: "While this Pokemon is poisoned, the power of its physical attacks is multiplied by 1.5.", - shortDesc: "While this Pokemon is poisoned, its physical attacks have 1.5x power.", onBasePowerPriority: 19, onBasePower(basePower, attacker, defender, move) { if ((attacker.status === 'psn' || attacker.status === 'tox') && move.category === 'Physical') { @@ -4196,8 +3818,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 137, }, trace: { - desc: "On switch-in, or when this Pokemon acquires this ability, this Pokemon copies a random adjacent opposing Pokemon's Ability. However, if one or more adjacent Pokemon has the Ability \"No Ability\", Trace won't copy anything even if there is another valid Ability it could normally copy. Otherwise, if there is no Ability that can be copied at that time, this Ability will activate as soon as an Ability can be copied. Abilities that cannot be copied are the previously mentioned \"No Ability\", as well as Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, and Zen Mode.", - shortDesc: "On switch-in, or when it can, this Pokemon copies a random adjacent foe's Ability.", onStart(pokemon) { if (pokemon.side.foe.active.some( foeActive => foeActive && this.isAdjacent(pokemon, foeActive) && foeActive.ability === 'noability' @@ -4230,7 +3850,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 36, }, triage: { - shortDesc: "This Pokemon's healing moves have their priority increased by 3.", onModifyPriority(priority, pokemon, target, move) { if (move?.flags['heal']) return priority + 3; }, @@ -4239,7 +3858,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 205, }, truant: { - shortDesc: "This Pokemon skips every other turn instead of using a move.", onStart(pokemon) { pokemon.removeVolatile('truant'); if (pokemon.activeTurns && (pokemon.moveThisTurnResult !== undefined || !this.queue.willMove(pokemon))) { @@ -4260,7 +3878,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 54, }, turboblaze: { - shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", onStart(pokemon) { this.add('-ability', pokemon, 'Turboblaze'); }, @@ -4272,8 +3889,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 163, }, unaware: { - desc: "This Pokemon ignores other Pokemon's Attack, Special Attack, and accuracy stat stages when taking damage, and ignores other Pokemon's Defense, Special Defense, and evasiveness stat stages when dealing damage.", - shortDesc: "This Pokemon ignores other Pokemon's stat stages when taking or doing damage.", name: "Unaware", onAnyModifyBoost(boosts, pokemon) { const unawareUser = this.effectData.target; @@ -4294,8 +3909,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 109, }, unburden: { - desc: "If this Pokemon loses its held item for any reason, its Speed is doubled. This boost is lost if it switches out or gains a new item or Ability.", - shortDesc: "Speed is doubled on held item loss; boost is lost if it switches, gets new item/Ability.", onAfterUseItem(item, pokemon) { if (pokemon !== this.effectData.target) return; pokemon.addVolatile('unburden'); @@ -4318,8 +3931,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 84, }, unnerve: { - desc: "While this Pokemon is active, it prevents opposing Pokemon from using their Berries. Activation message broadcasts before other Abilities regardless of the Pokemon's Speed tiers.", - shortDesc: "While this Pokemon is active, it prevents opposing Pokemon from using their Berries.", onPreStart(pokemon) { this.add('-ability', pokemon, 'Unnerve', pokemon.side.foe); }, @@ -4329,8 +3940,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 127, }, unseenfist: { - desc: "All of this Pokemon's moves that make contact bypass protection.", - shortDesc: "All contact moves hit through protection.", onModifyMove(move) { if (move.flags['contact']) delete move.flags['protect']; }, @@ -4339,7 +3948,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 260, }, victorystar: { - shortDesc: "This Pokemon and its allies' moves have their accuracy multiplied by 1.1.", onAllyModifyMove(move) { if (typeof move.accuracy === 'number') { move.accuracy *= 1.1; @@ -4350,7 +3958,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 162, }, vitalspirit: { - shortDesc: "This Pokemon cannot fall asleep. Gaining this Ability while asleep cures it.", onUpdate(pokemon) { if (pokemon.status === 'slp') { this.add('-activate', pokemon, 'ability: Vital Spirit'); @@ -4369,8 +3976,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 72, }, voltabsorb: { - desc: "This Pokemon is immune to Electric-type moves and restores 1/4 of its maximum HP, rounded down, when hit by an Electric-type move.", - shortDesc: "This Pokemon heals 1/4 of its max HP when hit by Electric moves; Electric immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Electric') { if (!this.heal(target.baseMaxhp / 4)) { @@ -4384,7 +3989,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 10, }, wanderingspirit: { - shortDesc: "Pokemon making contact with this Pokemon have their Ability swapped with this one.", onDamagingHit(damage, target, source, move) { if (target.volatiles['dynamax']) return; if (['illusion', 'neutralizinggas', 'wanderingspirit', 'wonderguard'].includes(source.ability)) return; @@ -4404,8 +4008,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 254, }, waterabsorb: { - desc: "This Pokemon is immune to Water-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Water-type move.", - shortDesc: "This Pokemon heals 1/4 of its max HP when hit by Water moves; Water immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Water') { if (!this.heal(target.baseMaxhp / 4)) { @@ -4419,8 +4021,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 11, }, waterbubble: { - desc: "This Pokemon's attacking stat is doubled while using a Water-type attack. If a Pokemon uses a Fire-type attack against this Pokemon, that Pokemon's attacking stat is halved when calculating the damage to this Pokemon. This Pokemon cannot be burned. Gaining this Ability while burned cures it.", - shortDesc: "This Pokemon's Water power is 2x; it can't be burned; Fire power against it is halved.", onSourceModifyAtkPriority: 5, onSourceModifyAtk(atk, attacker, defender, move) { if (move.type === 'Fire') { @@ -4461,7 +4061,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 199, }, watercompaction: { - shortDesc: "This Pokemon's Defense is raised 2 stages after it is damaged by a Water-type move.", onDamagingHit(damage, target, source, move) { if (move.type === 'Water') { this.boost({def: 2}); @@ -4472,7 +4071,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 195, }, waterveil: { - shortDesc: "This Pokemon cannot be burned. Gaining this Ability while burned cures it.", onUpdate(pokemon) { if (pokemon.status === 'brn') { this.add('-activate', pokemon, 'ability: Water Veil'); @@ -4491,8 +4089,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 41, }, weakarmor: { - desc: "If a physical attack hits this Pokemon, its Defense is lowered by 1 stage and its Speed is raised by 2 stages.", - shortDesc: "If a physical attack hits this Pokemon, Defense is lowered by 1, Speed is raised by 2.", onDamagingHit(damage, target, source, move) { if (move.category === 'Physical') { this.boost({def: -1, spe: 2}, target, target); @@ -4503,7 +4099,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 133, }, whitesmoke: { - shortDesc: "Prevents other Pokemon from lowering this Pokemon's stat stages.", onBoost(boost, target, source, effect) { if (source && target === source) return; let showMsg = false; @@ -4523,8 +4118,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 73, }, wimpout: { - desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage bringing it to 1/2 or less of its maximum HP, it immediately switches out to a chosen ally. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect. This effect applies to both direct and indirect damage, except Curse and Substitute on use, Belly Drum, Pain Split, and confusion damage.", - shortDesc: "This Pokemon switches out when it reaches 1/2 or less of its maximum HP.", onEmergencyExit(target) { if (!this.canSwitch(target.side) || target.forceSwitchFlag || target.switchFlag) return; for (const side of this.sides) { @@ -4540,7 +4133,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 193, }, wonderguard: { - shortDesc: "This Pokemon can only be damaged by supereffective moves and indirect damage.", onTryHit(target, source, move) { if (target === source || move.category === 'Status' || move.type === '???' || move.id === 'struggle') return; if (move.id === 'skydrop' && !source.volatiles['skydrop']) return; @@ -4559,8 +4151,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 25, }, wonderskin: { - desc: "All non-damaging moves that check accuracy have their accuracy changed to 50% when used on this Pokemon. This change is done before any other accuracy modifying effects.", - shortDesc: "Status moves with accuracy checks are 50% accurate when used on this Pokemon.", onModifyAccuracyPriority: 10, onModifyAccuracy(accuracy, target, source, move) { if (move.category === 'Status' && typeof accuracy === 'number') { @@ -4573,8 +4163,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 147, }, zenmode: { - desc: "If this Pokemon is a Darmanitan or Darmanitan-Galar, it changes to Zen Mode if it has 1/2 or less of its maximum HP at the end of a turn. If Darmanitan's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Standard Mode. This Ability cannot be removed or suppressed.", - shortDesc: "If Darmanitan, at end of turn changes Mode to Standard if > 1/2 max HP, else Zen.", onResidualOrder: 27, onResidual(pokemon) { if (pokemon.baseSpecies.baseSpecies !== 'Darmanitan' || pokemon.transformed) { @@ -4616,7 +4204,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // CAP mountaineer: { - shortDesc: "On switch-in, this Pokemon avoids all Rock-type attacks and Stealth Rock.", onDamage(damage, target, source, effect) { if (effect && effect.id === 'stealthrock') { return false; @@ -4634,8 +4221,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: -2, }, rebound: { - desc: "On switch-in, this Pokemon blocks certain status moves and instead uses the move against the original user.", - shortDesc: "On switch-in, blocks certain status moves and bounces them back to the user.", isNonstandard: "CAP", name: "Rebound", onTryHitPriority: 1, @@ -4668,8 +4253,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: -3, }, persistent: { - desc: "The duration of Gravity, Heal Block, Magic Room, Safeguard, Tailwind, Trick Room, and Wonder Room is increased by 2 turns if the effect is started by this Pokemon.", - shortDesc: "When used, Gravity/Heal Block/Safeguard/Tailwind/Room effects last 2 more turns.", isNonstandard: "CAP", name: "Persistent", // implemented in the corresponding move diff --git a/data/items.ts b/data/items.ts index 4129dc92da..371ffde8f7 100644 --- a/data/items.ts +++ b/data/items.ts @@ -12,7 +12,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 674, gen: 6, isNonstandard: "Past", - desc: "If held by an Abomasnow, this item allows it to Mega Evolve in battle.", }, absolite: { name: "Absolite", @@ -27,7 +26,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 677, gen: 6, isNonstandard: "Past", - desc: "If held by an Absol, this item allows it to Mega Evolve in battle.", }, absorbbulb: { name: "Absorb Bulb", @@ -45,7 +43,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 545, gen: 5, - desc: "Raises holder's Sp. Atk by 1 stage if hit by a Water-type attack. Single use.", }, adamantorb: { name: "Adamant Orb", @@ -63,7 +60,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 135, gen: 4, isNonstandard: "Past", - desc: "If held by a Dialga, its Steel- and Dragon-type attacks have 1.2x power.", }, adrenalineorb: { name: "Adrenaline Orb", @@ -81,7 +77,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 846, gen: 7, - desc: "Raises holder's Speed by 1 stage if it gets affected by Intimidate. Single use.", }, aerodactylite: { name: "Aerodactylite", @@ -96,7 +91,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 672, gen: 6, isNonstandard: "Past", - desc: "If held by an Aerodactyl, this item allows it to Mega Evolve in battle.", }, aggronite: { name: "Aggronite", @@ -111,7 +105,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 667, gen: 6, isNonstandard: "Past", - desc: "If held by an Aggron, this item allows it to Mega Evolve in battle.", }, aguavberry: { name: "Aguav Berry", @@ -137,7 +130,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 162, gen: 3, - desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", }, airballoon: { name: "Air Balloon", @@ -168,7 +160,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 541, gen: 5, - desc: "Holder is immune to Ground-type attacks. Pops when holder is hit.", }, alakazite: { name: "Alakazite", @@ -183,7 +174,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 679, gen: 6, isNonstandard: "Past", - desc: "If held by an Alakazam, this item allows it to Mega Evolve in battle.", }, aloraichiumz: { name: "Aloraichium Z", @@ -195,7 +185,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 803, gen: 7, isNonstandard: "Past", - desc: "If held by an Alolan Raichu with Thunderbolt, it can use Stoked Sparksurfer.", }, altarianite: { name: "Altarianite", @@ -210,7 +199,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 755, gen: 6, isNonstandard: "Past", - desc: "If held by an Altaria, this item allows it to Mega Evolve in battle.", }, ampharosite: { name: "Ampharosite", @@ -225,7 +213,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 658, gen: 6, isNonstandard: "Past", - desc: "If held by an Ampharos, this item allows it to Mega Evolve in battle.", }, apicotberry: { name: "Apicot Berry", @@ -245,7 +232,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 205, gen: 3, - desc: "Raises holder's Sp. Def by 1 stage when at 1/4 max HP or less. Single use.", }, armorfossil: { name: "Armor Fossil", @@ -256,7 +242,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 104, gen: 4, isNonstandard: "Past", - desc: "Can be revived into Shieldon.", }, aspearberry: { name: "Aspear Berry", @@ -278,7 +263,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 153, gen: 3, - desc: "Holder is cured if it is frozen. Single use.", }, assaultvest: { name: "Assault Vest", @@ -299,7 +283,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 640, gen: 6, - desc: "Holder's Sp. Def is 1.5x, but it can only select damaging moves.", }, audinite: { name: "Audinite", @@ -314,7 +297,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 757, gen: 6, isNonstandard: "Past", - desc: "If held by an Audino, this item allows it to Mega Evolve in battle.", }, babiriberry: { name: "Babiri Berry", @@ -339,7 +321,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 199, gen: 4, - desc: "Halves damage taken from a supereffective Steel-type attack. Single use.", }, banettite: { name: "Banettite", @@ -354,7 +335,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 668, gen: 6, isNonstandard: "Past", - desc: "If held by a Banette, this item allows it to Mega Evolve in battle.", }, beastball: { name: "Beast Ball", @@ -362,7 +342,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 851, gen: 7, isPokeball: true, - desc: "A special Poke Ball designed to catch Ultra Beasts.", }, beedrillite: { name: "Beedrillite", @@ -377,7 +356,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 770, gen: 6, isNonstandard: "Past", - desc: "If held by a Beedrill, this item allows it to Mega Evolve in battle.", }, belueberry: { name: "Belue Berry", @@ -391,7 +369,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 183, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, berryjuice: { name: "Berry Juice", @@ -408,7 +385,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 43, gen: 2, - desc: "Restores 20 HP when at 1/2 max HP or less. Single use.", }, berrysweet: { name: "Berry Sweet", @@ -418,7 +394,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1111, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, bigroot: { name: "Big Root", @@ -435,7 +410,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 296, gen: 4, - desc: "Holder gains 1.3x HP from draining/Aqua Ring/Ingrain/Leech Seed/Strength Sap.", }, bindingband: { name: "Binding Band", @@ -446,7 +420,6 @@ export const Items: {[itemid: string]: ItemData} = { // implemented in statuses num: 544, gen: 5, - desc: "Holder's partial-trapping moves deal 1/6 max HP per turn instead of 1/8.", }, blackbelt: { name: "Black Belt", @@ -462,7 +435,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 241, gen: 2, - desc: "Holder's Fighting-type attacks have 1.2x power.", }, blacksludge: { name: "Black Sludge", @@ -490,7 +462,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 281, gen: 4, - desc: "Each turn, if holder is a Poison type, restores 1/16 max HP; loses 1/8 if not.", }, blackglasses: { name: "Black Glasses", @@ -506,7 +477,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 240, gen: 2, - desc: "Holder's Dark-type attacks have 1.2x power.", }, blastoisinite: { name: "Blastoisinite", @@ -521,7 +491,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 661, gen: 6, isNonstandard: "Past", - desc: "If held by a Blastoise, this item allows it to Mega Evolve in battle.", }, blazikenite: { name: "Blazikenite", @@ -536,7 +505,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 664, gen: 6, isNonstandard: "Past", - desc: "If held by a Blaziken, this item allows it to Mega Evolve in battle.", }, blueorb: { name: "Blue Orb", @@ -557,7 +525,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 535, gen: 6, isNonstandard: "Past", - desc: "If held by a Kyogre, this item triggers its Primal Reversion in battle.", }, blukberry: { name: "Bluk Berry", @@ -570,7 +537,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 165, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, blunderpolicy: { name: "Blunder Policy", @@ -581,7 +547,6 @@ export const Items: {[itemid: string]: ItemData} = { // Item activation located in scripts.js num: 1121, gen: 8, - desc: "If the holder misses due to accuracy, its Speed is raised by 2 stages. Single use.", }, bottlecap: { name: "Bottle Cap", @@ -591,7 +556,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 795, gen: 7, - desc: "Used for Hyper Training. One of a Pokemon's stats is calculated with an IV of 31.", }, brightpowder: { name: "Bright Powder", @@ -607,7 +571,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 213, gen: 2, - desc: "The accuracy of attacks against the holder is 0.9x.", }, buggem: { name: "Bug Gem", @@ -622,7 +585,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 558, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Bug-type attack will have 1.3x power. Single use.", }, bugmemory: { name: "Bug Memory", @@ -638,7 +600,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Bug"], num: 909, gen: 7, - desc: "Holder's Multi-Attack is Bug type.", }, buginiumz: { name: "Buginium Z", @@ -651,7 +612,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 787, gen: 7, isNonstandard: "Past", - desc: "If holder has a Bug move, this item allows it to use a Bug Z-Move.", }, burndrive: { name: "Burn Drive", @@ -668,7 +628,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 118, gen: 5, isNonstandard: "Past", - desc: "Holder's Techno Blast is Fire type.", }, cameruptite: { name: "Cameruptite", @@ -683,7 +642,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 767, gen: 6, isNonstandard: "Past", - desc: "If held by a Camerupt, this item allows it to Mega Evolve in battle.", }, cellbattery: { name: "Cell Battery", @@ -701,7 +659,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 546, gen: 5, - desc: "Raises holder's Attack by 1 if hit by an Electric-type attack. Single use.", }, charcoal: { name: "Charcoal", @@ -717,7 +674,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 249, gen: 2, - desc: "Holder's Fire-type attacks have 1.2x power.", }, charizarditex: { name: "Charizardite X", @@ -732,7 +688,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 660, gen: 6, isNonstandard: "Past", - desc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", }, charizarditey: { name: "Charizardite Y", @@ -747,7 +702,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 678, gen: 6, isNonstandard: "Past", - desc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", }, chartiberry: { name: "Charti Berry", @@ -772,7 +726,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 195, gen: 4, - desc: "Halves damage taken from a supereffective Rock-type attack. Single use.", }, cheriberry: { name: "Cheri Berry", @@ -794,7 +747,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 149, gen: 3, - desc: "Holder cures itself if it is paralyzed. Single use.", }, cherishball: { name: "Cherish Ball", @@ -802,7 +754,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 16, gen: 4, isPokeball: true, - desc: "A rare Poke Ball that has been crafted to commemorate an occasion.", }, chestoberry: { name: "Chesto Berry", @@ -824,7 +775,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 150, gen: 3, - desc: "Holder wakes up if it is asleep. Single use.", }, chilanberry: { name: "Chilan Berry", @@ -849,7 +799,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 200, gen: 4, - desc: "Halves damage taken from a Normal-type attack. Single use.", }, chilldrive: { name: "Chill Drive", @@ -866,7 +815,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 119, gen: 5, isNonstandard: "Past", - desc: "Holder's Techno Blast is Ice type.", }, chippedpot: { name: "Chipped Pot", @@ -876,7 +824,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1254, gen: 8, - desc: "Evolves Sinistea-Antique into Polteageist-Antique when used.", }, choiceband: { name: "Choice Band", @@ -901,7 +848,6 @@ export const Items: {[itemid: string]: ItemData} = { isChoice: true, num: 220, gen: 3, - desc: "Holder's Attack is 1.5x, but it can only select the first move it executes.", }, choicescarf: { name: "Choice Scarf", @@ -925,7 +871,6 @@ export const Items: {[itemid: string]: ItemData} = { isChoice: true, num: 287, gen: 4, - desc: "Holder's Speed is 1.5x, but it can only select the first move it executes.", }, choicespecs: { name: "Choice Specs", @@ -950,7 +895,6 @@ export const Items: {[itemid: string]: ItemData} = { isChoice: true, num: 297, gen: 4, - desc: "Holder's Sp. Atk is 1.5x, but it can only select the first move it executes.", }, chopleberry: { name: "Chople Berry", @@ -975,7 +919,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 189, gen: 4, - desc: "Halves damage taken from a supereffective Fighting-type attack. Single use.", }, clawfossil: { name: "Claw Fossil", @@ -986,7 +929,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 100, gen: 3, isNonstandard: "Past", - desc: "Can be revived into Anorith.", }, cloversweet: { name: "Clover Sweet", @@ -996,7 +938,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1112, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, cobaberry: { name: "Coba Berry", @@ -1021,7 +962,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 192, gen: 4, - desc: "Halves damage taken from a supereffective Flying-type attack. Single use.", }, colburberry: { name: "Colbur Berry", @@ -1046,7 +986,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 198, gen: 4, - desc: "Halves damage taken from a supereffective Dark-type attack. Single use.", }, cornnberry: { name: "Cornn Berry", @@ -1060,7 +999,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 175, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, coverfossil: { name: "Cover Fossil", @@ -1071,7 +1009,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 572, gen: 5, isNonstandard: "Past", - desc: "Can be revived into Tirtouga.", }, crackedpot: { name: "Cracked Pot", @@ -1081,7 +1018,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1253, gen: 8, - desc: "Evolves Sinistea into Polteageist when used.", }, custapberry: { name: "Custap Berry", @@ -1107,7 +1043,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 210, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder moves first in its priority bracket when at 1/4 max HP or less. Single use.", }, damprock: { name: "Damp Rock", @@ -1117,7 +1052,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 285, gen: 4, - desc: "Holder's use of Rain Dance lasts 8 turns instead of 5.", }, darkgem: { name: "Dark Gem", @@ -1132,7 +1066,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 562, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Dark-type attack will have 1.3x power. Single use.", }, darkmemory: { name: "Dark Memory", @@ -1148,7 +1081,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Dark"], num: 919, gen: 7, - desc: "Holder's Multi-Attack is Dark type.", }, darkiniumz: { name: "Darkinium Z", @@ -1161,7 +1093,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 791, gen: 7, isNonstandard: "Past", - desc: "If holder has a Dark move, this item allows it to use a Dark Z-Move.", }, dawnstone: { name: "Dawn Stone", @@ -1171,8 +1102,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 109, gen: 4, - desc: "Evolves male Kirlia into Gallade and female Snorunt into Froslass when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, decidiumz: { name: "Decidium Z", @@ -1184,7 +1113,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 798, gen: 7, isNonstandard: "Past", - desc: "If held by a Decidueye with Spirit Shackle, it can use Sinister Arrow Raid.", }, deepseascale: { name: "Deep Sea Scale", @@ -1201,8 +1129,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Clamperl"], num: 227, gen: 3, - desc: "If held by a Clamperl, its Sp. Def is doubled. Evolves Clamperl into Gorebyss when traded.", - shortDesc: "If held by a Clamperl, its Sp. Def is doubled.", }, deepseatooth: { name: "Deep Sea Tooth", @@ -1219,8 +1145,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Clamperl"], num: 226, gen: 3, - desc: "If held by a Clamperl, its Sp. Atk is doubled. Evolves Clamperl into Huntail when traded.", - shortDesc: "If held by a Clamperl, its Sp. Atk is doubled.", }, destinyknot: { name: "Destiny Knot", @@ -1236,7 +1160,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 280, gen: 4, - desc: "If holder becomes infatuated, the other Pokemon also becomes infatuated.", }, diancite: { name: "Diancite", @@ -1251,7 +1174,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 764, gen: 6, isNonstandard: "Past", - desc: "If held by a Diancie, this item allows it to Mega Evolve in battle.", }, diveball: { name: "Dive Ball", @@ -1259,7 +1181,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 7, gen: 3, isPokeball: true, - desc: "A Poke Ball that works especially well on Pokemon that live underwater.", }, domefossil: { name: "Dome Fossil", @@ -1270,7 +1191,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 102, gen: 3, isNonstandard: "Past", - desc: "Can be revived into Kabuto.", }, dousedrive: { name: "Douse Drive", @@ -1287,7 +1207,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 116, gen: 5, isNonstandard: "Past", - desc: "Holder's Techno Blast is Water type.", }, dracoplate: { name: "Draco Plate", @@ -1309,7 +1228,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 311, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Dragon-type attacks have 1.2x power. Judgment is Dragon type.", }, dragonfang: { name: "Dragon Fang", @@ -1325,7 +1243,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 250, gen: 2, - desc: "Holder's Dragon-type attacks have 1.2x power.", }, dragongem: { name: "Dragon Gem", @@ -1340,7 +1257,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 561, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Dragon-type attack will have 1.3x power. Single use.", }, dragonmemory: { name: "Dragon Memory", @@ -1356,7 +1272,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Dragon"], num: 918, gen: 7, - desc: "Holder's Multi-Attack is Dragon type.", }, dragonscale: { name: "Dragon Scale", @@ -1366,7 +1281,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 250, gen: 2, - desc: "Evolves Seadra into Kingdra when traded.", }, dragoniumz: { name: "Dragonium Z", @@ -1379,7 +1293,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 790, gen: 7, isNonstandard: "Past", - desc: "If holder has a Dragon move, this item allows it to use a Dragon Z-Move.", }, dreadplate: { name: "Dread Plate", @@ -1401,7 +1314,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 312, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Dark-type attacks have 1.2x power. Judgment is Dark type.", }, dreamball: { name: "Dream Ball", @@ -1409,7 +1321,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 576, gen: 5, isPokeball: true, - desc: "A Poke Ball that makes it easier to catch wild Pokémon while they're asleep.", }, dubiousdisc: { name: "Dubious Disc", @@ -1419,7 +1330,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 324, gen: 4, - desc: "Evolves Porygon2 into Porygon-Z when traded.", }, durinberry: { name: "Durin Berry", @@ -1433,7 +1343,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 182, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, duskball: { name: "Dusk Ball", @@ -1441,7 +1350,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 13, gen: 4, isPokeball: true, - desc: "A Poke Ball that makes it easier to catch wild Pokemon at night or in caves.", }, duskstone: { name: "Dusk Stone", @@ -1451,8 +1359,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 108, gen: 4, - desc: "Evolves Murkrow into Honchkrow, Misdreavus into Mismagius, Lampent into Chandelure, and Doublade into Aegislash when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, earthplate: { name: "Earth Plate", @@ -1474,7 +1380,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 305, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Ground-type attacks have 1.2x power. Judgment is Ground type.", }, eeviumz: { name: "Eevium Z", @@ -1486,7 +1391,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 805, gen: 7, isNonstandard: "Past", - desc: "If held by an Eevee with Last Resort, it can use Extreme Evoboost.", }, ejectbutton: { name: "Eject Button", @@ -1509,7 +1413,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 547, gen: 5, - desc: "If holder survives a hit, it immediately switches out to a chosen ally. Single use.", }, ejectpack: { name: "Eject Pack", @@ -1538,7 +1441,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1119, gen: 8, - desc: "If the holder's stat stages are lowered, it switches to a chosen ally. Single use.", }, electirizer: { name: "Electirizer", @@ -1548,7 +1450,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 322, gen: 4, - desc: "Evolves Electabuzz into Electivire when traded.", }, electricgem: { name: "Electric Gem", @@ -1564,7 +1465,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 550, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Electric-type attack will have 1.3x power. Single use.", }, electricmemory: { name: "Electric Memory", @@ -1580,7 +1480,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Electric"], num: 915, gen: 7, - desc: "Holder's Multi-Attack is Electric type.", }, electricseed: { name: "Electric Seed", @@ -1604,7 +1503,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 881, gen: 7, - desc: "If the terrain is Electric Terrain, raises holder's Defense by 1 stage. Single use.", }, electriumz: { name: "Electrium Z", @@ -1617,7 +1515,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 779, gen: 7, isNonstandard: "Past", - desc: "If holder has an Electric move, this item allows it to use an Electric Z-Move.", }, energypowder: { name: "Energy Powder", @@ -1627,7 +1524,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 34, gen: 2, - desc: "Restores 60 HP to one Pokemon.", }, enigmaberry: { name: "Enigma Berry", @@ -1651,7 +1547,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 208, gen: 3, isNonstandard: "Unobtainable", - desc: "Restores 1/4 max HP after holder is hit by a supereffective move. Single use.", }, eviolite: { name: "Eviolite", @@ -1673,7 +1568,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 538, gen: 5, - desc: "If holder's species can evolve, its Defense and Sp. Def are 1.5x.", }, expertbelt: { name: "Expert Belt", @@ -1688,7 +1582,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 268, gen: 4, - desc: "Holder's attacks that are super effective against the target do 1.2x damage.", }, fairiumz: { name: "Fairium Z", @@ -1701,7 +1594,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 793, gen: 7, isNonstandard: "Past", - desc: "If holder has a Fairy move, this item allows it to use a Fairy Z-Move.", }, fairygem: { name: "Fairy Gem", @@ -1716,7 +1608,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 715, gen: 6, isNonstandard: "Past", - desc: "Holder's first successful Fairy-type attack will have 1.3x power. Single use.", }, fairymemory: { name: "Fairy Memory", @@ -1732,7 +1623,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Fairy"], num: 920, gen: 7, - desc: "Holder's Multi-Attack is Fairy type.", }, fastball: { name: "Fast Ball", @@ -1740,7 +1630,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 492, gen: 2, isPokeball: true, - desc: "A Poke Ball that makes it easier to catch Pokemon which are quick to run away.", }, fightinggem: { name: "Fighting Gem", @@ -1755,7 +1644,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 553, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Fighting-type attack will have 1.3x power. Single use.", }, fightingmemory: { name: "Fighting Memory", @@ -1771,7 +1659,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Fighting"], num: 904, gen: 7, - desc: "Holder's Multi-Attack is Fighting type.", }, fightiniumz: { name: "Fightinium Z", @@ -1784,7 +1671,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 782, gen: 7, isNonstandard: "Past", - desc: "If holder has a Fighting move, this item allows it to use a Fighting Z-Move.", }, figyberry: { name: "Figy Berry", @@ -1810,7 +1696,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 159, gen: 3, - desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", }, firegem: { name: "Fire Gem", @@ -1826,7 +1711,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 548, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Fire-type attack will have 1.3x power. Single use.", }, firememory: { name: "Fire Memory", @@ -1842,7 +1726,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Fire"], num: 912, gen: 7, - desc: "Holder's Multi-Attack is Fire type.", }, firestone: { name: "Fire Stone", @@ -1852,8 +1735,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 82, gen: 1, - desc: "Evolves Vulpix into Ninetales, Growlithe into Arcanine, Eevee into Flareon, and Pansear into Simisear when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, firiumz: { name: "Firium Z", @@ -1866,7 +1747,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 777, gen: 7, isNonstandard: "Past", - desc: "If holder has a Fire move, this item allows it to use a Fire Z-Move.", }, fistplate: { name: "Fist Plate", @@ -1888,7 +1768,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 303, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Fighting-type attacks have 1.2x power. Judgment is Fighting type.", }, flameorb: { name: "Flame Orb", @@ -1904,7 +1783,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 273, gen: 4, - desc: "At the end of every turn, this item attempts to burn the holder.", }, flameplate: { name: "Flame Plate", @@ -1926,7 +1804,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 298, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Fire-type attacks have 1.2x power. Judgment is Fire type.", }, floatstone: { name: "Float Stone", @@ -1939,7 +1816,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 539, gen: 5, - desc: "Holder's weight is halved.", }, flowersweet: { name: "Flower Sweet", @@ -1949,7 +1825,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1113, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, flyinggem: { name: "Flying Gem", @@ -1964,7 +1839,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 556, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Flying-type attack will have 1.3x power. Single use.", }, flyingmemory: { name: "Flying Memory", @@ -1980,7 +1854,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Flying"], num: 905, gen: 7, - desc: "Holder's Multi-Attack is Flying type.", }, flyiniumz: { name: "Flyinium Z", @@ -1993,7 +1866,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 785, gen: 7, isNonstandard: "Past", - desc: "If holder has a Flying move, this item allows it to use a Flying Z-Move.", }, focusband: { name: "Focus Band", @@ -2009,7 +1881,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 230, gen: 2, - desc: "Holder has a 10% chance to survive an attack that would KO it with 1 HP.", }, focussash: { name: "Focus Sash", @@ -2026,7 +1897,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 275, gen: 4, - desc: "If holder's HP is full, will survive an attack that would KO it with 1 HP. Single use.", }, fossilizedbird: { name: "Fossilized Bird", @@ -2036,7 +1906,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1105, gen: 8, - desc: "Can revive into Arctovish with Fossilized Fish or Arctozolt with Fossilized Dino.", }, fossilizeddino: { name: "Fossilized Dino", @@ -2046,7 +1915,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1108, gen: 8, - desc: "Can revive into Dracozolt with Fossilized Drake or Arctozolt with Fossilized Bird.", }, fossilizeddrake: { name: "Fossilized Drake", @@ -2056,7 +1924,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1107, gen: 8, - desc: "Can revive into Dracozolt with Fossilized Dino or Dracovish with Fossilized Fish.", }, fossilizedfish: { name: "Fossilized Fish", @@ -2066,7 +1933,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1106, gen: 8, - desc: "Can revive into Dracovish with Fossilized Drake or Arctovish with Fossilized Bird.", }, friendball: { name: "Friend Ball", @@ -2074,7 +1940,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 497, gen: 2, isPokeball: true, - desc: "A Poke Ball that makes caught Pokemon more friendly.", }, fullincense: { name: "Full Incense", @@ -2085,7 +1950,6 @@ export const Items: {[itemid: string]: ItemData} = { onFractionalPriority: -0.1, num: 316, gen: 4, - desc: "Holder moves last in its priority bracket.", }, galladite: { name: "Galladite", @@ -2100,7 +1964,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 756, gen: 6, isNonstandard: "Past", - desc: "If held by a Gallade, this item allows it to Mega Evolve in battle.", }, ganlonberry: { name: "Ganlon Berry", @@ -2120,7 +1983,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 202, gen: 3, - desc: "Raises holder's Defense by 1 stage when at 1/4 max HP or less. Single use.", }, garchompite: { name: "Garchompite", @@ -2135,7 +1997,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 683, gen: 6, isNonstandard: "Past", - desc: "If held by a Garchomp, this item allows it to Mega Evolve in battle.", }, gardevoirite: { name: "Gardevoirite", @@ -2150,7 +2011,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 657, gen: 6, isNonstandard: "Past", - desc: "If held by a Gardevoir, this item allows it to Mega Evolve in battle.", }, gengarite: { name: "Gengarite", @@ -2165,7 +2025,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 656, gen: 6, isNonstandard: "Past", - desc: "If held by a Gengar, this item allows it to Mega Evolve in battle.", }, ghostgem: { name: "Ghost Gem", @@ -2180,7 +2039,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 560, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Ghost-type attack will have 1.3x power. Single use.", }, ghostmemory: { name: "Ghost Memory", @@ -2196,7 +2054,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Ghost"], num: 910, gen: 7, - desc: "Holder's Multi-Attack is Ghost type.", }, ghostiumz: { name: "Ghostium Z", @@ -2209,7 +2066,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 789, gen: 7, isNonstandard: "Past", - desc: "If holder has a Ghost move, this item allows it to use a Ghost Z-Move.", }, glalitite: { name: "Glalitite", @@ -2224,7 +2080,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 763, gen: 6, isNonstandard: "Past", - desc: "If held by a Glalie, this item allows it to Mega Evolve in battle.", }, goldbottlecap: { name: "Gold Bottle Cap", @@ -2234,7 +2089,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 796, gen: 7, - desc: "Used for Hyper Training. All of a Pokemon's stats are calculated with an IV of 31.", }, grassgem: { name: "Grass Gem", @@ -2250,7 +2104,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 551, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Grass-type attack will have 1.3x power. Single use.", }, grassmemory: { name: "Grass Memory", @@ -2266,7 +2119,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Grass"], num: 914, gen: 7, - desc: "Holder's Multi-Attack is Grass type.", }, grassiumz: { name: "Grassium Z", @@ -2279,7 +2131,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 780, gen: 7, isNonstandard: "Past", - desc: "If holder has a Grass move, this item allows it to use a Grass Z-Move.", }, grassyseed: { name: "Grassy Seed", @@ -2303,7 +2154,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 884, gen: 7, - desc: "If the terrain is Grassy Terrain, raises holder's Defense by 1 stage. Single use.", }, greatball: { name: "Great Ball", @@ -2311,7 +2161,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 3, gen: 1, isPokeball: true, - desc: "A high-performance Ball that provides a higher catch rate than a Poke Ball.", }, grepaberry: { name: "Grepa Berry", @@ -2324,7 +2173,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 173, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, gripclaw: { name: "Grip Claw", @@ -2335,7 +2183,6 @@ export const Items: {[itemid: string]: ItemData} = { // implemented in statuses num: 286, gen: 4, - desc: "Holder's partial-trapping moves always last 7 turns.", }, griseousorb: { name: "Griseous Orb", @@ -2360,7 +2207,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 112, gen: 4, isNonstandard: "Past", - desc: "If held by a Giratina, its Ghost- and Dragon-type attacks have 1.2x power.", }, groundgem: { name: "Ground Gem", @@ -2375,7 +2221,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 555, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Ground-type attack will have 1.3x power. Single use.", }, groundmemory: { name: "Ground Memory", @@ -2391,7 +2236,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Ground"], num: 907, gen: 7, - desc: "Holder's Multi-Attack is Ground type.", }, groundiumz: { name: "Groundium Z", @@ -2404,7 +2248,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 784, gen: 7, isNonstandard: "Past", - desc: "If holder has a Ground move, this item allows it to use a Ground Z-Move.", }, gyaradosite: { name: "Gyaradosite", @@ -2419,7 +2262,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 676, gen: 6, isNonstandard: "Past", - desc: "If held by a Gyarados, this item allows it to Mega Evolve in battle.", }, habanberry: { name: "Haban Berry", @@ -2444,7 +2286,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 197, gen: 4, - desc: "Halves damage taken from a supereffective Dragon-type attack. Single use.", }, hardstone: { name: "Hard Stone", @@ -2460,7 +2301,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 238, gen: 2, - desc: "Holder's Rock-type attacks have 1.2x power.", }, healball: { name: "Heal Ball", @@ -2468,7 +2308,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 14, gen: 4, isPokeball: true, - desc: "A remedial Poke Ball that restores the caught Pokemon's HP and status problem.", }, heatrock: { name: "Heat Rock", @@ -2478,7 +2317,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 284, gen: 4, - desc: "Holder's use of Sunny Day lasts 8 turns instead of 5.", }, heavyball: { name: "Heavy Ball", @@ -2486,7 +2324,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 495, gen: 2, isPokeball: true, - desc: "A Poke Ball for catching very heavy Pokemon.", }, heavydutyboots: { name: "Heavy-Duty Boots", @@ -2496,7 +2333,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1120, gen: 8, - desc: "When switching in, the holder is unaffected by hazards on its side of the field.", // Hazard Immunity implemented in moves.js }, helixfossil: { @@ -2508,7 +2344,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 101, gen: 3, isNonstandard: "Past", - desc: "Can be revived into Omanyte.", }, heracronite: { name: "Heracronite", @@ -2523,7 +2358,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 680, gen: 6, isNonstandard: "Past", - desc: "If held by a Heracross, this item allows it to Mega Evolve in battle.", }, hondewberry: { name: "Hondew Berry", @@ -2536,7 +2370,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 172, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, houndoominite: { name: "Houndoominite", @@ -2551,7 +2384,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 666, gen: 6, isNonstandard: "Past", - desc: "If held by a Houndoom, this item allows it to Mega Evolve in battle.", }, iapapaberry: { name: "Iapapa Berry", @@ -2577,7 +2409,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 163, gen: 3, - desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", }, icegem: { name: "Ice Gem", @@ -2592,7 +2423,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 552, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Ice-type attack will have 1.3x power. Single use.", }, icememory: { name: "Ice Memory", @@ -2608,7 +2438,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Ice"], num: 917, gen: 7, - desc: "Holder's Multi-Attack is Ice type.", }, icestone: { name: "Ice Stone", @@ -2618,8 +2447,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 849, gen: 7, - desc: "Evolves Alolan Sandshrew into Alolan Sandslash, Alolan Vulpix into Alolan Ninetales, Eevee into Glaceon, and Galarian Darumaka into Galarian Darmanitan when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, icicleplate: { name: "Icicle Plate", @@ -2641,7 +2468,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 302, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Ice-type attacks have 1.2x power. Judgment is Ice type.", }, iciumz: { name: "Icium Z", @@ -2654,7 +2480,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 781, gen: 7, isNonstandard: "Past", - desc: "If holder has an Ice move, this item allows it to use an Ice Z-Move.", }, icyrock: { name: "Icy Rock", @@ -2664,7 +2489,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 282, gen: 4, - desc: "Holder's use of Hail lasts 8 turns instead of 5.", }, inciniumz: { name: "Incinium Z", @@ -2676,7 +2500,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 799, gen: 7, isNonstandard: "Past", - desc: "If held by an Incineroar with Darkest Lariat, it can use Malicious Moonsault.", }, insectplate: { name: "Insect Plate", @@ -2698,7 +2521,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 308, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Bug-type attacks have 1.2x power. Judgment is Bug type.", }, ironball: { name: "Iron Ball", @@ -2717,7 +2539,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 278, gen: 4, - desc: "Holder is grounded, Speed halved. If Flying type, takes neutral Ground damage.", }, ironplate: { name: "Iron Plate", @@ -2739,7 +2560,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 313, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Steel-type attacks have 1.2x power. Judgment is Steel type.", }, jabocaberry: { name: "Jaboca Berry", @@ -2760,7 +2580,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 211, gen: 4, isNonstandard: "Unobtainable", - desc: "If holder is hit by a physical move, attacker loses 1/8 of its max HP. Single use.", }, jawfossil: { name: "Jaw Fossil", @@ -2771,7 +2590,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 710, gen: 6, isNonstandard: "Past", - desc: "Can be revived into Tyrunt.", }, kasibberry: { name: "Kasib Berry", @@ -2796,7 +2614,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 196, gen: 4, - desc: "Halves damage taken from a supereffective Ghost-type attack. Single use.", }, kebiaberry: { name: "Kebia Berry", @@ -2821,7 +2638,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 190, gen: 4, - desc: "Halves damage taken from a supereffective Poison-type attack. Single use.", }, keeberry: { name: "Kee Berry", @@ -2842,7 +2658,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 687, gen: 6, - desc: "Raises holder's Defense by 1 stage after it is hit by a physical attack. Single use.", }, kelpsyberry: { name: "Kelpsy Berry", @@ -2855,7 +2670,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 170, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, kangaskhanite: { name: "Kangaskhanite", @@ -2870,7 +2684,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 675, gen: 6, isNonstandard: "Past", - desc: "If held by a Kangaskhan, this item allows it to Mega Evolve in battle.", }, kingsrock: { name: "King's Rock", @@ -2894,8 +2707,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 221, gen: 2, - desc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch. Evolves Poliwhirl into Politoed and Slowpoke into Slowking when traded.", - shortDesc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch.", }, kommoniumz: { name: "Kommonium Z", @@ -2907,7 +2718,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 926, gen: 7, isNonstandard: "Past", - desc: "If held by a Kommo-o with Clanging Scales, it can use Clangorous Soulblaze.", }, laggingtail: { name: "Lagging Tail", @@ -2918,7 +2728,6 @@ export const Items: {[itemid: string]: ItemData} = { onFractionalPriority: -0.1, num: 279, gen: 4, - desc: "Holder moves last in its priority bracket.", }, lansatberry: { name: "Lansat Berry", @@ -2938,7 +2747,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 206, gen: 3, - desc: "Holder gains the Focus Energy effect when at 1/4 max HP or less. Single use.", }, latiasite: { name: "Latiasite", @@ -2953,7 +2761,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 684, gen: 6, isNonstandard: "Past", - desc: "If held by a Latias, this item allows it to Mega Evolve in battle.", }, latiosite: { name: "Latiosite", @@ -2968,7 +2775,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 685, gen: 6, isNonstandard: "Past", - desc: "If held by a Latios, this item allows it to Mega Evolve in battle.", }, laxincense: { name: "Lax Incense", @@ -2984,7 +2790,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 255, gen: 3, - desc: "The accuracy of attacks against the holder is 0.9x.", }, leafstone: { name: "Leaf Stone", @@ -2994,8 +2799,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 85, gen: 1, - desc: "Evolves Gloom into Vileplume, Weepinbell into Victreebel, Exeggcute into Exeggutor or Alolan Exeggutor, Eevee into Leafeon, Nuzleaf into Shiftry, and Pansage into Simisage when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, leek: { name: "Leek", @@ -3011,7 +2814,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Farfetch\u2019d", "Sirfetch\u2019d"], num: 259, gen: 8, - desc: "If held by a Farfetch\u2019d or Sirfetch\u2019d, its critical hit ratio is raised by 2 stages.", }, leftovers: { name: "Leftovers", @@ -3031,7 +2833,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 234, gen: 2, - desc: "At the end of every turn, holder restores 1/16 of its max HP.", }, leppaberry: { name: "Leppa Berry", @@ -3057,7 +2858,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 154, gen: 3, - desc: "Restores 10 PP to the first of the holder's moves to reach 0 PP. Single use.", }, levelball: { name: "Level Ball", @@ -3065,7 +2865,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 493, gen: 2, isPokeball: true, - desc: "A Poke Ball for catching Pokemon that are a lower level than your own.", }, liechiberry: { name: "Liechi Berry", @@ -3085,7 +2884,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 201, gen: 3, - desc: "Raises holder's Attack by 1 stage when at 1/4 max HP or less. Single use.", }, lifeorb: { name: "Life Orb", @@ -3103,7 +2901,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 270, gen: 4, - desc: "Holder's attacks do 1.3x damage, and it loses 1/10 its max HP after the attack.", }, lightball: { name: "Light Ball", @@ -3127,7 +2924,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Pikachu"], num: 236, gen: 2, - desc: "If held by a Pikachu, its Attack and Sp. Atk are doubled.", }, lightclay: { name: "Light Clay", @@ -3138,7 +2934,6 @@ export const Items: {[itemid: string]: ItemData} = { // implemented in the corresponding thing num: 269, gen: 4, - desc: "Holder's use of Aurora Veil, Light Screen, or Reflect lasts 8 turns instead of 5.", }, lopunnite: { name: "Lopunnite", @@ -3153,7 +2948,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 768, gen: 6, isNonstandard: "Past", - desc: "If held by a Lopunny, this item allows it to Mega Evolve in battle.", }, loveball: { name: "Love Ball", @@ -3161,7 +2955,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 496, gen: 2, isPokeball: true, - desc: "Poke Ball for catching Pokemon that are the opposite gender of your Pokemon.", }, lovesweet: { name: "Love Sweet", @@ -3171,7 +2964,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1110, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, lucarionite: { name: "Lucarionite", @@ -3186,7 +2978,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 673, gen: 6, isNonstandard: "Past", - desc: "If held by a Lucario, this item allows it to Mega Evolve in battle.", }, luckypunch: { name: "Lucky Punch", @@ -3203,7 +2994,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 256, gen: 2, isNonstandard: "Past", - desc: "If held by a Chansey, its critical hit ratio is raised by 2 stages.", }, lumberry: { name: "Lum Berry", @@ -3227,7 +3017,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 157, gen: 3, - desc: "Holder cures itself if it is confused or has a major status condition. Single use.", }, luminousmoss: { name: "Luminous Moss", @@ -3245,7 +3034,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 648, gen: 6, - desc: "Raises holder's Sp. Def by 1 stage if hit by a Water-type attack. Single use.", }, lunaliumz: { name: "Lunalium Z", @@ -3257,7 +3045,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 922, gen: 7, isNonstandard: "Past", - desc: "Lunala or Dawn Wings Necrozma with Moongeist Beam can use a special Z-Move.", }, lureball: { name: "Lure Ball", @@ -3265,7 +3052,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 494, gen: 2, isPokeball: true, - desc: "A Poke Ball for catching Pokemon hooked by a Rod when fishing.", }, lustrousorb: { name: "Lustrous Orb", @@ -3283,7 +3069,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 136, gen: 4, isNonstandard: "Past", - desc: "If held by a Palkia, its Water- and Dragon-type attacks have 1.2x power.", }, luxuryball: { name: "Luxury Ball", @@ -3291,7 +3076,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 11, gen: 3, isPokeball: true, - desc: "A comfortable Poke Ball that makes a caught wild Pokemon quickly grow friendly.", }, lycaniumz: { name: "Lycanium Z", @@ -3303,7 +3087,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 925, gen: 7, isNonstandard: "Past", - desc: "If held by a Lycanroc forme with Stone Edge, it can use Splintered Stormshards.", }, machobrace: { name: "Macho Brace", @@ -3317,7 +3100,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 215, gen: 3, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, magmarizer: { name: "Magmarizer", @@ -3327,7 +3109,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 323, gen: 4, - desc: "Evolves Magmar into Magmortar when traded.", }, magnet: { name: "Magnet", @@ -3343,7 +3124,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 242, gen: 2, - desc: "Holder's Electric-type attacks have 1.2x power.", }, magoberry: { name: "Mago Berry", @@ -3369,7 +3149,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 161, gen: 3, - desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", }, magostberry: { name: "Magost Berry", @@ -3383,7 +3162,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 176, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, mail: { name: "Mail", @@ -3395,7 +3173,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 0, gen: 2, isNonstandard: "Past", - desc: "Cannot be given to or taken from a Pokemon, except by Covet/Knock Off/Thief.", }, manectite: { name: "Manectite", @@ -3410,7 +3187,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 682, gen: 6, isNonstandard: "Past", - desc: "If held by a Manectric, this item allows it to Mega Evolve in battle.", }, marangaberry: { name: "Maranga Berry", @@ -3430,7 +3206,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 688, gen: 6, - desc: "Raises holder's Sp. Def by 1 stage after it is hit by a special attack. Single use.", }, marshadiumz: { name: "Marshadium Z", @@ -3442,7 +3217,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 802, gen: 7, isNonstandard: "Past", - desc: "If held by Marshadow with Spectral Thief, it can use Soul-Stealing 7-Star Strike.", }, masterball: { name: "Master Ball", @@ -3450,7 +3224,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 1, gen: 1, isPokeball: true, - desc: "The best Ball with the ultimate performance. It will catch any wild Pokemon.", }, mawilite: { name: "Mawilite", @@ -3465,7 +3238,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 681, gen: 6, isNonstandard: "Past", - desc: "If held by a Mawile, this item allows it to Mega Evolve in battle.", }, meadowplate: { name: "Meadow Plate", @@ -3487,7 +3259,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 301, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Grass-type attacks have 1.2x power. Judgment is Grass type.", }, medichamite: { name: "Medichamite", @@ -3502,7 +3273,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 665, gen: 6, isNonstandard: "Past", - desc: "If held by a Medicham, this item allows it to Mega Evolve in battle.", }, mentalherb: { name: "Mental Herb", @@ -3541,7 +3311,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 219, gen: 3, - desc: "Cures holder of Attract, Disable, Encore, Heal Block, Taunt, Torment. Single use.", }, metagrossite: { name: "Metagrossite", @@ -3556,7 +3325,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 758, gen: 6, isNonstandard: "Past", - desc: "If held by a Metagross, this item allows it to Mega Evolve in battle.", }, metalcoat: { name: "Metal Coat", @@ -3572,8 +3340,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 233, gen: 2, - desc: "Holder's Steel-type attacks have 1.2x power. Evolves Onix into Steelix and Scyther into Scizor when traded.", - shortDesc: "Holder's Steel-type attacks have 1.2x power.", }, metalpowder: { name: "Metal Powder", @@ -3590,7 +3356,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Ditto"], num: 257, gen: 2, - desc: "If held by a Ditto that hasn't Transformed, its Defense is doubled.", }, metronome: { name: "Metronome", @@ -3627,7 +3392,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 277, gen: 4, - desc: "Damage of moves used on consecutive turns is increased. Max 2x after 5 turns.", }, mewniumz: { name: "Mewnium Z", @@ -3639,7 +3403,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 806, gen: 7, isNonstandard: "Past", - desc: "If held by a Mew with Psychic, it can use Genesis Supernova.", }, mewtwonitex: { name: "Mewtwonite X", @@ -3654,7 +3417,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 662, gen: 6, isNonstandard: "Past", - desc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", }, mewtwonitey: { name: "Mewtwonite Y", @@ -3669,7 +3431,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 663, gen: 6, isNonstandard: "Past", - desc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", }, micleberry: { name: "Micle Berry", @@ -3701,7 +3462,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 209, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's next move has 1.2x accuracy when at 1/4 max HP or less. Single use.", }, mimikiumz: { name: "Mimikium Z", @@ -3713,7 +3473,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 924, isNonstandard: "Past", gen: 7, - desc: "If held by a Mimikyu with Play Rough, it can use Let's Snuggle Forever.", }, mindplate: { name: "Mind Plate", @@ -3735,7 +3494,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 307, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Psychic-type attacks have 1.2x power. Judgment is Psychic type.", }, miracleseed: { name: "Miracle Seed", @@ -3751,7 +3509,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 239, gen: 2, - desc: "Holder's Grass-type attacks have 1.2x power.", }, mistyseed: { name: "Misty Seed", @@ -3775,7 +3532,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 883, gen: 7, - desc: "If the terrain is Misty Terrain, raises holder's Sp. Def by 1 stage. Single use.", }, moonball: { name: "Moon Ball", @@ -3783,7 +3539,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 498, gen: 2, isPokeball: true, - desc: "A Poke Ball for catching Pokemon that evolve using the Moon Stone.", }, moonstone: { name: "Moon Stone", @@ -3793,8 +3548,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 81, gen: 1, - desc: "Evolves Nidorina into Nidoqueen, Nidorino into Nidoking, Clefairy into Clefable, Jigglypuff into Wigglytuff, Skitty into Delcatty, and Munna into Musharna when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, muscleband: { name: "Muscle Band", @@ -3810,7 +3563,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 266, gen: 4, - desc: "Holder's physical attacks have 1.1x power.", }, mysticwater: { name: "Mystic Water", @@ -3826,7 +3578,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 243, gen: 2, - desc: "Holder's Water-type attacks have 1.2x power.", }, nanabberry: { name: "Nanab Berry", @@ -3840,7 +3591,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 166, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, nestball: { name: "Nest Ball", @@ -3848,7 +3598,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 8, gen: 3, isPokeball: true, - desc: "A Poke Ball that works especially well on weaker Pokemon in the wild.", }, netball: { name: "Net Ball", @@ -3856,7 +3605,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 6, gen: 3, isPokeball: true, - desc: "A Poke Ball that works especially well on Water- and Bug-type Pokemon.", }, nevermeltice: { name: "Never-Melt Ice", @@ -3872,7 +3620,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 246, gen: 2, - desc: "Holder's Ice-type attacks have 1.2x power.", }, nomelberry: { name: "Nomel Berry", @@ -3886,7 +3633,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 178, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, normalgem: { name: "Normal Gem", @@ -3901,7 +3647,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 564, gen: 5, - desc: "Holder's first successful Normal-type attack will have 1.3x power. Single use.", }, normaliumz: { name: "Normalium Z", @@ -3912,7 +3657,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 776, gen: 7, isNonstandard: "Past", - desc: "If holder has a Normal move, this item allows it to use a Normal Z-Move.", }, occaberry: { name: "Occa Berry", @@ -3937,7 +3681,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 184, gen: 4, - desc: "Halves damage taken from a supereffective Fire-type attack. Single use.", }, oddincense: { name: "Odd Incense", @@ -3953,7 +3696,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 314, gen: 4, - desc: "Holder's Psychic-type attacks have 1.2x power.", }, oldamber: { name: "Old Amber", @@ -3964,7 +3706,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 103, gen: 3, isNonstandard: "Past", - desc: "Can be revived into Aerodactyl.", }, oranberry: { name: "Oran Berry", @@ -3987,7 +3728,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 155, gen: 3, - desc: "Restores 10 HP when at 1/2 max HP or less. Single use.", }, ovalstone: { name: "Oval Stone", @@ -3997,7 +3737,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 110, gen: 4, - desc: "Evolves Happiny into Chansey when held and leveled up during the day.", }, pamtreberry: { name: "Pamtre Berry", @@ -4011,7 +3750,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 180, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, parkball: { name: "Park Ball", @@ -4019,7 +3757,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 500, gen: 4, isPokeball: true, - desc: "A special Poke Ball for the Pal Park.", }, passhoberry: { name: "Passho Berry", @@ -4044,7 +3781,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 185, gen: 4, - desc: "Halves damage taken from a supereffective Water-type attack. Single use.", }, payapaberry: { name: "Payapa Berry", @@ -4069,7 +3805,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 193, gen: 4, - desc: "Halves damage taken from a supereffective Psychic-type attack. Single use.", }, pechaberry: { name: "Pecha Berry", @@ -4091,7 +3826,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 151, gen: 3, - desc: "Holder is cured if it is poisoned. Single use.", }, persimberry: { name: "Persim Berry", @@ -4111,7 +3845,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 156, gen: 3, - desc: "Holder is cured if it is confused. Single use.", }, petayaberry: { name: "Petaya Berry", @@ -4131,7 +3864,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 204, gen: 3, - desc: "Raises holder's Sp. Atk by 1 stage when at 1/4 max HP or less. Single use.", }, pidgeotite: { name: "Pidgeotite", @@ -4146,7 +3878,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 762, gen: 6, isNonstandard: "Past", - desc: "If held by a Pidgeot, this item allows it to Mega Evolve in battle.", }, pikaniumz: { name: "Pikanium Z", @@ -4158,7 +3889,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 794, gen: 7, isNonstandard: "Past", - desc: "If held by a Pikachu with Volt Tackle, it can use Catastropika.", }, pikashuniumz: { name: "Pikashunium Z", @@ -4170,7 +3900,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 836, isNonstandard: "Past", gen: 7, - desc: "If held by cap Pikachu with Thunderbolt, it can use 10,000,000 Volt Thunderbolt.", }, pinapberry: { name: "Pinap Berry", @@ -4183,7 +3912,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 168, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, pinsirite: { name: "Pinsirite", @@ -4198,7 +3926,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 671, gen: 6, isNonstandard: "Past", - desc: "If held by a Pinsir, this item allows it to Mega Evolve in battle.", }, pixieplate: { name: "Pixie Plate", @@ -4219,7 +3946,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Fairy", num: 644, gen: 6, - desc: "Holder's Fairy-type attacks have 1.2x power. Judgment is Fairy type.", }, plumefossil: { name: "Plume Fossil", @@ -4230,7 +3956,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 573, gen: 5, isNonstandard: "Past", - desc: "Can be revived into Archen.", }, poisonbarb: { name: "Poison Barb", @@ -4247,7 +3972,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 245, gen: 2, - desc: "Holder's Poison-type attacks have 1.2x power.", }, poisongem: { name: "Poison Gem", @@ -4262,7 +3986,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 554, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Poison-type attack will have 1.3x power. Single use.", }, poisonmemory: { name: "Poison Memory", @@ -4278,7 +4001,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Poison"], num: 906, gen: 7, - desc: "Holder's Multi-Attack is Poison type.", }, poisoniumz: { name: "Poisonium Z", @@ -4291,7 +4013,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 783, gen: 7, isNonstandard: "Past", - desc: "If holder has a Poison move, this item allows it to use a Poison Z-Move.", }, pokeball: { name: "Poke Ball", @@ -4299,7 +4020,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 4, gen: 1, isPokeball: true, - desc: "A device for catching wild Pokemon. It is designed as a capsule system.", }, pomegberry: { name: "Pomeg Berry", @@ -4312,7 +4032,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 169, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, poweranklet: { name: "Power Anklet", @@ -4326,7 +4045,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 293, gen: 4, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerband: { name: "Power Band", @@ -4340,7 +4058,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 292, gen: 4, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerbelt: { name: "Power Belt", @@ -4354,7 +4071,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 290, gen: 4, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerbracer: { name: "Power Bracer", @@ -4368,7 +4084,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 289, gen: 4, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerherb: { onChargeMove(pokemon, target, move) { @@ -4386,7 +4101,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 271, gen: 4, - desc: "Holder's two-turn moves complete in one turn (except Sky Drop). Single use.", }, powerlens: { name: "Power Lens", @@ -4400,7 +4114,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 291, gen: 4, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerweight: { name: "Power Weight", @@ -4414,7 +4127,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 294, gen: 4, - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, premierball: { name: "Premier Ball", @@ -4422,7 +4134,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 12, gen: 3, isPokeball: true, - desc: "A rare Poke Ball that has been crafted to commemorate an event.", }, primariumz: { name: "Primarium Z", @@ -4434,7 +4145,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 800, gen: 7, isNonstandard: "Past", - desc: "If held by a Primarina with Sparkling Aria, it can use Oceanic Operetta.", }, prismscale: { name: "Prism Scale", @@ -4444,7 +4154,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 537, gen: 5, - desc: "Evolves Feebas into Milotic when traded.", }, protectivepads: { name: "Protective Pads", @@ -4496,7 +4205,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 880, gen: 7, - desc: "Holder's moves are protected from adverse contact effects, except Pickpocket.", }, protector: { name: "Protector", @@ -4506,7 +4214,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 321, gen: 4, - desc: "Evolves Rhydon into Rhyperior when traded.", }, psychicgem: { name: "Psychic Gem", @@ -4521,7 +4228,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 557, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Psychic-type attack will have 1.3x power. Single use.", }, psychicmemory: { name: "Psychic Memory", @@ -4537,7 +4243,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Psychic"], num: 916, gen: 7, - desc: "Holder's Multi-Attack is Psychic type.", }, psychicseed: { name: "Psychic Seed", @@ -4561,7 +4266,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 882, gen: 7, - desc: "If the terrain is Psychic Terrain, raises holder's Sp. Def by 1 stage. Single use.", }, psychiumz: { name: "Psychium Z", @@ -4574,7 +4278,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 786, gen: 7, isNonstandard: "Past", - desc: "If holder has a Psychic move, this item allows it to use a Psychic Z-Move.", }, qualotberry: { name: "Qualot Berry", @@ -4587,7 +4290,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 171, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, quickball: { name: "Quick Ball", @@ -4595,7 +4297,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 15, gen: 4, isPokeball: true, - desc: "A Poke Ball that provides a better catch rate at the start of a wild encounter.", }, quickclaw: { onFractionalPriorityPriority: -2, @@ -4612,7 +4313,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 217, gen: 2, - desc: "Each turn, holder has a 20% chance to move first in its priority bracket.", }, quickpowder: { name: "Quick Powder", @@ -4628,7 +4328,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Ditto"], num: 274, gen: 4, - desc: "If held by a Ditto that hasn't Transformed, its Speed is doubled.", }, rabutaberry: { name: "Rabuta Berry", @@ -4642,7 +4341,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 177, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, rarebone: { name: "Rare Bone", @@ -4652,7 +4350,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 106, gen: 4, - desc: "No competitive use other than when used with Fling.", }, rawstberry: { name: "Rawst Berry", @@ -4674,7 +4371,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 152, gen: 3, - desc: "Holder is cured if it is burned. Single use.", }, razorclaw: { name: "Razor Claw", @@ -4687,8 +4383,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 326, gen: 4, - desc: "Holder's critical hit ratio is raised by 1 stage. Evolves Sneasel into Weavile when held and leveled up during the night.", - shortDesc: "Holder's critical hit ratio is raised by 1 stage.", }, razorfang: { name: "Razor Fang", @@ -4713,8 +4407,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 327, gen: 4, isNonstandard: "Past", - desc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch. Evolves Gligar into Gliscor when held and leveled up during the night.", - shortDesc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch.", }, razzberry: { name: "Razz Berry", @@ -4728,7 +4420,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 164, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, reapercloth: { name: "Reaper Cloth", @@ -4738,7 +4429,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 325, gen: 4, - desc: "Evolves Dusclops into Dusknoir when traded.", }, redcard: { name: "Red Card", @@ -4761,7 +4451,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 542, gen: 5, - desc: "If holder survives a hit, attacker is forced to switch to a random ally. Single use.", }, redorb: { name: "Red Orb", @@ -4782,7 +4471,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 534, gen: 6, isNonstandard: "Past", - desc: "If held by a Groudon, this item triggers its Primal Reversion in battle.", }, repeatball: { name: "Repeat Ball", @@ -4790,7 +4478,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 9, gen: 3, isPokeball: true, - desc: "A Poke Ball that works well on Pokemon species that were previously caught.", }, ribbonsweet: { name: "Ribbon Sweet", @@ -4800,7 +4487,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1115, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, rindoberry: { name: "Rindo Berry", @@ -4825,7 +4511,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 187, gen: 4, - desc: "Halves damage taken from a supereffective Grass-type attack. Single use.", }, ringtarget: { name: "Ring Target", @@ -4836,7 +4521,6 @@ export const Items: {[itemid: string]: ItemData} = { onNegateImmunity: false, num: 543, gen: 5, - desc: "The holder's type immunities granted solely by its typing are negated.", }, rockgem: { name: "Rock Gem", @@ -4851,7 +4535,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 559, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Rock-type attack will have 1.3x power. Single use.", }, rockincense: { name: "Rock Incense", @@ -4867,7 +4550,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 315, gen: 4, - desc: "Holder's Rock-type attacks have 1.2x power.", }, rockmemory: { name: "Rock Memory", @@ -4883,7 +4565,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Rock"], num: 908, gen: 7, - desc: "Holder's Multi-Attack is Rock type.", }, rockiumz: { name: "Rockium Z", @@ -4896,7 +4577,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 788, gen: 7, isNonstandard: "Past", - desc: "If holder has a Rock move, this item allows it to use a Rock Z-Move.", }, rockyhelmet: { name: "Rocky Helmet", @@ -4912,7 +4592,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 540, gen: 5, - desc: "If holder is hit by a contact move, the attacker loses 1/6 of its max HP.", }, roomservice: { name: "Room Service", @@ -4930,7 +4609,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1122, gen: 8, - desc: "If Trick Room is active, the holder's Speed is lowered by 1 stage. Single use.", }, rootfossil: { name: "Root Fossil", @@ -4941,7 +4619,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 99, gen: 3, isNonstandard: "Past", - desc: "Can be revived into Lileep.", }, roseincense: { name: "Rose Incense", @@ -4957,7 +4634,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 318, gen: 4, - desc: "Holder's Grass-type attacks have 1.2x power.", }, roseliberry: { name: "Roseli Berry", @@ -4982,7 +4658,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 686, gen: 6, - desc: "Halves damage taken from a supereffective Fairy-type attack. Single use.", }, rowapberry: { name: "Rowap Berry", @@ -5003,7 +4678,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 212, gen: 4, isNonstandard: "Unobtainable", - desc: "If holder is hit by a special move, attacker loses 1/8 of its max HP. Single use.", }, rustedshield: { name: "Rusted Shield", @@ -5018,7 +4692,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Zamazenta-Crowned"], num: 1104, gen: 8, - desc: "If held by a Zamazenta, this item changes its forme to Crowned Shield.", }, rustedsword: { name: "Rusted Sword", @@ -5033,7 +4706,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Zacian-Crowned"], num: 1103, gen: 8, - desc: "If held by a Zacian, this item changes its forme to Crowned Sword.", }, sablenite: { name: "Sablenite", @@ -5048,7 +4720,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 754, gen: 6, isNonstandard: "Past", - desc: "If held by a Sableye, this item allows it to Mega Evolve in battle.", }, sachet: { name: "Sachet", @@ -5058,7 +4729,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 647, gen: 6, - desc: "Evolves Spritzee into Aromatisse when traded.", }, safariball: { name: "Safari Ball", @@ -5066,7 +4736,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 5, gen: 1, isPokeball: true, - desc: "A special Poke Ball that is used only in the Safari Zone and Great Marsh.", }, safetygoggles: { name: "Safety Goggles", @@ -5085,7 +4754,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 650, gen: 6, - desc: "Holder is immune to powder moves and damage from Sandstorm or Hail.", }, sailfossil: { name: "Sail Fossil", @@ -5096,7 +4764,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 711, gen: 6, isNonstandard: "Past", - desc: "Can be revived into Amaura.", }, salacberry: { name: "Salac Berry", @@ -5116,7 +4783,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 203, gen: 3, - desc: "Raises holder's Speed by 1 stage when at 1/4 max HP or less. Single use.", }, salamencite: { name: "Salamencite", @@ -5131,7 +4797,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 769, gen: 6, isNonstandard: "Past", - desc: "If held by a Salamence, this item allows it to Mega Evolve in battle.", }, sceptilite: { name: "Sceptilite", @@ -5146,7 +4811,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 753, gen: 6, isNonstandard: "Past", - desc: "If held by a Sceptile, this item allows it to Mega Evolve in battle.", }, scizorite: { name: "Scizorite", @@ -5161,7 +4825,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 670, gen: 6, isNonstandard: "Past", - desc: "If held by a Scizor, this item allows it to Mega Evolve in battle.", }, scopelens: { name: "Scope Lens", @@ -5174,7 +4837,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 232, gen: 2, - desc: "Holder's critical hit ratio is raised by 1 stage.", }, seaincense: { name: "Sea Incense", @@ -5190,7 +4852,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 254, gen: 3, - desc: "Holder's Water-type attacks have 1.2x power.", }, sharpbeak: { name: "Sharp Beak", @@ -5206,7 +4867,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 244, gen: 2, - desc: "Holder's Flying-type attacks have 1.2x power.", }, sharpedonite: { name: "Sharpedonite", @@ -5221,7 +4881,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 759, gen: 6, isNonstandard: "Past", - desc: "If held by a Sharpedo, this item allows it to Mega Evolve in battle.", }, shedshell: { name: "Shed Shell", @@ -5235,7 +4894,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 295, gen: 4, - desc: "Holder may switch out even when trapped by another Pokemon, or by Ingrain.", }, shellbell: { name: "Shell Bell", @@ -5251,7 +4909,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 253, gen: 3, - desc: "After an attack, holder gains 1/8 of the damage in HP dealt to other Pokemon.", }, shinystone: { name: "Shiny Stone", @@ -5261,8 +4918,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 107, gen: 4, - desc: "Evolves Togetic into Togekiss, Roselia into Roserade, Minccino into Cinccino, and Floette into Florges when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, shockdrive: { name: "Shock Drive", @@ -5279,7 +4934,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 117, gen: 5, isNonstandard: "Past", - desc: "Holder's Techno Blast is Electric type.", }, shucaberry: { name: "Shuca Berry", @@ -5304,7 +4958,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 191, gen: 4, - desc: "Halves damage taken from a supereffective Ground-type attack. Single use.", }, silkscarf: { name: "Silk Scarf", @@ -5320,7 +4973,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 251, gen: 3, - desc: "Holder's Normal-type attacks have 1.2x power.", }, silverpowder: { name: "Silver Powder", @@ -5336,7 +4988,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 222, gen: 2, - desc: "Holder's Bug-type attacks have 1.2x power.", }, sitrusberry: { name: "Sitrus Berry", @@ -5359,7 +5010,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 158, gen: 3, - desc: "Restores 1/4 max HP when at 1/2 max HP or less. Single use.", }, skullfossil: { name: "Skull Fossil", @@ -5370,7 +5020,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 105, gen: 4, isNonstandard: "Past", - desc: "Can be revived into Cranidos.", }, skyplate: { name: "Sky Plate", @@ -5392,7 +5041,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 306, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Flying-type attacks have 1.2x power. Judgment is Flying type.", }, slowbronite: { name: "Slowbronite", @@ -5407,7 +5055,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 760, gen: 6, isNonstandard: "Past", - desc: "If held by a Slowbro, this item allows it to Mega Evolve in battle.", }, smoothrock: { name: "Smooth Rock", @@ -5417,7 +5064,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 283, gen: 4, - desc: "Holder's use of Sandstorm lasts 8 turns instead of 5.", }, snorliumz: { name: "Snorlium Z", @@ -5429,7 +5075,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 804, gen: 7, isNonstandard: "Past", - desc: "If held by a Snorlax with Giga Impact, it can use Pulverizing Pancake.", }, snowball: { name: "Snowball", @@ -5447,7 +5092,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 649, gen: 6, - desc: "Raises holder's Attack by 1 if hit by an Ice-type attack. Single use.", }, softsand: { name: "Soft Sand", @@ -5463,7 +5107,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 237, gen: 2, - desc: "Holder's Ground-type attacks have 1.2x power.", }, solganiumz: { name: "Solganium Z", @@ -5475,7 +5118,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 921, gen: 7, isNonstandard: "Past", - desc: "Solgaleo or Dusk Mane Necrozma with Sunsteel Strike can use a special Z-Move.", }, souldew: { name: "Soul Dew", @@ -5496,7 +5138,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 225, gen: 3, isNonstandard: "Past", - desc: "If held by a Latias/Latios, its Dragon- and Psychic-type moves have 1.2x power.", }, spelltag: { name: "Spell Tag", @@ -5512,7 +5153,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 247, gen: 2, - desc: "Holder's Ghost-type attacks have 1.2x power.", }, spelonberry: { name: "Spelon Berry", @@ -5526,7 +5166,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 179, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, splashplate: { name: "Splash Plate", @@ -5548,7 +5187,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 299, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Water-type attacks have 1.2x power. Judgment is Water type.", }, spookyplate: { name: "Spooky Plate", @@ -5570,7 +5208,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 310, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Ghost-type attacks have 1.2x power. Judgment is Ghost type.", }, sportball: { name: "Sport Ball", @@ -5578,7 +5215,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 499, gen: 2, isPokeball: true, - desc: "A special Poke Ball for the Bug-Catching Contest.", }, starfberry: { name: "Starf Berry", @@ -5610,7 +5246,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 207, gen: 3, - desc: "Raises a random stat by 2 when at 1/4 max HP or less (not acc/eva). Single use.", }, starsweet: { name: "Star Sweet", @@ -5620,7 +5255,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1114, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, steelixite: { name: "Steelixite", @@ -5635,7 +5269,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 761, gen: 6, isNonstandard: "Past", - desc: "If held by a Steelix, this item allows it to Mega Evolve in battle.", }, steelgem: { name: "Steel Gem", @@ -5650,7 +5283,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 563, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Steel-type attack will have 1.3x power. Single use.", }, steelmemory: { name: "Steel Memory", @@ -5666,7 +5298,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Steel"], num: 911, gen: 7, - desc: "Holder's Multi-Attack is Steel type.", }, steeliumz: { name: "Steelium Z", @@ -5679,7 +5310,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 792, gen: 7, isNonstandard: "Past", - desc: "If holder has a Steel move, this item allows it to use a Steel Z-Move.", }, stick: { name: "Stick", @@ -5696,7 +5326,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 259, gen: 2, isNonstandard: "Past", - desc: "If held by a Farfetch\u2019d, its critical hit ratio is raised by 2 stages.", }, stickybarb: { name: "Sticky Barb", @@ -5719,7 +5348,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 288, gen: 4, - desc: "Each turn, holder loses 1/8 max HP. An attacker making contact can receive it.", }, stoneplate: { name: "Stone Plate", @@ -5741,7 +5369,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 309, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Rock-type attacks have 1.2x power. Judgment is Rock type.", }, strawberrysweet: { name: "Strawberry Sweet", @@ -5751,7 +5378,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1109, gen: 8, - desc: "Evolves Milcery into Alcremie when held and spun around.", }, sunstone: { name: "Sun Stone", @@ -5761,8 +5387,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 80, gen: 2, - desc: "Evolves Gloom into Bellossom, Sunkern into Sunflora, Cottonee into Whimsicott, Petilil into Lilligant, and Helioptile into Heliolisk when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, swampertite: { name: "Swampertite", @@ -5777,7 +5401,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 752, gen: 6, isNonstandard: "Past", - desc: "If held by a Swampert, this item allows it to Mega Evolve in battle.", }, sweetapple: { name: "Sweet Apple", @@ -5787,7 +5410,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1116, gen: 8, - desc: "Evolves Applin into Appletun when used.", }, tamatoberry: { name: "Tamato Berry", @@ -5800,7 +5422,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat: false, num: 174, gen: 3, - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, tangaberry: { name: "Tanga Berry", @@ -5825,7 +5446,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 194, gen: 4, - desc: "Halves damage taken from a supereffective Bug-type attack. Single use.", }, tapuniumz: { name: "Tapunium Z", @@ -5837,7 +5457,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 801, gen: 7, isNonstandard: "Past", - desc: "If held by a Tapu with Nature's Madness, it can use Guardian of Alola.", }, tartapple: { name: "Tart Apple", @@ -5847,7 +5466,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1117, gen: 8, - desc: "Evolves Applin into Flapple when used.", }, terrainextender: { name: "Terrain Extender", @@ -5857,7 +5475,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 879, gen: 7, - desc: "Holder's use of Electric/Grassy/Misty/Psychic Terrain lasts 8 turns instead of 5.", }, thickclub: { name: "Thick Club", @@ -5874,7 +5491,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Marowak", "Cubone"], num: 258, gen: 2, - desc: "If held by a Cubone or a Marowak, its Attack is doubled.", }, throatspray: { name: "Throat Spray", @@ -5892,7 +5508,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1118, gen: 8, - desc: "Raises holder's Special Attack by 1 stage after it uses a sound move. Single use.", }, thunderstone: { name: "Thunder Stone", @@ -5902,8 +5517,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 83, gen: 1, - desc: "Evolves Pikachu into Raichu or Alolan Raichu, Eevee into Jolteon, Eelektrik into Eelektross, and Charjabug into Vikavolt when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, timerball: { name: "Timer Ball", @@ -5911,7 +5524,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 10, gen: 3, isPokeball: true, - desc: "A Poke Ball that becomes better the more turns there are in a battle.", }, toxicorb: { name: "Toxic Orb", @@ -5927,7 +5539,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 272, gen: 4, - desc: "At the end of every turn, this item attempts to badly poison the holder.", }, toxicplate: { name: "Toxic Plate", @@ -5949,7 +5560,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 304, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Poison-type attacks have 1.2x power. Judgment is Poison type.", }, tr00: { name: "TR00", @@ -5959,7 +5569,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1130, gen: 8, - desc: "Teaches certain Pokemon the move Swords Dance. One use.", }, tr01: { name: "TR01", @@ -5969,7 +5578,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1131, gen: 8, - desc: "Teaches certain Pokemon the move Body Slam. One use.", }, tr02: { name: "TR02", @@ -5979,7 +5587,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1132, gen: 8, - desc: "Teaches certain Pokemon the move Flamethrower. One use.", }, tr03: { name: "TR03", @@ -5989,7 +5596,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 731, num: 1133, gen: 8, - desc: "Teaches certain Pokemon the move Hydro Pump. One use.", }, tr04: { name: "TR04", @@ -5999,7 +5605,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 731, num: 1134, gen: 8, - desc: "Teaches certain Pokemon the move Surf. One use.", }, tr05: { name: "TR05", @@ -6009,7 +5614,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 735, num: 1135, gen: 8, - desc: "Teaches certain Pokemon the move Ice Beam. One use.", }, tr06: { name: "TR06", @@ -6019,7 +5623,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 735, num: 1136, gen: 8, - desc: "Teaches certain Pokemon the move Blizzard. One use.", }, tr07: { name: "TR07", @@ -6029,7 +5632,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1137, gen: 8, - desc: "Teaches certain Pokemon the move Low Kick. One use.", }, tr08: { name: "TR08", @@ -6039,7 +5641,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 733, num: 1138, gen: 8, - desc: "Teaches certain Pokemon the move Thunderbolt. One use.", }, tr09: { name: "TR09", @@ -6049,7 +5650,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 733, num: 1139, gen: 8, - desc: "Teaches certain Pokemon the move Thunder. One use.", }, tr10: { name: "TR10", @@ -6059,7 +5659,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 725, num: 1140, gen: 8, - desc: "Teaches certain Pokemon the move Earthquake. One use.", }, tr11: { name: "TR11", @@ -6069,7 +5668,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1141, gen: 8, - desc: "Teaches certain Pokemon the move Psychic. One use.", }, tr12: { name: "TR12", @@ -6079,7 +5677,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1142, gen: 8, - desc: "Teaches certain Pokemon the move Agility. One use.", }, tr13: { name: "TR13", @@ -6089,7 +5686,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1143, gen: 8, - desc: "Teaches certain Pokemon the move Focus Energy. One use.", }, tr14: { name: "TR14", @@ -6099,7 +5695,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1144, gen: 8, - desc: "Teaches certain Pokemon the move Metronome. One use.", }, tr15: { name: "TR15", @@ -6109,7 +5704,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1145, gen: 8, - desc: "Teaches certain Pokemon the move Fire Blast. One use.", }, tr16: { name: "TR16", @@ -6119,7 +5713,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 731, num: 1146, gen: 8, - desc: "Teaches certain Pokemon the move Waterfall. One use.", }, tr17: { name: "TR17", @@ -6129,7 +5722,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1147, gen: 8, - desc: "Teaches certain Pokemon the move Amnesia. One use.", }, tr18: { name: "TR18", @@ -6139,7 +5731,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 727, num: 1148, gen: 8, - desc: "Teaches certain Pokemon the move Leech Life. One use.", }, tr19: { name: "TR19", @@ -6149,7 +5740,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1149, gen: 8, - desc: "Teaches certain Pokemon the move Tri Attack. One use.", }, tr20: { name: "TR20", @@ -6159,7 +5749,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1150, gen: 8, - desc: "Teaches certain Pokemon the move Substitute. One use.", }, tr21: { name: "TR21", @@ -6169,7 +5758,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1151, gen: 8, - desc: "Teaches certain Pokemon the move Reversal. One use.", }, tr22: { name: "TR22", @@ -6179,7 +5767,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 724, num: 1152, gen: 8, - desc: "Teaches certain Pokemon the move Sludge Bomb. One use.", }, tr23: { name: "TR23", @@ -6189,7 +5776,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 725, num: 1153, gen: 8, - desc: "Teaches certain Pokemon the move Spikes. One use.", }, tr24: { name: "TR24", @@ -6199,7 +5785,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 736, num: 1154, gen: 8, - desc: "Teaches certain Pokemon the move Outrage. One use.", }, tr25: { name: "TR25", @@ -6209,7 +5794,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1155, gen: 8, - desc: "Teaches certain Pokemon the move Psyshock. One use.", }, tr26: { name: "TR26", @@ -6219,7 +5803,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1156, gen: 8, - desc: "Teaches certain Pokemon the move Endure. One use.", }, tr27: { name: "TR27", @@ -6229,7 +5812,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1157, gen: 8, - desc: "Teaches certain Pokemon the move Sleep Talk. One use.", }, tr28: { name: "TR28", @@ -6239,7 +5821,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 727, num: 1158, gen: 8, - desc: "Teaches certain Pokemon the move Megahorn. One use.", }, tr29: { name: "TR29", @@ -6249,7 +5830,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1159, gen: 8, - desc: "Teaches certain Pokemon the move Baton Pass. One use.", }, tr30: { name: "TR30", @@ -6259,7 +5839,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1160, gen: 8, - desc: "Teaches certain Pokemon the move Encore. One use.", }, tr31: { name: "TR31", @@ -6269,7 +5848,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 729, num: 1161, gen: 8, - desc: "Teaches certain Pokemon the move Iron Tail. One use.", }, tr32: { name: "TR32", @@ -6279,7 +5857,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1162, gen: 8, - desc: "Teaches certain Pokemon the move Crunch. One use.", }, tr33: { name: "TR33", @@ -6289,7 +5866,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 728, num: 1163, gen: 8, - desc: "Teaches certain Pokemon the move Shadow Ball. One use.", }, tr34: { name: "TR34", @@ -6299,7 +5875,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1164, gen: 8, - desc: "Teaches certain Pokemon the move Future Sight. One use.", }, tr35: { name: "TR35", @@ -6309,7 +5884,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1165, gen: 8, - desc: "Teaches certain Pokemon the move Uproar. One use.", }, tr36: { name: "TR36", @@ -6319,7 +5893,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1166, gen: 8, - desc: "Teaches certain Pokemon the move Heat Wave. One use.", }, tr37: { name: "TR37", @@ -6329,7 +5902,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1167, gen: 8, - desc: "Teaches certain Pokemon the move Taunt. One use.", }, tr38: { name: "TR38", @@ -6339,7 +5911,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1168, gen: 8, - desc: "Teaches certain Pokemon the move Trick. One use.", }, tr39: { name: "TR39", @@ -6349,7 +5920,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1169, gen: 8, - desc: "Teaches certain Pokemon the move Superpower. One use.", }, tr40: { name: "TR40", @@ -6359,7 +5929,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1170, gen: 8, - desc: "Teaches certain Pokemon the move Skill Swap. One use.", }, tr41: { name: "TR41", @@ -6369,7 +5938,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1171, gen: 8, - desc: "Teaches certain Pokemon the move Blaze Kick. One use.", }, tr42: { name: "TR42", @@ -6379,7 +5947,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1172, gen: 8, - desc: "Teaches certain Pokemon the move Hyper Voice. One use.", }, tr43: { name: "TR43", @@ -6389,7 +5956,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1173, gen: 8, - desc: "Teaches certain Pokemon the move Overheat. One use.", }, tr44: { name: "TR44", @@ -6399,7 +5965,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1174, gen: 8, - desc: "Teaches certain Pokemon the move Cosmic Power. One use.", }, tr45: { name: "TR45", @@ -6409,7 +5974,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 731, num: 1175, gen: 8, - desc: "Teaches certain Pokemon the move Muddy Water. One use.", }, tr46: { name: "TR46", @@ -6419,7 +5983,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 729, num: 1176, gen: 8, - desc: "Teaches certain Pokemon the move Iron Defense. One use.", }, tr47: { name: "TR47", @@ -6429,7 +5992,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 736, num: 1177, gen: 8, - desc: "Teaches certain Pokemon the move Dragon Claw. One use.", }, tr48: { name: "TR48", @@ -6439,7 +6001,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1178, gen: 8, - desc: "Teaches certain Pokemon the move Bulk Up. One use.", }, tr49: { name: "TR49", @@ -6449,7 +6010,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1179, gen: 8, - desc: "Teaches certain Pokemon the move Calm Mind. One use.", }, tr50: { name: "TR50", @@ -6459,7 +6019,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 732, num: 1180, gen: 8, - desc: "Teaches certain Pokemon the move Leaf Blade. One use.", }, tr51: { name: "TR51", @@ -6469,7 +6028,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 736, num: 1181, gen: 8, - desc: "Teaches certain Pokemon the move Dragon Dance. One use.", }, tr52: { name: "TR52", @@ -6479,7 +6037,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 729, num: 1182, gen: 8, - desc: "Teaches certain Pokemon the move Gyro Ball. One use.", }, tr53: { name: "TR53", @@ -6489,7 +6046,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1183, gen: 8, - desc: "Teaches certain Pokemon the move Close Combat. One use.", }, tr54: { name: "TR54", @@ -6499,7 +6055,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 724, num: 1184, gen: 8, - desc: "Teaches certain Pokemon the move Toxic Spikes. One use.", }, tr55: { name: "TR55", @@ -6509,7 +6064,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1185, gen: 8, - desc: "Teaches certain Pokemon the move Flare Blitz. One use.", }, tr56: { name: "TR56", @@ -6519,7 +6073,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1186, gen: 8, - desc: "Teaches certain Pokemon the move Aura Sphere. One use.", }, tr57: { name: "TR57", @@ -6529,7 +6082,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 724, num: 1187, gen: 8, - desc: "Teaches certain Pokemon the move Poison Jab. One use.", }, tr58: { name: "TR58", @@ -6539,7 +6091,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1188, gen: 8, - desc: "Teaches certain Pokemon the move Dark Pulse. One use.", }, tr59: { name: "TR59", @@ -6549,7 +6100,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 732, num: 1189, gen: 8, - desc: "Teaches certain Pokemon the move Seed Bomb. One use.", }, tr60: { name: "TR60", @@ -6559,7 +6109,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 727, num: 1190, gen: 8, - desc: "Teaches certain Pokemon the move X-Scissor. One use.", }, tr61: { name: "TR61", @@ -6569,7 +6118,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 727, num: 1191, gen: 8, - desc: "Teaches certain Pokemon the move Bug Buzz. One use.", }, tr62: { name: "TR62", @@ -6579,7 +6127,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 736, num: 1192, gen: 8, - desc: "Teaches certain Pokemon the move Dragon Pulse. One use.", }, tr63: { name: "TR63", @@ -6589,7 +6136,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 726, num: 1193, gen: 8, - desc: "Teaches certain Pokemon the move Power Gem. One use.", }, tr64: { name: "TR64", @@ -6599,7 +6145,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1194, gen: 8, - desc: "Teaches certain Pokemon the move Focus Blast. One use.", }, tr65: { name: "TR65", @@ -6609,7 +6154,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 732, num: 1195, gen: 8, - desc: "Teaches certain Pokemon the move Energy Ball. One use.", }, tr66: { name: "TR66", @@ -6619,7 +6163,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 723, num: 1196, gen: 8, - desc: "Teaches certain Pokemon the move Brave Bird. One use.", }, tr67: { name: "TR67", @@ -6629,7 +6172,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 725, num: 1197, gen: 8, - desc: "Teaches certain Pokemon the move Earth Power. One use.", }, tr68: { name: "TR68", @@ -6639,7 +6181,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1198, gen: 8, - desc: "Teaches certain Pokemon the move Nasty Plot. One use.", }, tr69: { name: "TR69", @@ -6649,7 +6190,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1199, gen: 8, - desc: "Teaches certain Pokemon the move Zen Headbutt. One use.", }, tr70: { name: "TR70", @@ -6659,7 +6199,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 729, num: 1200, gen: 8, - desc: "Teaches certain Pokemon the move Flash Cannon. One use.", }, tr71: { name: "TR71", @@ -6669,7 +6208,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 732, num: 1201, gen: 8, - desc: "Teaches certain Pokemon the move Leaf Storm. One use.", }, tr72: { name: "TR72", @@ -6679,7 +6217,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 732, num: 1202, gen: 8, - desc: "Teaches certain Pokemon the move Power Whip. One use.", }, tr73: { name: "TR73", @@ -6689,7 +6226,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 724, num: 1203, gen: 8, - desc: "Teaches certain Pokemon the move Gunk Shot. One use.", }, tr74: { name: "TR74", @@ -6699,7 +6235,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 729, num: 1204, gen: 8, - desc: "Teaches certain Pokemon the move Iron Head. One use.", }, tr75: { name: "TR75", @@ -6709,7 +6244,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 726, num: 1205, gen: 8, - desc: "Teaches certain Pokemon the move Stone Edge. One use.", }, tr76: { name: "TR76", @@ -6719,7 +6253,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 726, num: 1206, gen: 8, - desc: "Teaches certain Pokemon the move Stealth Rock. One use.", }, tr77: { name: "TR77", @@ -6729,7 +6262,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 732, num: 1207, gen: 8, - desc: "Teaches certain Pokemon the move Grass Knot. One use.", }, tr78: { name: "TR78", @@ -6739,7 +6271,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 724, num: 1208, gen: 8, - desc: "Teaches certain Pokemon the move Sludge Wave. One use.", }, tr79: { name: "TR79", @@ -6749,7 +6280,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 729, num: 1209, gen: 8, - desc: "Teaches certain Pokemon the move Heavy Slam. One use.", }, tr80: { name: "TR80", @@ -6759,7 +6289,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 733, num: 1210, gen: 8, - desc: "Teaches certain Pokemon the move Electro Ball. One use.", }, tr81: { name: "TR81", @@ -6769,7 +6298,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1211, gen: 8, - desc: "Teaches certain Pokemon the move Foul Play. One use.", }, tr82: { name: "TR82", @@ -6779,7 +6307,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1212, gen: 8, - desc: "Teaches certain Pokemon the move Stored Power. One use.", }, tr83: { name: "TR83", @@ -6789,7 +6316,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1213, gen: 8, - desc: "Teaches certain Pokemon the move Ally Switch. One use.", }, tr84: { name: "TR84", @@ -6799,7 +6325,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 731, num: 1214, gen: 8, - desc: "Teaches certain Pokemon the move Scald. One use.", }, tr85: { name: "TR85", @@ -6809,7 +6334,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 721, num: 1215, gen: 8, - desc: "Teaches certain Pokemon the move Work Up. One use.", }, tr86: { name: "TR86", @@ -6819,7 +6343,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 733, num: 1216, gen: 8, - desc: "Teaches certain Pokemon the move Wild Charge. One use.", }, tr87: { name: "TR87", @@ -6829,7 +6352,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 725, num: 1217, gen: 8, - desc: "Teaches certain Pokemon the move Drill Run. One use.", }, tr88: { name: "TR88", @@ -6839,7 +6361,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 730, num: 1218, gen: 8, - desc: "Teaches certain Pokemon the move Heat Crash. One use.", }, tr89: { name: "TR89", @@ -6849,7 +6370,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 723, num: 1219, gen: 8, - desc: "Teaches certain Pokemon the move Hurricane. One use.", }, tr90: { name: "TR90", @@ -6859,7 +6379,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 738, num: 1220, gen: 8, - desc: "Teaches certain Pokemon the move Play Rough. One use.", }, tr91: { name: "TR91", @@ -6869,7 +6388,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 724, num: 1221, gen: 8, - desc: "Teaches certain Pokemon the move Venom Drench. One use.", }, tr92: { name: "TR92", @@ -6879,7 +6397,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 738, num: 1222, gen: 8, - desc: "Teaches certain Pokemon the move Dazzling Gleam. One use.", }, tr93: { name: "TR93", @@ -6889,7 +6406,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1223, gen: 8, - desc: "Teaches certain Pokemon the move Darkest Lariat. One use.", }, tr94: { name: "TR94", @@ -6899,7 +6415,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 725, num: 1224, gen: 8, - desc: "Teaches certain Pokemon the move High Horsepower. One use.", }, tr95: { name: "TR95", @@ -6909,7 +6424,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 737, num: 1225, gen: 8, - desc: "Teaches certain Pokemon the move Throat Chop. One use.", }, tr96: { name: "TR96", @@ -6919,7 +6433,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 727, num: 1226, gen: 8, - desc: "Teaches certain Pokemon the move Pollen Puff. One use.", }, tr97: { name: "TR97", @@ -6929,7 +6442,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 734, num: 1227, gen: 8, - desc: "Teaches certain Pokemon the move Psychic Fangs. One use.", }, tr98: { name: "TR98", @@ -6939,7 +6451,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 731, num: 1228, gen: 8, - desc: "Teaches certain Pokemon the move Liquidation. One use.", }, tr99: { name: "TR99", @@ -6949,7 +6460,6 @@ export const Items: {[itemid: string]: ItemData} = { spritenum: 722, num: 1229, gen: 8, - desc: "Teaches certain Pokemon the move Body Press. One use.", }, twistedspoon: { name: "Twisted Spoon", @@ -6965,7 +6475,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 248, gen: 2, - desc: "Holder's Psychic-type attacks have 1.2x power.", }, tyranitarite: { name: "Tyranitarite", @@ -6980,7 +6489,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 669, gen: 6, isNonstandard: "Past", - desc: "If held by a Tyranitar, this item allows it to Mega Evolve in battle.", }, ultraball: { name: "Ultra Ball", @@ -6988,7 +6496,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 2, gen: 1, isPokeball: true, - desc: "An ultra-performance Ball that provides a higher catch rate than a Great Ball.", }, ultranecroziumz: { name: "Ultranecrozium Z", @@ -7000,7 +6507,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 923, gen: 7, isNonstandard: "Past", - desc: "Dusk Mane/Dawn Wings Necrozma: Ultra Burst, then Z-Move w/ Photon Geyser.", }, upgrade: { name: "Up-Grade", @@ -7010,7 +6516,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 252, gen: 2, - desc: "Evolves Porygon into Porygon2 when traded.", }, utilityumbrella: { name: "Utility Umbrella", @@ -7021,8 +6526,6 @@ export const Items: {[itemid: string]: ItemData} = { // Implemented in statuses.js, moves.js, and abilities.js num: 1123, gen: 8, - desc: "The holder ignores rain- and sun-based effects. Damage and accuracy calculations from attacks used by the holder are affected by rain and sun, but not attacks used against the holder.", - shortDesc: "The holder ignores rain- and sun-based effects.", }, venusaurite: { name: "Venusaurite", @@ -7037,7 +6540,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 659, gen: 6, isNonstandard: "Past", - desc: "If held by a Venusaur, this item allows it to Mega Evolve in battle.", }, wacanberry: { name: "Wacan Berry", @@ -7061,7 +6563,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 186, gen: 4, - desc: "Halves damage taken from a supereffective Electric-type attack. Single use.", }, watergem: { name: "Water Gem", @@ -7077,7 +6578,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 549, gen: 5, isNonstandard: "Past", - desc: "Holder's first successful Water-type attack will have 1.3x power. Single use.", }, watermemory: { name: "Water Memory", @@ -7093,7 +6593,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Silvally-Water"], num: 913, gen: 7, - desc: "Holder's Multi-Attack is Water type.", }, waterstone: { name: "Water Stone", @@ -7103,8 +6602,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 84, gen: 1, - desc: "Evolves Poliwhirl into Poliwrath, Shellder into Cloyster, Staryu into Starmie, Eevee into Vaporeon, Lombre into Ludicolo, and Panpour into Simipour when used.", - shortDesc: "Evolves certain species of Pokemon when used.", }, wateriumz: { name: "Waterium Z", @@ -7117,7 +6614,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 778, gen: 7, isNonstandard: "Past", - desc: "If holder has a Water move, this item allows it to use a Water Z-Move.", }, watmelberry: { name: "Watmel Berry", @@ -7131,7 +6627,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 181, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, waveincense: { name: "Wave Incense", @@ -7147,7 +6642,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 317, gen: 4, - desc: "Holder's Water-type attacks have 1.2x power.", }, weaknesspolicy: { name: "Weakness Policy", @@ -7170,7 +6664,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 639, gen: 6, - desc: "If holder is hit super effectively, raises Attack, Sp. Atk by 2 stages. Single use.", }, wepearberry: { name: "Wepear Berry", @@ -7184,7 +6677,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 167, gen: 3, isNonstandard: "Past", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, whippeddream: { name: "Whipped Dream", @@ -7194,7 +6686,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 646, gen: 6, - desc: "Evolves Swirlix into Slurpuff when traded.", }, whiteherb: { name: "White Herb", @@ -7234,7 +6725,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 214, gen: 3, - desc: "Restores all lowered stat stages to 0 when one is less than 0. Single use.", }, widelens: { name: "Wide Lens", @@ -7250,7 +6740,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 265, gen: 4, - desc: "The accuracy of attacks by the holder is 1.1x.", }, wikiberry: { name: "Wiki Berry", @@ -7276,7 +6765,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 160, gen: 3, - desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", }, wiseglasses: { name: "Wise Glasses", @@ -7292,7 +6780,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 267, gen: 4, - desc: "Holder's special attacks have 1.1x power.", }, yacheberry: { name: "Yache Berry", @@ -7317,7 +6804,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 188, gen: 4, - desc: "Halves damage taken from a supereffective Ice-type attack. Single use.", }, zapplate: { name: "Zap Plate", @@ -7339,7 +6825,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 300, gen: 4, isNonstandard: "Unobtainable", - desc: "Holder's Electric-type attacks have 1.2x power. Judgment is Electric type.", }, zoomlens: { name: "Zoom Lens", @@ -7356,7 +6841,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 276, gen: 4, - desc: "The accuracy of attacks by the holder is 1.2x if it moves after its target.", }, // Gen 2 items @@ -7372,7 +6856,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 0, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) On switch-in, raises holder's Attack by 2 and confuses it. Single use.", }, berry: { name: "Berry", @@ -7397,7 +6880,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 155, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Restores 10 HP when at 1/2 max HP or less. Single use.", }, bitterberry: { name: "Bitter Berry", @@ -7418,7 +6900,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 156, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder is cured if it is confused. Single use.", }, burntberry: { name: "Burnt Berry", @@ -7441,7 +6922,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 153, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder is cured if it is frozen. Single use.", }, goldberry: { name: "Gold Berry", @@ -7466,7 +6946,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 158, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Restores 30 HP when at 1/2 max HP or less. Single use.", }, iceberry: { name: "Ice Berry", @@ -7489,7 +6968,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 152, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder is cured if it is burned. Single use.", }, mintberry: { name: "Mint Berry", @@ -7512,7 +6990,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 150, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder wakes up if it is asleep. Single use.", }, miracleberry: { name: "Miracle Berry", @@ -7534,7 +7011,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 157, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder cures itself if it is confused or has a status condition. Single use.", }, mysteryberry: { name: "Mystery Berry", @@ -7574,7 +7050,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 154, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Restores 5 PP to the first of the holder's moves to reach 0 PP. Single use.", }, pinkbow: { name: "Pink Bow", @@ -7587,7 +7062,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 251, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", }, polkadotbow: { name: "Polkadot Bow", @@ -7600,7 +7074,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 251, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", }, przcureberry: { name: "PRZ Cure Berry", @@ -7623,7 +7096,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 149, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder cures itself if it is paralyzed. Single use.", }, psncureberry: { name: "PSN Cure Berry", @@ -7646,7 +7118,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 151, gen: 2, isNonstandard: "Past", - desc: "(Gen 2) Holder is cured if it is poisoned. Single use.", }, // CAP items @@ -7664,6 +7135,5 @@ export const Items: {[itemid: string]: ItemData} = { num: -1, gen: 6, isNonstandard: "CAP", - desc: "If held by a Crucibelle, this item allows it to Mega Evolve in battle.", }, }; diff --git a/data/mods/gen1/moves.ts b/data/mods/gen1/moves.ts index 5b4d4effe1..1750c85aa1 100644 --- a/data/mods/gen1/moves.ts +++ b/data/mods/gen1/moves.ts @@ -6,12 +6,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { absorb: { inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If this move breaks the target's substitute, the user does not recover any HP.", }, acid: { inherit: true, - desc: "Has a 33% chance to lower the target's Defense by 1 stage.", - shortDesc: "33% chance to lower the target's Defense by 1.", secondary: { chance: 33, boosts: { @@ -22,8 +19,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, amnesia: { inherit: true, - desc: "Raises the user's Special by 2 stages.", - shortDesc: "Raises the user's Special by 2.", boosts: { spd: 2, spa: 2, @@ -31,8 +26,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, aurorabeam: { inherit: true, - desc: "Has a 33% chance to lower the target's Attack by 1 stage.", - shortDesc: "33% chance to lower the target's Attack by 1.", secondary: { chance: 33, boosts: { @@ -42,11 +35,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, barrage: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, bide: { inherit: true, - desc: "The user spends two or three turns locked into this move and then, on the second or third turn after using this move, the user attacks the opponent, inflicting double the damage in HP it lost during those turns. This move ignores type immunity and cannot be avoided even if the target is using Dig or Fly. The user can choose to switch out during the effect. If the user switches out or is prevented from moving during this move's use, the effect ends. During the effect, if the opposing Pokemon switches out or uses Confuse Ray, Conversion, Focus Energy, Glare, Haze, Leech Seed, Light Screen, Mimic, Mist, Poison Gas, Poison Powder, Recover, Reflect, Rest, Soft-Boiled, Splash, Stun Spore, Substitute, Supersonic, Teleport, Thunder Wave, Toxic, or Transform, the previous damage dealt to the user will be added to the total.", priority: 0, accuracy: true, ignoreEvasion: true, @@ -125,8 +116,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bind: { inherit: true, - desc: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", - shortDesc: "Prevents the target from moving for 2-5 turns.", ignoreImmunity: true, volatileStatus: 'partiallytrapped', self: { @@ -149,8 +138,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bite: { inherit: true, - desc: "Has a 10% chance to flinch the target.", - shortDesc: "10% chance to flinch the target.", secondary: { chance: 10, volatileStatus: 'flinch', @@ -164,12 +151,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bonemerang: { inherit: true, - desc: "Hits twice. If the first hit breaks the target's substitute, the move ends.", }, bubble: { inherit: true, - desc: "Has a 33% chance to lower the target's Speed by 1 stage.", - shortDesc: "33% chance to lower the target's Speed by 1.", secondary: { chance: 33, boosts: { @@ -180,8 +164,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bubblebeam: { inherit: true, - desc: "Has a 33% chance to lower the target's Speed by 1 stage.", - shortDesc: "33% chance to lower the target's Speed by 1.", secondary: { chance: 33, boosts: { @@ -191,8 +173,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, clamp: { inherit: true, - desc: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", - shortDesc: "Prevents the target from moving for 2-5 turns.", accuracy: 75, pp: 10, volatileStatus: 'partiallytrapped', @@ -216,12 +196,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, cometpunch: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, constrict: { inherit: true, - desc: "Has a 33% chance to lower the target's Speed by 1 stage.", - shortDesc: "33% chance to lower the target's Speed by 1.", secondary: { chance: 33, boosts: { @@ -231,8 +208,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, conversion: { inherit: true, - desc: "Causes the user's types to become the same as the current types of the target.", - shortDesc: "User becomes the same type as the target.", volatileStatus: 'conversion', accuracy: true, target: "normal", @@ -243,8 +218,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, counter: { inherit: true, - desc: "Deals damage to the opposing Pokemon equal to twice the damage dealt by the last move used in the battle. This move ignores type immunity. Fails if the user moves first, or if the opposing side's last move was Counter, had 0 power, or was not Normal or Fighting type. Fails if the last move used by either side did 0 damage and was not Confuse Ray, Conversion, Focus Energy, Glare, Haze, Leech Seed, Light Screen, Mimic, Mist, Poison Gas, Poison Powder, Recover, Reflect, Rest, Soft-Boiled, Splash, Stun Spore, Substitute, Supersonic, Teleport, Thunder Wave, Toxic, or Transform.", - shortDesc: "If hit by Normal/Fighting move, deals 2x damage.", ignoreImmunity: true, willCrit: false, damageCallback(pokemon, target) { @@ -270,11 +243,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, defensecurl: { inherit: true, - desc: "Raises the user's Defense by 1 stage.", }, dig: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Bide, Swift, and Transform. If the user is fully paralyzed on the second turn, it continues avoiding attacks until it switches out or successfully executes the second turn of this move or Fly.", basePower: 100, condition: { duration: 2, @@ -296,8 +267,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, disable: { inherit: true, - desc: "For 0 to 7 turns, one of the target's known moves that has at least 1 PP remaining becomes disabled, at random. Fails if one of the target's moves is already disabled, or if none of the target's moves have PP remaining. If any Pokemon uses Haze, this effect ends. Whether or not this move was successful, it counts as a hit for the purposes of the opponent's use of Rage.", - shortDesc: "For 0-7 turns, disables one of the target's moves.", condition: { duration: 4, durationCallback(target, source, effect) { @@ -335,22 +304,17 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, dizzypunch: { inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", secondary: null, }, doubleedge: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not take any recoil damage.", basePower: 100, }, doublekick: { inherit: true, - desc: "Hits twice. Damage is calculated once for the first hit and used for both hits. If the first hit breaks the target's substitute, the move ends.", }, doubleslap: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, dragonrage: { inherit: true, @@ -358,23 +322,17 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, dreameater: { inherit: true, - desc: "The target is unaffected by this move unless it is asleep. The user recovers 1/2 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not recover any HP.", }, earthquake: { inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", }, explosion: { inherit: true, - desc: "The user faints after using this move, unless this move broke the target's substitute. The target's Defense is halved during damage calculation.", basePower: 170, target: "normal", }, fireblast: { inherit: true, - desc: "Has a 30% chance to burn the target.", - shortDesc: "30% chance to burn the target.", secondary: { chance: 30, status: 'brn', @@ -382,8 +340,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, firespin: { inherit: true, - desc: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", - shortDesc: "Prevents the target from moving for 2-5 turns.", accuracy: 70, basePower: 15, volatileStatus: 'partiallytrapped', @@ -407,12 +363,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, fissure: { inherit: true, - desc: "Deals 65535 damage to the target. Fails if the target's Speed is greater than the user's.", - shortDesc: "Deals 65535 damage. Fails if target is faster.", }, fly: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Bide, Swift, and Transform. If the user is fully paralyzed on the second turn, it continues avoiding attacks until it switches out or successfully executes the second turn of this move or Dig.", condition: { duration: 2, onLockMove: 'fly', @@ -433,8 +386,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, focusenergy: { inherit: true, - desc: "While the user remains active, its chance for a critical hit is quartered. Fails if the user already has the effect. If any Pokemon uses Haze, this effect ends.", - shortDesc: "Quarters the user's chance for a critical hit.", condition: { onStart(pokemon) { this.add('-start', pokemon, 'move: Focus Energy'); @@ -445,21 +396,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, furyattack: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, furyswipes: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, glare: { inherit: true, - desc: "Paralyzes the target.", ignoreImmunity: true, }, growth: { inherit: true, - desc: "Raises the user's Special by 1 stage.", - shortDesc: "Raises the user's Special by 1.", boosts: { spa: 1, spd: 1, @@ -467,19 +413,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, guillotine: { inherit: true, - desc: "Deals 65535 damage to the target. Fails if the target's Speed is greater than the user's.", - shortDesc: "Deals 65535 damage. Fails if target is faster.", }, gust: { inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", type: "Normal", }, haze: { inherit: true, - desc: "Resets the stat stages of both Pokemon to 0 and removes stat reductions due to burn and paralysis. Resets Toxic counters to 0 and removes the effect of confusion, Disable, Focus Energy, Leech Seed, Light Screen, Mist, and Reflect from both Pokemon. Removes the opponent's major status condition.", - shortDesc: "Resets all stat changes. Removes foe's status.", onHit(target, source) { this.add('-clearallboost'); for (const pokemon of this.getAllActive()) { @@ -506,8 +446,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, highjumpkick: { inherit: true, - desc: "If this attack misses the target, the user takes 1 HP of crash damage. If the user has a substitute, the crash damage is dealt to the target's substitute if it has one, otherwise no crash damage is dealt.", - shortDesc: "User takes 1 HP of damage if it misses.", onMoveFail(target, source, move) { if (!target.types.includes('Ghost')) { this.directDamage(1, source, target); @@ -516,18 +454,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, horndrill: { inherit: true, - desc: "Deals 65535 damage to the target. Fails if the target's Speed is greater than the user's.", - shortDesc: "Deals 65535 damage. Fails if target is faster.", }, hyperbeam: { inherit: true, - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move, unless the target or its substitute was knocked out by this move.", - shortDesc: "Can't move next turn if target or sub is not KOed.", }, jumpkick: { inherit: true, - desc: "If this attack misses the target, the user takes 1 HP of crash damage. If the user has a substitute, the crash damage is dealt to the target's substitute if it has one, otherwise no crash damage is dealt.", - shortDesc: "User takes 1 HP of damage if it misses.", onMoveFail(target, source, move) { if (!target.types.includes('Ghost')) { this.directDamage(1, source, target); @@ -541,7 +473,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, leechseed: { inherit: true, - desc: "At the end of each of the target's turns, The Pokemon at the user's position steals 1/16 of the target's maximum HP, rounded down and multiplied by the target's current Toxic counter if it has one, even if the target currently has less than that amount of HP remaining. If the target switches out or any Pokemon uses Haze, this effect ends. Grass-type Pokemon are immune to this move.", onHit() {}, condition: { onStart(target) { @@ -576,8 +507,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "While the user remains active, its Special is doubled when taking damage. Critical hits ignore this effect. If any Pokemon uses Haze, this effect ends.", - shortDesc: "While active, user's Special is 2x when damaged.", name: "Light Screen", pp: 30, priority: 0, @@ -598,7 +527,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, metronome: { inherit: true, - desc: "A random move is selected for use, other than Metronome or Struggle.", noMetronome: ["Metronome", "Struggle"], secondary: null, target: "self", @@ -606,8 +534,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mimic: { inherit: true, - desc: "While the user remains active, this move is replaced by a random move known by the target, even if the user already knows that move. The copied move keeps the remaining PP for this move, regardless of the copied move's maximum PP. Whenever one PP is used for a copied move, one PP is used for this move.", - shortDesc: "Random move known by the target replaces this.", onHit(target, source) { const moveslot = source.moves.indexOf('mimic'); if (moveslot < 0) return false; @@ -630,11 +556,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, minimize: { inherit: true, - desc: "Raises the user's evasiveness by 1 stage.", }, mirrormove: { inherit: true, - desc: "The user uses the last move used by the target. Fails if the target has not made a move, or if the last move used was Mirror Move.", onHit(pokemon) { const foe = pokemon.side.foe.active[0]; if (!foe || !foe.lastMove || foe.lastMove.id === 'mirrormove') { @@ -645,28 +569,20 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mist: { inherit: true, - desc: "While the user remains active, it is protected from having its stat stages lowered by other Pokemon, unless caused by the secondary effect of a move. Fails if the user already has the effect. If any Pokemon uses Haze, this effect ends.", }, nightshade: { inherit: true, - desc: "Deals damage to the target equal to the user's level. This move ignores type immunity.", - shortDesc: "Damage = user's level. Can hit Normal types.", ignoreImmunity: true, basePower: 1, }, petaldance: { inherit: true, - desc: "Whether or not this move is successful, the user spends three or four turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. During the effect, this move's accuracy is overwritten every turn with the current calculated accuracy including stat stage changes, but not to less than 1/256 or more than 255/256.", - shortDesc: "Lasts 3-4 turns. Confuses the user afterwards.", }, pinmissile: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, poisonsting: { inherit: true, - desc: "Has a 20% chance to poison the target.", - shortDesc: "20% chance to poison the target.", secondary: { chance: 20, status: 'psn', @@ -674,8 +590,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, psychic: { inherit: true, - desc: "Has a 33% chance to lower the target's Special by 1 stage.", - shortDesc: "33% chance to lower the target's Special by 1.", secondary: { chance: 33, boosts: { @@ -690,8 +604,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, rage: { inherit: true, - desc: "Once this move is successfully used, the user automatically uses this move every turn and can no longer switch out. During the effect, the user's Attack is raised by 1 stage every time it is hit by the opposing Pokemon, and this move's accuracy is overwritten every turn with the current calculated accuracy including stat stage changes, but not to less than 1/256 or more than 255/256.", - shortDesc: "Lasts forever. Raises user's Attack by 1 when hit.", self: { volatileStatus: 'rage', }, @@ -721,14 +633,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, razorwind: { inherit: true, - desc: "This attack charges on the first turn and executes on the second.", - shortDesc: "Charges turn 1. Hits turn 2.", critRatio: 1, target: "normal", }, recover: { inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down. Fails if (user's maximum HP - user's current HP + 1) is divisible by 256.", heal: null, onHit(target) { // Fail when health is 255 or 511 less than max @@ -744,8 +653,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "While the user remains active, its Defense is doubled when taking damage. Critical hits ignore this protection. This effect can be removed by Haze.", - shortDesc: "While active, the user's Defense is doubled.", name: "Reflect", pp: 20, priority: 0, @@ -767,7 +674,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, rest: { inherit: true, - desc: "The user falls asleep for the next two turns and restores all of its HP, curing itself of any major status condition in the process. This does not remove the user's stat penalty for burn or paralysis. Fails if the user has full HP.", onTryMove() {}, onHit(target, source, move) { if (target.hp === target.maxhp) return false; @@ -784,16 +690,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, roar: { inherit: true, - desc: "No competitive use.", - shortDesc: "No competitive use.", forceSwitch: false, onTryHit() {}, priority: 0, }, rockslide: { inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", secondary: null, target: "normal", }, @@ -808,21 +710,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, seismictoss: { inherit: true, - desc: "Deals damage to the target equal to the user's level. This move ignores type immunity.", - shortDesc: "Damage = user's level. Can hit Ghost types.", ignoreImmunity: true, basePower: 1, }, selfdestruct: { inherit: true, - desc: "The user faints after using this move, unless the target's substitute was broken by the damage. The target's Defense is halved during damage calculation.", basePower: 130, target: "normal", }, skullbash: { inherit: true, - desc: "This attack charges on the first turn and executes on the second.", - shortDesc: "Charges turn 1. Hits turn 2.", onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -841,8 +738,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, sludge: { inherit: true, - desc: "Has a 40% chance to poison the target.", - shortDesc: "40% chance to poison the target.", secondary: { chance: 40, status: 'psn', @@ -850,7 +745,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, softboiled: { inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down. Fails if (user's maximum HP - user's current HP + 1) is divisible by 256.", heal: null, onHit(target) { // Fail when health is 255 or 511 less than max @@ -863,44 +757,33 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, solarbeam: { inherit: true, - desc: "This attack charges on the first turn and executes on the second.", - shortDesc: "Charges turn 1. Hits turn 2.", }, sonicboom: { inherit: true, - desc: "Deals 20 HP of damage to the target. This move ignores type immunity.", }, spikecannon: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", }, stomp: { inherit: true, - desc: "Has a 30% chance to flinch the target.", }, struggle: { inherit: true, - desc: "Deals Normal-type damage. If this move was successful, the user takes damage equal to 1/2 the HP lost by the target, rounded down, but not less than 1 HP. This move is automatically used if none of the user's known moves can be selected.", - shortDesc: "User loses 1/2 the HP lost by the target.", pp: 10, recoil: [1, 2], onModifyMove() {}, }, stunspore: { inherit: true, - desc: "Paralyzes the target.", }, submission: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not take any recoil damage.", }, substitute: { num: 164, accuracy: true, basePower: 0, category: "Status", - desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute has 1 HP plus the HP used to create it, and is removed once enough damage is inflicted on it or 255 damage is inflicted at once, or if the user switches out or faints. Until the substitute is broken, it receives damage from all attacks made by the opposing Pokemon and shields the user from status effects and stat stage changes caused by the opponent, unless the effect is Disable, Leech Seed, sleep, primary paralysis, or secondary confusion and the user's substitute did not break. The user still takes normal damage from status effects while behind its substitute, unless the effect is confusion damage, which is applied to the opposing Pokemon's substitute instead. If the substitute breaks during a multi-hit attack, the attack ends. Fails if the user does not have enough HP remaining to create a substitute, or if it already has a substitute. The user will create a substitute and then faint if its current HP is exactly 1/4 of its maximum HP.", - shortDesc: "User takes 1/4 its max HP to put in a Substitute.", name: "Substitute", pp: 10, priority: 0, @@ -992,29 +875,20 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, superfang: { inherit: true, - desc: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP. This move ignores type immunity.", - shortDesc: "Damage = 1/2 target's current HP. Hits Ghosts.", ignoreImmunity: true, basePower: 1, }, swift: { inherit: true, - desc: "This move does not check accuracy and hits even if the target is using Dig or Fly.", - shortDesc: "Never misses, even against Dig and Fly.", }, takedown: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not take any recoil damage.", }, thrash: { inherit: true, - desc: "Whether or not this move is successful, the user spends three or four turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. During the effect, this move's accuracy is overwritten every turn with the current calculated accuracy including stat stage changes, but not to less than 1/256 or more than 255/256.", - shortDesc: "Lasts 3-4 turns. Confuses the user afterwards.", }, thunder: { inherit: true, - desc: "Has a 10% chance to paralyze the target.", - shortDesc: "10% chance to paralyze the target.", secondary: { chance: 10, status: 'par', @@ -1032,24 +906,18 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, transform: { inherit: true, - desc: "The user transforms into the target. The target's current stats, stat stages, types, moves, DVs, species, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP. This move can hit a target using Dig or Fly.", }, triattack: { inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", onHit() {}, secondary: null, }, twineedle: { inherit: true, - desc: "Hits twice, with the second hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, the move ends.", }, whirlwind: { inherit: true, accuracy: 85, - desc: "No competitive use.", - shortDesc: "No competitive use.", forceSwitch: false, onTryHit() {}, priority: 0, @@ -1060,8 +928,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, wrap: { inherit: true, - desc: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", - shortDesc: "Prevents the target from moving for 2-5 turns.", accuracy: 85, ignoreImmunity: true, volatileStatus: 'partiallytrapped', diff --git a/data/mods/gen2/moves.ts b/data/mods/gen2/moves.ts index 77a71f6f78..6e23a66d45 100644 --- a/data/mods/gen2/moves.ts +++ b/data/mods/gen2/moves.ts @@ -3,25 +3,12 @@ */ export const Moves: {[k: string]: ModdedMoveData} = { - absorb: { - inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If the target has a substitute, this move misses.", - }, - acid: { - inherit: true, - shortDesc: "10% chance to lower the target's Defense by 1.", - }, aeroblast: { inherit: true, critRatio: 3, }, - attract: { - inherit: true, - desc: "Causes the target to become infatuated, making it unable to attack 50% of the time. Fails if both the user and the target are the same gender, if either is genderless, or if the target is already infatuated. The effect ends when either the user or the target is no longer active.", - }, beatup: { inherit: true, - desc: "Deals typeless damage. Hits one time for each unfainted Pokemon without a major status condition in the user's party. For each hit, the damage formula uses the participating Pokemon's level, its base Attack as the Attack stat, the target's base Defense as the Defense stat, and ignores stat stages and other effects that modify Attack or Defense. Fails if no party members can participate.", onModifyMove(move, pokemon) { move.type = '???'; move.category = 'Physical'; @@ -63,8 +50,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bide: { inherit: true, - desc: "The user spends two or three turns locked into this move and then, on the second or third turn after using this move, the user attacks the opponent, inflicting double the damage in HP it lost during those turns. If the user is prevented from moving during this move's use, the effect ends. This move does not ignore type immunity.", - shortDesc: "Waits 2-3 turns; deals double the damage taken.", condition: { duration: 3, durationCallback(target, source, effect) { @@ -125,27 +110,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - blizzard: { - inherit: true, - shortDesc: "10% chance to freeze the target.", - }, block: { inherit: true, accuracy: true, ignoreAccuracy: false, }, - bubble: { - inherit: true, - shortDesc: "10% chance to lower the target's Speed by 1.", - }, - conversion2: { - inherit: true, - desc: "The user's type changes to match a type that resists or is immune to the type of the last move used by the opposing Pokemon, even it is one of the user's current types. The original type of the move is used rather than the determined type. Fails if the opposing Pokemon has not used a move.", - shortDesc: "Changes user's type to resist the foe's last move.", - }, counter: { inherit: true, - desc: "Deals damage to the opposing Pokemon equal to twice the HP lost by the user from a physical attack this turn. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user moves first, if the user was not hit by a physical attack this turn, or if the user did not lose HP from the attack. If the opposing Pokemon used Fissure or Horn Drill and missed, this move deals 65535 damage.", damageCallback(pokemon, target) { const lastAttackedBy = pokemon.getLastAttackedBy(); if (!lastAttackedBy || !lastAttackedBy.move || !lastAttackedBy.thisTurn) return false; @@ -171,7 +142,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, curse: { inherit: true, - desc: "If the user is not a Ghost type, lowers the user's Speed by 1 stage and raises the user's Attack and Defense by 1 stage, unless the user's Attack and Defense stats are both at stage 6. If the user is a Ghost type, the user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if the target is already affected or has a substitute.", condition: { onStart(pokemon, source) { this.add('-start', pokemon, 'Curse', '[of] ' + source); @@ -181,22 +151,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - defensecurl: { - inherit: true, - desc: "Raises the user's Defense by 1 stage. While the user remains active, the power of the user's Rollout will be doubled (this effect is not stackable). Baton Pass can be used to transfer this effect to an ally.", - }, - destinybond: { - inherit: true, - desc: "Until the user's next turn, if an opposing Pokemon's attack knocks the user out, that Pokemon faints as well.", - }, detect: { inherit: true, - desc: "The user is protected from attacks made by the opponent during this turn. This move has an X/255 chance of being successful, where X starts at 255 and halves, rounded down, each time this move is successfully used. X resets to 255 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user has a substitute or moves last this turn.", priority: 2, }, dig: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake, Fissure, and Magnitude, the user is unaffected by weather, and Earthquake and Magnitude have doubled power when used against the user.", onPrepareHit(target, source) { return source.status !== 'slp'; }, @@ -223,24 +183,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - disable: { - inherit: true, - desc: "For 1 to 7 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move has 0 PP.", - shortDesc: "For 1-7 turns, disables the target's last move.", - }, doubleedge: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move hits a substitute, the recoil damage is always 1 HP.", - shortDesc: "Has 1/4 recoil.", recoil: [25, 100], }, - earthquake: { - inherit: true, - shortDesc: "Power doubles on Dig.", - }, encore: { inherit: true, - desc: "For 3 to 6 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Metronome, Mimic, Mirror Move, Sketch, Sleep Talk, Struggle, or Transform.", condition: { durationCallback() { return this.random(3, 7); @@ -288,27 +236,19 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, endure: { inherit: true, - desc: "The user will survive attacks made by the opponent during this turn with at least 1 HP. This move has an X/255 chance of being successful, where X starts at 255 and halves, rounded down, each time this move is successfully used. X resets to 255 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user has a substitute or moves last this turn.", priority: 2, }, explosion: { inherit: true, - desc: "The user faints after using this move. The target's Defense is halved during damage calculation.", noSketch: true, }, - fissure: { - inherit: true, - desc: "Deals 65535 damage to the target. This attack's accuracy out of 256 is equal to the lesser of (2 * (user's level - target's level) + 76) and 255, before applying accuracy and evasiveness modifiers. Fails if the target is at a higher level. Can hit a target using Dig.", - }, flail: { inherit: true, - desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down. This move does not apply damage variance and cannot be a critical hit.", noDamageVariance: true, willCrit: false, }, fly: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Thunder, Twister, and Whirlwind, and Gust and Twister have doubled power when used against it.", onPrepareHit(target, source) { return source.status !== 'slp'; }, @@ -338,8 +278,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, focusenergy: { inherit: true, - desc: "Raises the user's chance for a critical hit by 1 stage. Fails if the user already has the effect. Baton Pass can be used to transfer this effect to an ally.", - shortDesc: "Raises the user's critical hit ratio by 1.", condition: { onStart(pokemon) { this.add('-start', pokemon, 'move: Focus Energy'); @@ -352,7 +290,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { foresight: { inherit: true, accuracy: 100, - desc: "As long as the target remains active, if its evasiveness stat stage is greater than the attacker's accuracy stat stage, both are ignored during accuracy checks, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. If the target leaves the field using Baton Pass, the replacement will remain under this effect. Fails if the target is already affected.", onTryHit(target) { if (target.volatiles['foresight']) return false; }, @@ -370,26 +307,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - futuresight: { - inherit: true, - desc: "Deals typeless damage that cannot be a critical hit two turns after this move is used. Damage is calculated against the target on use, and at the end of the final turn that damage is dealt to the Pokemon at the position the original target had at the time. Fails if this move is already in effect for the target's position.", - }, - growl: { - inherit: true, - shortDesc: "Lowers the target's Attack by 1.", - }, - guillotine: { - inherit: true, - desc: "Deals 65535 damage to the target. This attack's accuracy out of 256 is equal to the lesser of (2 * (user's level - target's level) + 76) and 255, before applying accuracy and evasiveness modifiers. Fails if the target is at a higher level.", - }, - gust: { - inherit: true, - desc: "Power doubles if the target is using Fly.", - shortDesc: "Power doubles during Fly.", - }, healbell: { inherit: true, - desc: "Every Pokemon in the user's party is cured of its major status condition.", onHit(target, source) { this.add('-cureteam', source, '[from] move: Heal Bell'); for (const pokemon of source.side.pokemon) { @@ -399,8 +318,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, highjumpkick: { inherit: true, - desc: "If this attack is not successful and the target was not immune, the user loses HP equal to 1/8 the damage the target would have taken, rounded down, but not less than 1 HP, as crash damage.", - shortDesc: "If miss, user takes 1/8 damage it would've dealt.", onMoveFail(target, source, move) { if (target.runImmunity('Fighting')) { const damage = this.getDamage(source, target, move, true); @@ -409,18 +326,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - horndrill: { - inherit: true, - desc: "Deals 65535 damage to the target. This attack's accuracy out of 256 is equal to the lesser of (2 * (user's level - target's level) + 76) and 255, before applying accuracy and evasiveness modifiers. Fails if the target is at a higher level.", - }, - icywind: { - inherit: true, - shortDesc: "100% chance to lower the target's Speed by 1.", - }, jumpkick: { inherit: true, - desc: "If this attack is not successful and the target was not immune, the user loses HP equal to 1/8 the damage the target would have taken, rounded down, but not less than 1 HP, as crash damage.", - shortDesc: "If miss, user takes 1/8 damage it would've dealt.", onMoveFail(target, source, move) { if (target.runImmunity('Fighting')) { const damage = this.getDamage(source, target, move, true); @@ -455,14 +362,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - leer: { - inherit: true, - shortDesc: "Lowers the target's Defense by 1.", - }, lightscreen: { inherit: true, - desc: "For 5 turns, the user and its party members have their Special Defense doubled. Critical hits ignore this effect. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, the user's party has doubled Sp. Def.", condition: { duration: 5, // Sp. Def boost applied directly in stat calculation @@ -478,8 +379,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { lockon: { inherit: true, accuracy: true, - desc: "The next accuracy check against the target succeeds. The target will still avoid Earthquake, Fissure, and Magnitude if it is using Fly. If the target leaves the field using Baton Pass, the replacement remains under this effect. This effect ends when the target leaves the field or an accuracy check is done against it.", - shortDesc: "The next move will not miss the target.", onTryHit(target) { if (target.volatiles['foresight'] || target.volatiles['lockon']) return false; }, @@ -492,8 +391,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, lowkick: { inherit: true, - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", accuracy: 90, basePower: 50, basePowerCallback() { @@ -511,7 +408,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, metronome: { inherit: true, - desc: "A random move is selected for use, other than Counter, Destiny Bond, Detect, Endure, Metronome, Mimic, Mirror Coat, Protect, Sketch, Sleep Talk, Struggle, or Thief.", noMetronome: [ "Counter", "Destiny Bond", "Detect", "Endure", "Metronome", "Mimic", "Mirror Coat", "Protect", "Sketch", "Sleep Talk", "Struggle", "Thief", ], @@ -521,25 +417,17 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, accuracy: true, ignoreAccuracy: false, - desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has 5 PP. Fails if the target has not made a move, if the user already knows the move, or if the move is Struggle.", noSketch: true, }, mindreader: { inherit: true, accuracy: 100, - desc: "The next accuracy check against the target succeeds. The target will still avoid Earthquake, Fissure, and Magnitude if it is using Fly. If the target leaves the field using Baton Pass, the replacement remains under this effect. This effect ends when the target leaves the field or an accuracy check is done against it.", - shortDesc: "The next move will not miss the target.", onTryHit(target) { if (target.volatiles['foresight'] || target.volatiles['lockon']) return false; }, }, - minimize: { - inherit: true, - desc: "Raises the user's evasiveness by 1 stage. Whether or not the user's evasiveness was changed, Stomp will have its power doubled if used against the user while it is active. Baton Pass can be used to transfer this effect to an ally.", - }, mirrorcoat: { inherit: true, - desc: "Deals damage to the opposing Pokemon equal to twice the HP lost by the user from a special attack this turn. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user moves first, if the user was not hit by a special attack this turn, or if the user did not lose HP from the attack.", damageCallback(pokemon, target) { const lastAttackedBy = pokemon.getLastAttackedBy(); if (!lastAttackedBy || !lastAttackedBy.move || !lastAttackedBy.thisTurn) return false; @@ -557,7 +445,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mirrormove: { inherit: true, - desc: "The user uses the last move used by the target. Fails if the target has not made a move, or if the last move used was Metronome, Mimic, Mirror Move, Sketch, Sleep Talk, Transform, or any move the user knows.", onHit(pokemon) { const noMirror = ['metronome', 'mimic', 'mirrormove', 'sketch', 'sleeptalk', 'transform']; const target = pokemon.side.foe.active[0]; @@ -572,14 +459,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, noSketch: true, }, - mist: { - inherit: true, - desc: "While the user remains active, it is protected from having its stat stages lowered by other Pokemon. Fails if the user already has the effect. Baton Pass can be used to transfer this effect to an ally.", - shortDesc: "While active, user is protected from stat drops.", - }, moonlight: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", onHit(pokemon) { if (this.field.isWeather(['sunnyday', 'desolateland'])) { this.heal(pokemon.maxhp); @@ -592,7 +473,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, morningsun: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", onHit(pokemon) { if (this.field.isWeather(['sunnyday', 'desolateland'])) { this.heal(pokemon.maxhp); @@ -621,7 +501,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, outrage: { inherit: true, - desc: "Whether or not this move is successful, the user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", onMoveFail(target, source, move) { source.addVolatile('lockedmove'); }, @@ -638,7 +517,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, petaldance: { inherit: true, - desc: "Whether or not this move is successful, the user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", onMoveFail(target, source, move) { source.addVolatile('lockedmove'); }, @@ -650,61 +528,28 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, poisongas: { inherit: true, - shortDesc: "Poisons the target.", ignoreImmunity: false, }, poisonpowder: { inherit: true, ignoreImmunity: false, }, - powdersnow: { - inherit: true, - shortDesc: "10% chance to freeze the target.", - }, - present: { - inherit: true, - desc: "If this move is successful, it deals damage or heals the target. 102/256 chance for 40 power, 76/256 chance for 80 power, 26/256 chance for 120 power, or 52/256 chance to heal the target by 1/4 of its maximum HP, rounded down. If this move deals damage, it uses an abnormal version of the damage formula by substituting certain values. The user's Attack stat is replaced with 10 times the effectiveness of this move against the target, the target's Defense stat is replaced with the index number of the user's secondary type, and the user's level is replaced with the index number of the target's secondary type. If a Pokemon does not have a secondary type, its primary type is used. The index numbers for each type are Normal: 0, Fighting: 1, Flying: 2, Poison: 3, Ground: 4, Rock: 5, Bug: 7, Ghost: 8, Steel: 9, Fire: 20, Water: 21, Grass: 22, Electric: 23, Psychic: 24, Ice: 25, Dragon: 26, Dark: 27. If at any point a division by 0 would happen in the damage formula, it divides by 1 instead.", - }, protect: { inherit: true, - desc: "The user is protected from attacks made by the opponent during this turn. This move has an X/255 chance of being successful, where X starts at 255 and halves, rounded down, each time this move is successfully used. X resets to 255 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user has a substitute or moves last this turn.", priority: 2, }, - psychup: { - inherit: true, - desc: "The user copies all of the target's current stat stage changes. Fails if the target's stat stages are 0.", - }, psywave: { inherit: true, - desc: "Deals damage to the target equal to a random number from 1 to (user's level * 1.5 - 1), rounded down, but not less than 1 HP.", - shortDesc: "Random damage from 1 to (user's level*1.5 - 1).", damageCallback(pokemon) { return this.random(1, pokemon.level + Math.floor(pokemon.level / 2)); }, }, - pursuit: { - inherit: true, - desc: "If the target switches out this turn, this move hits it before it leaves the field with doubled power and the user's turn is over.", - shortDesc: "Power doubles if the foe is switching out.", - }, - rage: { - inherit: true, - desc: "Once this move is successfully used, X starts at 1. This move's damage is multiplied by X, and whenever the user is hit by the opposing Pokemon, X increases by 1, with a maximum of 255. X resets to 1 when the user is no longer active or did not choose this move for use.", - shortDesc: "Next Rage increases in damage if hit during use.", - }, - raindance: { - inherit: true, - desc: "For 5 turns, the weather becomes Rain Dance, even if the current weather is Rain Dance. The damage of Water-type attacks is multiplied by 1.5 and the damage of Fire-type attacks is multiplied by 0.5 during the effect.", - }, razorleaf: { inherit: true, - shortDesc: "High critical hit ratio.", critRatio: 3, }, razorwind: { inherit: true, - desc: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second.", - shortDesc: "Charges, then hits target turn 2. High crit ratio.", accuracy: 75, critRatio: 3, onPrepareHit(target, source) { @@ -713,8 +558,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, reflect: { inherit: true, - desc: "For 5 turns, the user and its party members have their Defense doubled. Critical hits ignore this effect. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, the user's party has doubled Def.", condition: { duration: 5, // Defense boost applied directly in stat calculation @@ -729,7 +572,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, rest: { inherit: true, - desc: "The user falls asleep for the next two turns and restores all of its HP, curing itself of any major status condition in the process, even if it was already asleep. Fails if the user has full HP.", onTryMove(pokemon) { if (pokemon.hp < pokemon.maxhp) return; this.add('-fail', pokemon); @@ -750,13 +592,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, reversal: { inherit: true, - desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down. This move does not apply damage variance and cannot be a critical hit.", noDamageVariance: true, willCrit: false, }, roar: { inherit: true, - desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the user moves before the target.", onTryHit() { for (const action of this.queue) { // Roar only works if it is the last action in a turn, including when it's called by Sleep Talk @@ -765,27 +605,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, priority: -1, }, - rockslide: { - inherit: true, - shortDesc: "30% chance to flinch the target.", - }, - safeguard: { - inherit: true, - desc: "For 5 turns, the user and its party members cannot have major status conditions or confusion inflicted on them by other Pokemon. During the effect, Outrage, Thrash, and Petal Dance do not confuse the user. Fails if the effect is already active on the user's side.", - }, - sandstorm: { - inherit: true, - desc: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/8 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type. Fails if the current weather is Sandstorm.", - }, selfdestruct: { inherit: true, - desc: "The user faints after using this move. The target's Defense is halved during damage calculation.", noSketch: true, }, sketch: { inherit: true, - desc: "Fails when used in Link Battles.", - shortDesc: "Fails when used in Link Battles.", onHit() { // Sketch always fails in Link Battles this.add('-nothing'); @@ -799,8 +624,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, skyattack: { inherit: true, - desc: "This attack charges on the first turn and executes on the second.", - shortDesc: "Charges turn 1. Hits turn 2.", critRatio: 1, onPrepareHit(target, source) { return source.status !== 'slp'; @@ -813,7 +636,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, sleeptalk: { inherit: true, - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Bide, Sleep Talk, or any two-turn move.", onHit(pokemon) { const NoSleepTalk = ['bide', 'sleeptalk']; const moves = []; @@ -832,7 +654,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, solarbeam: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. Damage is halved if the weather is Rain Dance. If the weather is Sunny Day, the move completes in one turn.", onPrepareHit(target, source) { return source.status !== 'slp'; }, @@ -846,8 +667,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, spikes: { inherit: true, - desc: "Sets up a hazard on the opposing side of the field, causing each opposing Pokemon that switches in to lose 1/8 of their maximum HP, rounded down, unless it is a Flying-type Pokemon. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully.", - shortDesc: "Hurts grounded foes on switch-in. Max 1 layer.", condition: { // this is a side condition onStart(side) { @@ -865,30 +684,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - spite: { - inherit: true, - desc: "Causes the target's last move used to lose 2 to 5 PP, at random. Fails if the target has not made a move, or if the move has 0 PP.", - }, - stomp: { - inherit: true, - desc: "Has a 30% chance to flinch the target. Power doubles if the target is under the effect of Minimize.", - }, - stringshot: { - inherit: true, - shortDesc: "Lowers the target's Speed by 1.", - }, - struggle: { - inherit: true, - desc: "Deals typeless damage. If this move was successful, the user takes damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. This move is automatically used if none of the user's known moves can be selected.", - }, - submission: { - inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP. If this move hits a substitute, the recoil damage is always 1 HP.", - }, - sunnyday: { - inherit: true, - desc: "For 5 turns, the weather becomes Sunny Day, even if the current weather is Sunny Day. The damage of Fire-type attacks is multiplied by 1.5 and the damage of Water-type attacks is multiplied by 0.5 during the effect.", - }, substitute: { inherit: true, condition: { @@ -959,14 +754,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - surf: { - inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", - }, swagger: { inherit: true, - desc: "Raises the target's Attack by 2 stages and confuses it. This move will miss if the target's Attack cannot be raised.", onTryHit(target, pokemon) { if (target.boosts.atk >= 6 || target.getStat('atk', false, true) === 999) { this.add('-miss', pokemon); @@ -974,17 +763,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - sweetscent: { - inherit: true, - shortDesc: "Lowers the target's evasiveness by 1.", - }, - swift: { - inherit: true, - shortDesc: "This move does not check accuracy.", - }, synthesis: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", onHit(pokemon) { if (this.field.isWeather(['sunnyday', 'desolateland'])) { this.heal(pokemon.maxhp); @@ -995,17 +775,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - tailwhip: { - inherit: true, - shortDesc: "Lowers the target's Defense by 1.", - }, - takedown: { - inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP. If this move hits a substitute, the recoil damage is always 1 HP.", - }, thief: { inherit: true, - desc: "Has a 100% chance to steal the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail.", onAfterHit() {}, secondary: { chance: 100, @@ -1027,7 +798,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, thrash: { inherit: true, - desc: "Whether or not this move is successful, the user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", onMoveFail(target, source, move) { source.addVolatile('lockedmove'); }, @@ -1037,23 +807,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - thunder: { - inherit: true, - desc: "Has a 30% chance to paralyze the target. This move can hit a target using Fly. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", - }, toxic: { inherit: true, ignoreImmunity: false, }, transform: { inherit: true, - desc: "The user transforms into the target. The target's current stats, stat stages, types, moves, DVs, species, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP. This move fails if the target has transformed.", - shortDesc: "Copies target's stats, moves, types, and species.", noSketch: true, }, triattack: { inherit: true, - desc: "This move selects burn, freeze, or paralysis at random, and has a 20% chance to inflict the target with that status. If the target is frozen and burn was selected, it thaws out.", onHit(target, source, move) { move.statusRoll = ['par', 'frz', 'brn'][this.random(3)]; }, @@ -1068,21 +831,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, triplekick: { inherit: true, - desc: "Hits one to three times, at random. Power increases to 20 for the second hit and 30 for the third.", - shortDesc: "Hits 1-3 times. Power rises with each hit.", multiaccuracy: false, multihit: [1, 3], }, - twineedle: { - inherit: true, - desc: "Hits twice, with the second hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit but the target cannot be poisoned by it.", - shortDesc: "Hits 2 times. Last hit has 20% chance to poison.", - }, - twister: { - inherit: true, - desc: "Has a 20% chance to flinch the target. Power doubles if the target is using Fly.", - shortDesc: "20% chance to flinch the target.", - }, vitalthrow: { inherit: true, accuracy: true, @@ -1090,7 +841,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, whirlwind: { inherit: true, - desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the user moves before the target.", onTryHit() { for (const action of this.queue) { // Whirlwind only works if it is the last action in a turn, including when it's called by Sleep Talk diff --git a/data/mods/gen3/abilities.ts b/data/mods/gen3/abilities.ts index 0de7fa4fa6..ec052b2fd0 100644 --- a/data/mods/gen3/abilities.ts +++ b/data/mods/gen3/abilities.ts @@ -1,8 +1,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { cutecharm: { inherit: true, - desc: "There is a 1/3 chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender. This effect does not happen if this Pokemon did not lose HP from the attack.", - shortDesc: "1/3 chance of infatuating Pokemon of the opposite gender if they make contact.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(1, 3)) { @@ -13,8 +11,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, effectspore: { inherit: true, - desc: "10% chance a Pokemon making contact with this Pokemon will be poisoned, paralyzed, or fall asleep. This effect does not happen if this Pokemon did not lose HP from the attack.", - shortDesc: "10% chance of poison/paralysis/sleep on others making contact with this Pokemon.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact'] && !source.status) { const r = this.random(300); @@ -30,8 +26,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, flamebody: { inherit: true, - desc: "1/3 chance a Pokemon making contact with this Pokemon will be burned. This effect does not happen if this Pokemon did not lose HP from the attack.", - shortDesc: "1/3 chance a Pokemon making contact with this Pokemon will be burned.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(1, 3)) { @@ -42,7 +36,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, flashfire: { inherit: true, - desc: "This Pokemon is immune to Fire-type moves, as long as it is not frozen. The first time it is hit by a Fire-type move, damage from its Fire-type attacks will be multiplied by 1.5 as long as it remains active and has this Ability. If this Pokemon has a major status condition, is a Fire type, or has a substitute, Will-O-Wisp will not activate this Ability.", onTryHit(target, source, move) { if (target !== source && move.type === 'Fire') { if (move.id === 'willowisp' && (target.hasType('Fire') || target.status || target.volatiles['substitute'])) { @@ -87,8 +80,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, }, lightningrod: { - desc: "If this Pokemon is not the target of a single-target Electric-type move used by an opposing Pokemon, this Pokemon redirects that move to itself. This effect considers Hidden Power a Normal-type move.", - shortDesc: "This Pokemon draws single-target Electric moves used by opponents to itself.", onFoeRedirectTarget(target, source, source2, move) { if (move.type !== 'Electric') return; if (this.validTarget(this.effectData.target, source, move.target)) { @@ -101,8 +92,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, minus: { inherit: true, - desc: "If an active Pokemon has the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", - shortDesc: "If an active Pokemon has the Plus Ability, this Pokemon's Sp. Atk is 1.5x.", onModifySpA(spa, pokemon) { for (const active of this.getAllActive()) { if (!active.fainted && active.hasAbility('plus')) { @@ -113,8 +102,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, plus: { inherit: true, - desc: "If an active Pokemon has the Minus Ability, this Pokemon's Special Attack is multiplied by 1.5.", - shortDesc: "If an active Pokemon has the Minus Ability, this Pokemon's Sp. Atk is 1.5x.", onModifySpA(spa, pokemon) { for (const active of this.getAllActive()) { if (!active.fainted && active.hasAbility('minus')) { @@ -125,8 +112,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, poisonpoint: { inherit: true, - desc: "1/3 chance a Pokemon making contact with this Pokemon will be poisoned. This effect does not happen if this Pokemon did not lose HP from the attack.", - shortDesc: "1/3 chance a Pokemon making contact with this Pokemon will be poisoned.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(1, 3)) { @@ -143,8 +128,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, roughskin: { inherit: true, - desc: "Pokemon making contact with this Pokemon lose 1/16 of their maximum HP, rounded down. This effect does not happen if this Pokemon did not lose HP from the attack.", - shortDesc: "Pokemon making contact with this Pokemon lose 1/16 of their max HP.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { this.damage(source.baseMaxhp / 16, source, target); @@ -153,16 +136,12 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, shadowtag: { inherit: true, - desc: "Prevents opposing Pokemon from choosing to switch out.", - shortDesc: "Prevents opposing Pokemon from choosing to switch out.", onFoeTrapPokemon(pokemon) { pokemon.trapped = true; }, }, static: { inherit: true, - desc: "1/3 chance a Pokemon making contact with this Pokemon will be paralyzed. This effect does not happen if this Pokemon did not lose HP from the attack.", - shortDesc: "1/3 chance a Pokemon making contact with this Pokemon will be paralyzed.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(1, 3)) { @@ -206,8 +185,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, voltabsorb: { inherit: true, - desc: "This Pokemon is immune to damaging Electric-type moves and restores 1/4 of its maximum HP, rounded down, when hit by one.", - shortDesc: "This Pokemon heals 1/4 its max HP when hit by a damaging Electric move; immunity.", onTryHit(target, source, move) { if (target !== source && move.type === 'Electric' && move.id !== 'thunderwave') { if (!this.heal(target.baseMaxhp / 4)) { @@ -217,8 +194,4 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, - wonderguard: { - inherit: true, - shortDesc: "This Pokemon is only damaged by supereffective moves and indirect damage.", - }, }; diff --git a/data/mods/gen3/items.ts b/data/mods/gen3/items.ts index e626e34a2f..41528d1806 100644 --- a/data/mods/gen3/items.ts +++ b/data/mods/gen3/items.ts @@ -34,7 +34,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, blackbelt: { inherit: true, - desc: "Holder's Fighting-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Fighting') { return basePower * 1.1; @@ -43,7 +42,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, blackglasses: { inherit: true, - desc: "Holder's Dark-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Dark') { return basePower * 1.1; @@ -52,7 +50,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, charcoal: { inherit: true, - desc: "Holder's Fire-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Fire') { return basePower * 1.1; @@ -61,7 +58,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, dragonfang: { inherit: true, - desc: "Holder's Dragon-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Dragon') { return basePower * 1.1; @@ -70,7 +66,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, enigmaberry: { name: "Enigma Berry", - desc: "No competitive use.", spritenum: 124, isBerry: true, num: 208, @@ -99,7 +94,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, hardstone: { inherit: true, - desc: "Holder's Rock-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Rock') { return basePower * 1.1; @@ -143,7 +137,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, laxincense: { inherit: true, - desc: "The accuracy of attacks against the holder is 0.95x.", onModifyAccuracy(accuracy) { if (typeof accuracy !== 'number') return; this.debug('lax incense - decreasing accuracy'); @@ -162,12 +155,10 @@ export const Items: {[k: string]: ModdedItemData} = { }, lightball: { inherit: true, - desc: "If held by a Pikachu, its Special Attack is doubled.", onModifyAtk() {}, }, magnet: { inherit: true, - desc: "Holder's Electric-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Electric') { return basePower * 1.1; @@ -186,8 +177,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, metalcoat: { inherit: true, - desc: "Holder's Steel-type attacks have 1.1x power. Evolves Onix into Steelix and Scyther into Scizor when traded.", - shortDesc: "Holder's Steel-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Steel') { return basePower * 1.1; @@ -196,7 +185,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, miracleseed: { inherit: true, - desc: "Holder's Grass-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Grass') { return basePower * 1.1; @@ -205,7 +193,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, mysticwater: { inherit: true, - desc: "Holder's Water-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Water') { return basePower * 1.1; @@ -214,7 +201,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, nevermeltice: { inherit: true, - desc: "Holder's Ice-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Ice') { return basePower * 1.1; @@ -243,7 +229,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, poisonbarb: { inherit: true, - desc: "Holder's Poison-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Poison') { return basePower * 1.1; @@ -270,7 +255,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, seaincense: { inherit: true, - desc: "Holder's Water-type attacks have 1.05x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Water') { return basePower * 1.05; @@ -279,7 +263,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, sharpbeak: { inherit: true, - desc: "Holder's Flying-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move && move.type === 'Flying') { return basePower * 1.1; @@ -288,7 +271,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, silkscarf: { inherit: true, - desc: "Holder's Normal-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Normal') { return basePower * 1.1; @@ -297,7 +279,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, silverpowder: { inherit: true, - desc: "Holder's Bug-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Bug') { return basePower * 1.1; @@ -306,7 +287,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, sitrusberry: { inherit: true, - desc: "Restores 30 HP when at 1/2 max HP or less. Single use.", onUpdate() {}, onResidualOrder: 5, onResidual(pokemon) { @@ -320,7 +300,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, softsand: { inherit: true, - desc: "Holder's Ground-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Ground') { return basePower * 1.1; @@ -329,7 +308,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, spelltag: { inherit: true, - desc: "Holder's Ghost-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Ghost') { return basePower * 1.1; @@ -348,7 +326,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, twistedspoon: { inherit: true, - desc: "Holder's Psychic-type attacks have 1.1x power.", onBasePower(basePower, user, target, move) { if (move.type === 'Psychic') { return basePower * 1.1; diff --git a/data/mods/gen3/moves.ts b/data/mods/gen3/moves.ts index 4fea15b9b7..2f75ced3d0 100644 --- a/data/mods/gen3/moves.ts +++ b/data/mods/gen3/moves.ts @@ -5,13 +5,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { absorb: { inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down.", pp: 20, }, acid: { inherit: true, - desc: "Has a 10% chance to lower the target's Defense by 1 stage.", - shortDesc: "10% chance to lower the foe(s) Defense by 1.", secondary: { chance: 10, boosts: { @@ -23,33 +20,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: {contact: 1, protect: 1, mirror: 1}, }, - armthrust: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - assist: { - inherit: true, - desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Counter, Covet, Destiny Bond, Detect, Endure, Focus Punch, Follow Me, Helping Hand, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Thief, or Trick.", - }, astonish: { inherit: true, basePowerCallback(pokemon, target) { if (target.volatiles['minimize']) return 60; return 30; }, - desc: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", - }, - barrage: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - beatup: { - inherit: true, - desc: "Deals typeless damage. Hits one time for each unfainted Pokemon without a major status condition in the user's party, or fails if no Pokemon meet the criteria. For each hit, the damage formula uses the participating Pokemon's base Attack as the Attack stat, the target's base Defense as the Defense stat, and ignores stat stages and other effects that modify Attack or Defense; each hit is considered to come from the user.", }, bide: { inherit: true, - desc: "The user spends two turns locked into this move and then, on the second turn after using this move, the user attacks the last Pokemon that hit it, inflicting double the damage in HP it lost during the two turns. If the last Pokemon that hit it is no longer active, the user attacks a random opposing Pokemon instead. If the user is prevented from moving during this move's use, the effect ends. This move does not ignore type immunity.", accuracy: 100, priority: 0, condition: { @@ -109,59 +88,21 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - bind: { - inherit: true, - desc: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, blizzard: { inherit: true, - desc: "Has a 10% chance to freeze the target.", - shortDesc: "10% chance to freeze foe(s).", onModifyMove() { }, }, block: { inherit: true, accuracy: 100, ignoreAccuracy: true, - desc: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", - }, - bonerush: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - bonemerang: { - inherit: true, - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - }, - bounce: { - inherit: true, - desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it.", - }, - bulletseed: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - camouflage: { - inherit: true, - desc: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain. Fails if the type is one of the user's current types.", }, charge: { inherit: true, - desc: "If the user uses an Electric-type attack on the next turn, its power will be doubled.", - shortDesc: "The user's Electric attack next turn has 2x power.", boosts: null, }, - clamp: { - inherit: true, - desc: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, - cometpunch: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, conversion: { inherit: true, - desc: "The user's type changes to match the original type of one of its known moves besides Curse, at random, but not either of its current types. Fails if the user cannot change its type, or if this move would only be able to select one of the user's current types.", onHit(target) { const possibleTypes = target.moveSlots.map(moveSlot => { const move = this.dex.getMove(moveSlot.id); @@ -179,13 +120,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-start', target, 'typechange', type); }, }, - conversion2: { - inherit: true, - desc: "The user's type changes to match a type that resists or is immune to the type of the last move used against the user, if it was successful against the user, but not either of its current types. The determined type of the move is used rather than the original type, but considers Struggle as Normal. Fails if the last move used against the user was not successful, or if this move would only be able to select one of the user's current types.", - }, counter: { inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn, or if the user did not lose HP from the attack.", condition: { duration: 1, noCopy: true, @@ -209,13 +145,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, covet: { inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Enigma Berry. Items lost to this move cannot be regained with Recycle.", flags: {protect: 1, mirror: 1}, }, crunch: { inherit: true, - desc: "Has a 20% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "20% chance to lower the target's Sp. Def by 1.", secondary: { chance: 20, boosts: { @@ -223,20 +156,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - detect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has an X/65536 chance of being successful, where X starts at 65535 and halves, rounded down, each time this move is successfully used. After the fourth successful use in a row, X drops to 118 and continues with seemingly random values from 0-65535 on subsequent successful uses. X resets to 65535 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", - }, dig: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude, which have doubled power when used against it, and is also unaffected by weather.", basePower: 60, }, disable: { inherit: true, accuracy: 55, - desc: "For 2 to 5 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move has 0 PP.", - shortDesc: "For 2-5 turns, disables the target's last move.", flags: {protect: 1, mirror: 1, authentic: 1}, volatileStatus: 'disable', condition: { @@ -284,7 +210,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, dive: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool, which have doubled power when used against it, and is also unaffected by weather.", basePower: 60, }, doomdesire: { @@ -321,22 +246,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return null; }, }, - doublekick: { - inherit: true, - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - }, - doubleslap: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - dreameater: { - inherit: true, - desc: "The target is unaffected by this move unless it is asleep and does not have a substitute. The user recovers 1/2 the HP lost by the target, rounded down, but not less than 1 HP.", - }, encore: { inherit: true, - desc: "For 3 to 6 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Mimic, Mirror Move, Sketch, Struggle, or Transform.", - shortDesc: "The target repeats its last move for 3-6 turns.", flags: {protect: 1, mirror: 1, authentic: 1}, volatileStatus: 'encore', condition: { @@ -389,17 +300,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - endure: { - inherit: true, - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has an X/65536 chance of being successful, where X starts at 65535 and halves, rounded down, each time this move is successfully used. After the fourth successful use in a row, X drops to 118 and continues with seemingly random values from 0-65535 on subsequent successful uses. X resets to 65535 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", - }, - explosion: { - inherit: true, - desc: "The user faints after using this move. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", - }, extrasensory: { inherit: true, - desc: "Has a 10% chance to flinch the target. Damage doubles if the target has used Minimize while active.", basePowerCallback(pokemon, target) { if (target.volatiles['minimize']) return 160; return 80; @@ -413,53 +315,22 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: {protect: 1, mirror: 1}, }, - firespin: { - inherit: true, - desc: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, - flail: { - inherit: true, - desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", - }, flash: { inherit: true, accuracy: 70, }, fly: { inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it.", basePower: 70, }, - followme: { - inherit: true, - desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat, or drawn in by the Lightning Rod Ability. This effect remains active even if the user leaves the field. Fails if it is not a Double Battle.", - }, - foresight: { - inherit: true, - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", - }, - furyattack: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - furyswipes: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, gigadrain: { inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down.", pp: 5, }, glare: { inherit: true, - desc: "Paralyzes the target. This move does not ignore type immunity.", ignoreImmunity: false, }, - hail: { - inherit: true, - desc: "For 5 turns, the weather becomes Hail. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are an Ice type. Fails if the current weather is Hail.", - }, hiddenpower: { inherit: true, basePower: 0, @@ -476,8 +347,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { highjumpkick: { inherit: true, basePower: 85, - desc: "If this attack is not successful and the target was not immune, the user loses HP equal to half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage.", - shortDesc: "If miss, user takes 1/2 damage it would've dealt.", onMoveFail(target, source, move) { if (target.runImmunity('Fighting')) { const damage = this.getDamage(source, target, move, true); @@ -490,20 +359,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, accuracy: 60, }, - iciclespear: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - ingrain: { - inherit: true, - desc: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, and the replacement will remain trapped and still receive the healing effect.", - shortDesc: "User recovers 1/16 max HP per turn. Traps user.", - }, jumpkick: { inherit: true, basePower: 70, - desc: "If this attack is not successful and the target was not immune, the user loses HP equal to half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage.", - shortDesc: "If miss, user takes 1/2 damage it would've dealt.", onMoveFail(target, source, move) { if (target.runImmunity('Fighting')) { const damage = this.getDamage(source, target, move, true); @@ -512,66 +370,30 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - knockoff: { - inherit: true, - desc: "The target's held item is lost for the rest of the battle, unless it has the Sticky Hold Ability. During the effect, the target cannot gain a new item by any means.", - }, leafblade: { inherit: true, basePower: 70, }, - leechlife: { - inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down.", - }, - leechseed: { - inherit: true, - desc: "The Pokemon at the user's position steals 1/8 of the target's maximum HP, rounded down, at the end of each turn. If the target uses Baton Pass, the replacement will continue being leeched. If the target switches out or uses Rapid Spin, the effect ends. Grass-type Pokemon are immune to this move on use, but not its effect.", - }, - lightscreen: { - inherit: true, - desc: "For 5 turns, the user and its party members take 1/2 damage from special attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break. Fails if the effect is already active on the user's side.", - }, lockon: { inherit: true, accuracy: 100, }, - magiccoat: { - inherit: true, - desc: "The user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. If the move targets both opposing Pokemon and the Pokemon under this effect is on the left side, it will reflect the move targeting both opposing Pokemon and its ally will not be affected by the original move; otherwise, if the Pokemon under this effect is on the right side, its ally will be affected by the original move and this Pokemon will reflect the move only targeting the original user. The effect ends once a move is reflected or at the end of the turn. Moves reflected in this way can be reflected again by another Pokemon under this effect. If the user has the Soundproof Ability, it nullifies sound-based moves before this effect happens. The Lightning Rod Ability redirects Electric moves before this move takes effect.", - }, meanlook: { inherit: true, accuracy: 100, ignoreAccuracy: true, - desc: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", }, megadrain: { inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down.", pp: 10, }, - memento: { - inherit: true, - desc: "Lowers the target's Attack and Special Attack by 2 stages. The user faints. This move does not check accuracy, and can hit targets in the middle of a two-turn move. Fails entirely if the target's Attack and Special Attack stat stages are both -6.", - }, - metronome: { - inherit: true, - desc: "A random move is selected for use, other than Counter, Covet, Destiny Bond, Detect, Endure, Focus Punch, Follow Me, Helping Hand, Metronome, Mimic, Mirror Coat, Protect, Sketch, Sleep Talk, Snatch, Struggle, Thief, or Trick.", - }, mimic: { inherit: true, accuracy: 100, ignoreAccuracy: true, - desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has 5 PP. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Metronome, Mimic, Sketch, or Struggle.", - }, - minimize: { - inherit: true, - desc: "Raises the user's evasiveness by 1 stage. Whether or not the user's evasiveness was changed, Astonish, Extrasensory, Needle Arm, and Stomp will have their damage doubled if used against the user while it is active.", }, mirrorcoat: { inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn, or if the user did not lose HP from the attack.", condition: { duration: 1, noCopy: true, @@ -595,7 +417,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mirrormove: { inherit: true, - desc: "The user uses the last move that successfully targeted the user. The copied move is used with no specific target. Fails if no move has targeted the user, if the move missed, failed, or had no effect on the user, or if the move cannot be copied by this move.", onTryHit() { }, onHit(pokemon) { const noMirror = [ @@ -615,27 +436,19 @@ export const Moves: {[k: string]: ModdedMoveData} = { naturepower: { inherit: true, accuracy: 95, - desc: "This move calls another move for use depending on the battle terrain. Swift in Wi-Fi battles.", - shortDesc: "Attack changes based on terrain. (Swift)", onHit(target) { this.useMove('swift', target); }, }, needlearm: { inherit: true, - desc: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", basePowerCallback(pokemon, target) { if (target.volatiles['minimize']) return 120; return 60; }, }, - odorsleuth: { - inherit: true, - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", - }, outrage: { inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, falls asleep, becomes frozen, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", basePower: 90, }, overheat: { @@ -649,60 +462,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, petaldance: { inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, falls asleep, becomes frozen, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", basePower: 70, }, - pinmissile: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - protect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has an X/65536 chance of being successful, where X starts at 65535 and halves, rounded down, each time this move is successfully used. After the fourth successful use in a row, X drops to 118 and continues with seemingly random values from 0-65535 on subsequent successful uses. X resets to 65535 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", - }, - pursuit: { - inherit: true, - desc: "If the target is an opposing Pokemon and it switches out this turn, this move hits that Pokemon before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon becomes active immediately.", - shortDesc: "Power doubles if the targeted foe is switching out.", - }, - rage: { - inherit: true, - desc: "Once this move is used and unless the target protected itself, the user's Attack is raised by 1 stage every time it is hit by another Pokemon's attack as long as this move is chosen for use.", - }, - raindance: { - inherit: true, - desc: "For 5 turns, the weather becomes Rain Dance. The damage of Water-type attacks is multiplied by 1.5 and the damage of Fire-type attacks is multiplied by 0.5 during the effect. Fails if the current weather is Rain Dance.", - }, - rapidspin: { - inherit: true, - desc: "If this move is successful, the effects of Leech Seed and binding moves end for the user, and Spikes are removed from the user's side of the field.", - }, - razorwind: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second.", - shortDesc: "Charges, then hits foe(s) turn 2.", - }, recover: { inherit: true, pp: 20, }, - reflect: { - inherit: true, - desc: "For 5 turns, the user and its party members take 1/2 damage from physical attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break. Fails if the effect is already active on the user's side.", - }, - revenge: { - inherit: true, - desc: "Damage doubles if the user was hit by a Pokemon in the target's current position this turn, and that Pokemon was the last to hit the user.", - shortDesc: "Damage doubles if user is hit by the target.", - }, - reversal: { - inherit: true, - desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", - }, - rockblast: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, rocksmash: { inherit: true, basePower: 20, @@ -711,45 +476,14 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, accuracy: 100, ignoreAccuracy: true, - desc: "The user's Ability changes to match the target's Ability. Fails if the target's Ability is Wonder Guard.", - }, - safeguard: { - inherit: true, - desc: "For 5 turns, the user and its party members cannot have major status conditions or confusion inflicted on them by other Pokemon. Fails if the effect is already active on the user's side.", - }, - sandtomb: { - inherit: true, - desc: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, - sandstorm: { - inherit: true, - desc: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Sand Veil Ability. Fails if the current weather is Sandstorm.", - }, - selfdestruct: { - inherit: true, - desc: "The user faints after using this move. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", - }, - sketch: { - inherit: true, - desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Sketch, Struggle, or any move the user knows.", }, skillswap: { inherit: true, accuracy: 100, ignoreAccuracy: true, - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Wonder Guard.", - }, - skullbash: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Raises the user's Defense by 1 stage on the first turn.", - }, - skyattack: { - inherit: true, - desc: "Has a 30% chance to flinch the target and a higher chance for a critical hit. This attack charges on the first turn and executes on the second.", }, sleeptalk: { inherit: true, - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, but if it currently has 0 PP it will fail to be used. This move cannot select Assist, Bide, Focus Punch, Metronome, Mirror Move, Sleep Talk, Uproar, or any two-turn move.", beforeMoveCallback(pokemon) { if (pokemon.volatiles['choicelock'] || pokemon.volatiles['encore']) { this.addMove('move', pokemon, 'Sleep Talk'); @@ -778,33 +512,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.useMove(randomMove.move, pokemon); }, }, - smellingsalts: { - inherit: true, - desc: "Damage doubles if the target is paralyzed. If this move is successful, the target is cured of paralysis.", - shortDesc: "Damage doubles if target is paralyzed; cures it.", - }, - solarbeam: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Damage is halved if the weather is Hail, Rain Dance, or Sandstorm. If the weather is Sunny Day, the move completes in one turn.", - }, spiderweb: { inherit: true, accuracy: 100, ignoreAccuracy: true, - desc: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", - }, - spikecannon: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - spikes: { - inherit: true, - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully.", }, spite: { inherit: true, - desc: "Causes the target's last move used to lose 2 to 5 PP, at random. Fails if the target has not made a move, if the move has 0 or 1 PP, or if it no longer knows the move.", - shortDesc: "Lowers the PP of the target's last move by 2-5.", onHit(target) { const roll = this.random(2, 6); if (target.lastMove && target.deductPP(target.lastMove.id, roll)) { @@ -814,14 +528,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return false; }, }, - spitup: { - inherit: true, - desc: "Damage is multiplied by the user's Stockpile count. This move does not apply damage variance and cannot be a critical hit. Fails if the user's Stockpile count is 0. Unless this move misses, the user's Stockpile count resets to 0.", - }, stockpile: { inherit: true, - desc: "The user's Stockpile count increases by 1. Fails if the user's Stockpile count is 3. The user's Stockpile count is reset to 0 when it is no longer active.", - shortDesc: "Raises user's Stockpile count by 1. Max 3 uses.", pp: 10, condition: { noCopy: true, @@ -840,39 +548,18 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - stomp: { - inherit: true, - desc: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", - }, struggle: { inherit: true, accuracy: 100, - desc: "Deals typeless damage to a random opposing Pokemon. If this move was successful, the user takes damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", - shortDesc: "User loses 1/4 the HP lost by the target.", recoil: [1, 4], struggleRecoil: false, }, - stunspore: { - inherit: true, - desc: "Paralyzes the target. This move does not ignore type immunity.", - }, - sunnyday: { - inherit: true, - desc: "For 5 turns, the weather becomes Sunny Day. The damage of Fire-type attacks is multiplied by 1.5 and the damage of Water-type attacks is multiplied by 0.5 during the effect. Fails if the current weather is Sunny Day.", - }, surf: { inherit: true, - shortDesc: "Hits foes. Power doubles against Dive.", target: "allAdjacentFoes", }, - swallow: { - inherit: true, - desc: "The user restores its HP based on its Stockpile count. Restores 1/4 of its maximum HP if it's 1, 1/2 of its maximum HP if it's 2, both rounded half down, and all of its HP if it's 3. Fails if the user's Stockpile count is 0. The user's Stockpile count resets to 0.", - }, taunt: { inherit: true, - desc: "For 2 turns, prevents the target from using non-damaging moves.", - shortDesc: "For 2 turns, the target can't use status moves.", flags: {protect: 1, authentic: 1}, condition: { duration: 2, @@ -902,35 +589,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: {protect: 1}, }, - thief: { - inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Enigma Berry. Items lost to this move cannot be regained with Recycle.", - }, - thrash: { - inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, falls asleep, becomes frozen, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", - }, tickle: { inherit: true, flags: {protect: 1, reflectable: 1, mirror: 1, authentic: 1}, }, - trick: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, if either is under the effect of Knock Off, or if the target has the Sticky Hold Ability.", - }, - triplekick: { - inherit: true, - desc: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", - }, - twineedle: { - inherit: true, - desc: "Hits twice, with each hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit.", - }, - uproar: { - inherit: true, - desc: "The user spends three to five turns locked into this move. This move targets an opposing Pokemon at random on each turn. During effect, no active Pokemon can fall asleep by any means, and Pokemon that are already asleep wake up as their turn starts or at the end of each turn, including the last one. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", - shortDesc: "Lasts 3-5 turns. Active Pokemon cannot sleep.", - }, vinewhip: { inherit: true, pp: 10, @@ -942,20 +604,14 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, volttackle: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", - shortDesc: "Has 1/3 recoil.", secondary: null, }, waterfall: { inherit: true, - desc: "No additional effect.", - shortDesc: "No additional effect.", secondary: null, }, weatherball: { inherit: true, - desc: "Damage doubles if a weather condition is active, and this move's type changes to match. Ice type during Hail, Water type during Rain Dance, Rock type during Sandstorm, and Fire type during Sunny Day.", - shortDesc: "Damage doubles and type varies during weather.", onModifyMove(move) { switch (this.field.effectiveWeather()) { case 'sunnyday': @@ -976,14 +632,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - whirlpool: { - inherit: true, - desc: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, - wrap: { - inherit: true, - desc: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, yawn: { inherit: true, accuracy: 100, diff --git a/data/mods/gen4/abilities.ts b/data/mods/gen4/abilities.ts index 6893f1d88b..1859445b0c 100644 --- a/data/mods/gen4/abilities.ts +++ b/data/mods/gen4/abilities.ts @@ -1,8 +1,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { angerpoint: { inherit: true, - desc: "If this Pokemon, or its substitute, is struck by a critical hit, its Attack is raised by 12 stages.", - shortDesc: "If this Pokemon or its substitute takes a critical hit, its Attack is raised 12 stages.", onAfterSubDamage(damage, target, source, move) { if (!target.hp) return; if (move && move.effectType === 'Move' && target.getMoveHitData(move).crit) { @@ -13,8 +11,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { rating: 1.5, }, blaze: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Fire-type attacks have their power multiplied by 1.5.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's Fire-type attacks have 1.5x power.", onBasePowerPriority: 2, onBasePower(basePower, attacker, defender, move) { if (move.type === 'Fire' && attacker.hp <= attacker.maxhp / 3) { @@ -28,7 +24,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, colorchange: { inherit: true, - desc: "This Pokemon's type changes to match the type of the last move that hit it, unless that type is already one of its types. This effect applies after each hit from a multi-hit move. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (!damage || !target.hp) return; const type = move.type; @@ -41,7 +36,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, cutecharm: { inherit: true, - desc: "There is a 30% chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -52,7 +46,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, effectspore: { inherit: true, - desc: "30% chance a Pokemon making contact with this Pokemon will be poisoned, paralyzed, or fall asleep. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact'] && !source.status) { const r = this.random(100); @@ -68,7 +61,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, flamebody: { inherit: true, - desc: "30% chance a Pokemon making contact with this Pokemon will be burned. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -108,8 +100,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, flowergift: { inherit: true, - desc: "If Sunny Day is active, the Attack and Special Defense of this Pokemon and its allies are multiplied by 1.5.", - shortDesc: "If Sunny Day is active, Attack and Sp. Def of this Pokemon and its allies are 1.5x.", onAllyModifyAtk(atk) { if (this.field.isWeather('sunnyday')) { return this.chainModify(1.5); @@ -185,8 +175,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, leafguard: { inherit: true, - desc: "If Sunny Day is active, this Pokemon cannot gain a major status condition, but can use Rest normally.", - shortDesc: "If Sunny Day is active, this Pokemon cannot be statused, but Rest works normally.", onSetStatus(status, target, source, effect) { if (effect && effect.id === 'rest') { return; @@ -197,14 +185,10 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, lightningrod: { inherit: true, - desc: "If this Pokemon is not the target of a single-target Electric-type move used by another Pokemon, this Pokemon redirects that move to itself.", - shortDesc: "This Pokemon draws single-target Electric moves to itself.", onTryHit() {}, rating: 0, }, magicguard: { - desc: "This Pokemon can only be damaged by direct attacks. Curse and Substitute on use, Belly Drum, Pain Split, Struggle recoil, and confusion damage are considered direct damage. This Pokemon cannot lose its turn because of paralysis, and is unaffected by Toxic Spikes on switch-in.", - shortDesc: "This Pokemon can only be damaged by direct attacks, and can't be fully paralyzed.", onDamage(damage, target, source, effect) { if (effect.effectType !== 'Move') { return false; @@ -220,8 +204,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { num: 98, }, minus: { - desc: "If an active ally has the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", - shortDesc: "If an active ally has the Plus Ability, this Pokemon's Sp. Atk is 1.5x.", onModifySpA(spa, pokemon) { const allyActive = pokemon.side.active; if (allyActive.length === 1) { @@ -259,8 +241,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, }, overgrow: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Grass-type attacks have their power multiplied by 1.5.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's Grass-type attacks have 1.5x power.", onBasePowerPriority: 2, onBasePower(basePower, attacker, defender, move) { if (move.type === 'Grass' && attacker.hp <= attacker.maxhp / 3) { @@ -273,15 +253,11 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { num: 65, }, pickup: { - desc: "No competitive use.", - shortDesc: "No competitive use.", name: "Pickup", rating: 0, num: 53, }, plus: { - desc: "If an active ally has the Minus Ability, this Pokemon's Special Attack is multiplied by 1.5.", - shortDesc: "If an active ally has the Minus Ability, this Pokemon's Sp. Atk is 1.5x.", onModifySpA(spa, pokemon) { const allyActive = pokemon.side.active; if (allyActive.length === 1) { @@ -299,7 +275,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, poisonpoint: { inherit: true, - desc: "30% chance a Pokemon making contact with this Pokemon will be poisoned. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -309,8 +284,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, }, pressure: { - desc: "If this Pokemon is the target of another Pokemon's move, that move loses one additional PP.", - shortDesc: "If this Pokemon is the target of a move, that move loses one additional PP.", onStart(pokemon) { this.add('-ability', pokemon, 'Pressure'); }, @@ -324,7 +297,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, roughskin: { inherit: true, - desc: "Pokemon making contact with this Pokemon lose 1/16 of their maximum HP, rounded down. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { this.damage(source.baseMaxhp / 16, source, target); @@ -343,7 +315,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, }, simple: { - shortDesc: "This Pokemon's stat stages are considered doubled during stat calculations.", onModifyBoost(boosts) { let key: BoostName; for (key in boosts) { @@ -356,11 +327,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, soundproof: { inherit: true, - shortDesc: "This Pokemon is immune to sound-based moves, including Heal Bell.", }, static: { inherit: true, - desc: "30% chance a Pokemon making contact with this Pokemon will be paralyzed. This effect does not happen if this Pokemon did not lose HP from the attack.", onDamagingHit(damage, target, source, move) { if (damage && move.flags['contact']) { if (this.randomChance(3, 10)) { @@ -370,8 +339,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, }, stench: { - desc: "No competitive use.", - shortDesc: "No competitive use.", name: "Stench", rating: 0, num: 1, @@ -388,21 +355,15 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, stormdrain: { inherit: true, - desc: "If this Pokemon is not the target of a single-target Water-type move used by another Pokemon, this Pokemon redirects that move to itself.", - shortDesc: "This Pokemon draws single-target Water moves to itself.", onTryHit() {}, rating: 0, }, sturdy: { inherit: true, - desc: "OHKO moves fail when used against this Pokemon.", - shortDesc: "OHKO moves fail when used against this Pokemon.", onDamage() {}, rating: 0, }, swarm: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Bug-type attacks have their power multiplied by 1.5.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's Bug-type attacks have 1.5x power.", onBasePowerPriority: 2, onBasePower(basePower, attacker, defender, move) { if (move.type === 'Bug' && attacker.hp <= attacker.maxhp / 3) { @@ -416,7 +377,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, synchronize: { inherit: true, - desc: "If another Pokemon burns, paralyzes, or poisons this Pokemon, that Pokemon receives the same major status condition. If another Pokemon badly poisons this Pokemon, that Pokemon becomes poisoned.", onAfterSetStatus(status, target, source, effect) { if (!source || source === target) return; if (effect && effect.id === 'toxicspikes') return; @@ -427,7 +387,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, }, thickfat: { - shortDesc: "The power of Fire- and Ice-type attacks against this Pokemon is halved.", onSourceBasePowerPriority: 1, onSourceBasePower(basePower, attacker, defender, move) { if (move.type === 'Ice' || move.type === 'Fire') { @@ -439,8 +398,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { num: 47, }, torrent: { - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Water-type attacks have their power multiplied by 1.5.", - shortDesc: "At 1/3 or less of its max HP, this Pokemon's Water-type attacks have 1.5x power.", onBasePowerPriority: 2, onBasePower(basePower, attacker, defender, move) { if (move.type === 'Water' && attacker.hp <= attacker.maxhp / 3) { @@ -474,7 +431,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, wonderguard: { inherit: true, - shortDesc: "This Pokemon is only damaged by Fire Fang, supereffective moves, indirect damage.", onTryHit(target, source, move) { if (move.id === 'firefang') { this.hint("In Gen 4, Fire Fang is always able to hit through Wonder Guard."); diff --git a/data/mods/gen4/moves.ts b/data/mods/gen4/moves.ts index 739c0e451c..7d37a7a372 100644 --- a/data/mods/gen4/moves.ts +++ b/data/mods/gen4/moves.ts @@ -1,11 +1,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { - absorb: { - inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", - }, acupressure: { inherit: true, - desc: "Raises a random stat by 2 stages as long as the stat is not already at stage 6. The user can choose to use this move on itself or an ally. Fails if no stat stage can be raised or if the user or ally has a substitute.", flags: {snatch: 1}, onHit(target) { if (target.volatiles['substitute']) { @@ -28,10 +23,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - armthrust: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, aromatherapy: { inherit: true, onHit(target, source) { @@ -47,7 +38,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, assist: { inherit: true, - desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, or Trick.", onHit(target) { const moves = []; for (const pokemon of target.side.pokemon) { @@ -69,18 +59,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.useMove(randomMove, target); }, }, - assurance: { - inherit: true, - desc: "Power doubles if the target has already taken damage this turn.", - }, - avalanche: { - inherit: true, - desc: "Power doubles if the user was hit by a Pokemon in the target's position this turn.", - }, - barrage: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, beatup: { inherit: true, basePower: 10, @@ -88,7 +66,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { if (!move.allies?.length) return null; return 10; }, - desc: "Deals typeless damage. Hits one time for the user and one time for each unfainted Pokemon without a major status condition in the user's party. For each hit, the damage formula uses the participating Pokemon's base Attack as the Attack stat, the target's base Defense as the Defense stat, and ignores stat stages and other effects that modify Attack or Defense; each hit is considered to come from the user.", onModifyMove(move, pokemon) { pokemon.addVolatile('beatup'); move.type = '???'; @@ -113,7 +90,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bide: { inherit: true, - desc: "The user spends two turns locked into this move and then, on the second turn after using this move, the user attacks the last Pokemon that hit it, inflicting double the damage in HP it lost to attacks during the two turns. If the last Pokemon that hit it is no longer active, the user attacks a random opposing Pokemon instead. If the user is prevented from moving during this move's use, the effect ends. This move does not check accuracy and ignores type immunity.", condition: { duration: 3, onLockMove: 'bide', @@ -179,55 +155,29 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bind: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 75, }, - block: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", - }, bonerush: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", accuracy: 80, }, - bonemerang: { - inherit: true, - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, - bounce: { - inherit: true, - desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", - }, bravebird: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", - shortDesc: "Has 1/3 recoil.", recoil: [1, 3], }, brickbreak: { inherit: true, - desc: "If this attack does not miss and whether or not the target is immune, the effects of Reflect and Light Screen end for the target's side of the field before damage is calculated.", - shortDesc: "Destroys screens, even if the target is immune.", onTryHit(pokemon) { pokemon.side.removeSideCondition('reflect'); pokemon.side.removeSideCondition('lightscreen'); }, }, - bugbite: { - inherit: true, - desc: "The user steals the target's held Berry if it is holding one and eats it immediately, gaining its effects unless the user's item is being ignored. Items lost to this move can be regained with Recycle.", - }, bulletseed: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", basePower: 10, }, camouflage: { inherit: true, - desc: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain. Fails if the user has the Multitype Ability or if the type is one of the user's current types.", - shortDesc: "Changes user's type based on terrain. (Normal)", onHit(target) { if (target.hasType('Normal') || !target.setType('Normal')) return false; this.add('-start', target, 'typechange', 'Normal'); @@ -235,8 +185,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, chatter: { inherit: true, - desc: "Has an X% chance to confuse the target, where X is 0 unless the user is a Chatot that hasn't Transformed. If the user is a Chatot, X is 1, 11, or 31 depending on the volume of Chatot's recorded cry, if any; 1 for no recording or low volume, 11 for medium volume, and 31 for high volume.", - shortDesc: "For Chatot, 31% chance to confuse the target.", secondary: { chance: 31, volatileStatus: 'confusion', @@ -244,18 +192,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, clamp: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 75, pp: 10, }, - cometpunch: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, conversion: { inherit: true, - desc: "The user's type changes to match the original type of one of its known moves besides this move and Curse, at random, but not either of its current types. Fails if the user cannot change its type, or if this move would only be able to select one of the user's current types.", flags: {}, onHit(target) { const possibleTypes = target.moveSlots.map(moveSlot => { @@ -274,14 +215,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-start', target, 'typechange', type); }, }, - conversion2: { - inherit: true, - desc: "The user's type changes to match a type that resists or is immune to the type of the last move used against the user, if it was successful against the user, but not either of its current types. The determined type of the move is used rather than the original type. Fails if the last move used against the user was not successful, if the user has the Multitype Ability, or if this move would only be able to select one of the user's current types.", - shortDesc: "User's type changes to resist last move against it.", - }, copycat: { inherit: true, - desc: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, or Trick.", onHit(pokemon) { const noCopycat = [ 'assist', 'chatter', 'copycat', 'counter', 'covet', 'destinybond', 'detect', 'endure', 'feint', 'focuspunch', 'followme', 'helpinghand', 'mefirst', 'metronome', 'mimic', 'mirrorcoat', 'mirrormove', 'protect', 'sketch', 'sleeptalk', 'snatch', 'struggle', 'switcheroo', 'thief', 'trick', @@ -296,13 +231,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, accuracy: 85, }, - counter: { - inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn, or if the user did not lose HP from the attack.", - }, covet: { inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Griseous Orb, or if the target has the Multitype Ability. Items lost to this move cannot be regained with Recycle.", basePower: 40, }, crabhammer: { @@ -311,14 +241,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, crushgrip: { inherit: true, - desc: "Power is equal to 120 * (target's current HP / target's maximum HP) + 1, rounded down.", basePowerCallback(pokemon, target) { return Math.floor(target.hp * 120 / target.maxhp) + 1; }, }, curse: { inherit: true, - desc: "If the user is not a Ghost type, lowers the user's Speed by 1 stage and raises the user's Attack and Defense by 1 stage. If the user is a Ghost type, the user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if there is no target or if the target is already affected or has a substitute.", flags: {}, onModifyMove(move, source, target) { if (!source.hasType('Ghost')) { @@ -339,7 +267,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, detect: { inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used, up to a maximum of 8. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", priority: 3, condition: { duration: 1, @@ -361,15 +288,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - dig: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude, which have doubled power when used against it, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", - }, disable: { inherit: true, accuracy: 80, - desc: "For 4 to 7 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move has 0 PP.", - shortDesc: "For 4-7 turns, disables the target's last move.", flags: {protect: 1, mirror: 1, authentic: 1}, volatileStatus: 'disable', condition: { @@ -416,15 +337,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - dive: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool, which have doubled power when used against it, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", - }, doomdesire: { inherit: true, accuracy: 85, basePower: 120, - desc: "Deals typeless damage that cannot be a critical hit two turns after this move is used. Damage is calculated against the target on use, and at the end of the final turn that damage is dealt to the Pokemon at the position the original target had at the time. Fails if this move or Future Sight is already in effect for the target's position.", onTry(source, target) { if (!target.side.addSlotCondition(target, 'futuremove')) return false; const moveData = { @@ -459,40 +375,19 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, doubleedge: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", - shortDesc: "Has 1/3 recoil.", recoil: [1, 3], }, - doublehit: { - inherit: true, - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, - doublekick: { - inherit: true, - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, - doubleslap: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, drainpunch: { inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", basePower: 60, pp: 5, }, dreameater: { inherit: true, - desc: "The target is unaffected by this move unless it is asleep and does not have a substitute. The user recovers 1/2 the HP lost by the target, rounded down, but not less than 1 HP. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", onTryImmunity(target) { return target.status === 'slp' && !target.volatiles['substitute']; }, }, - earthquake: { - inherit: true, - desc: "Power doubles if the target is using Dig.", - shortDesc: "Hits adjacent Pokemon. Power doubles on Dig.", - }, embargo: { inherit: true, flags: {protect: 1, mirror: 1}, @@ -504,8 +399,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, encore: { inherit: true, - desc: "For 4 to 8 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Mimic, Mirror Move, Sketch, Struggle, or Transform.", - shortDesc: "The target repeats its last move for 4-8 turns.", flags: {protect: 1, mirror: 1, authentic: 1}, volatileStatus: 'encore', condition: { @@ -567,18 +460,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - endure: { - inherit: true, - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used, up to a maximum of 8. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", - }, - explosion: { - inherit: true, - desc: "The user faints after using this move, unless this move has no target. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", - shortDesc: "Deals double damage. The user faints.", - }, extremespeed: { inherit: true, - shortDesc: "Usually goes first.", priority: 1, }, fakeout: { @@ -588,8 +471,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { feint: { inherit: true, basePower: 50, - desc: "Fails unless the target is using Detect or Protect. If this move is successful, it breaks through the target's Detect or Protect for this turn, allowing other Pokemon to attack the target normally.", - shortDesc: "Breaks protection. Fails if target is not protecting.", onTry(source, target) { if (!target.volatiles['protect']) { this.add('-fail', source); @@ -597,20 +478,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - firefang: { - inherit: true, - desc: "Has a 10% chance to burn the target and a 10% chance to flinch it. This move can hit Pokemon with the Wonder Guard Ability regardless of their typing.", - }, firespin: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 70, basePower: 15, }, flail: { inherit: true, - desc: "The power of this move is 20 if X is 43 to 48, 40 if X is 22 to 42, 80 if X is 13 to 21, 100 if X is 6 to 12, 150 if X is 2 to 5, and 200 if X is 0 or 1, where X is equal to (user's current HP * 64 / user's maximum HP), rounded down.", basePowerCallback(pokemon, target) { const ratio = pokemon.hp * 64 / pokemon.maxhp; if (ratio < 2) { @@ -633,21 +507,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, flareblitz: { inherit: true, - desc: "Has a 10% chance to burn the target. If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", - shortDesc: "Has 1/3 recoil. 10% chance to burn. Thaws user.", recoil: [1, 3], }, - fling: { - inherit: true, - desc: "The power of this move is based on the user's held item. The held item is lost and it activates for the target if applicable. If the target avoids this move by protecting itself, the user's held item is still lost. The user can regain a thrown item with Recycle. Fails if the user has no held item, if the held item cannot be thrown, or if the user is under the effect of Embargo.", - }, - fly: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", - }, focuspunch: { inherit: true, - desc: "The user loses its focus and does nothing if it is hit by a damaging attack this turn before it can execute the move, but it still loses PP.", beforeMoveCallback() { }, onTry(pokemon) { if (pokemon.volatiles['focuspunch'] && pokemon.volatiles['focuspunch'].lostFocus) { @@ -657,32 +520,18 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - followme: { - inherit: true, - desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat, or drawn in by the Lightning Rod or Storm Drain Abilities. This effect remains active even if the user leaves the field. Fails if it is not a Double Battle.", - }, foresight: { inherit: true, - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", flags: {protect: 1, mirror: 1, authentic: 1}, }, - furyattack: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, furycutter: { inherit: true, basePower: 10, }, - furyswipes: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, futuresight: { inherit: true, accuracy: 90, basePower: 80, - desc: "Deals typeless damage that cannot be a critical hit two turns after this move is used. Damage is calculated against the target on use, and at the end of the final turn that damage is dealt to the Pokemon at the position the original target had at the time. Fails if this move or Doom Desire is already in effect for the target's position.", pp: 15, onTry(source, target) { if (!target.side.addSlotCondition(target, 'futuremove')) return false; @@ -718,42 +567,21 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, gigadrain: { inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", basePower: 60, }, glare: { inherit: true, accuracy: 75, }, - gravity: { - inherit: true, - desc: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, and Magnet Rise end immediately for all active Pokemon. During the effect, Bounce, Fly, High Jump Kick, Jump Kick, Magnet Rise, and Splash are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", - }, growth: { inherit: true, - desc: "Raises the user's Special Attack by 1 stage.", - shortDesc: "Raises the user's Sp. Atk by 1.", onModifyMove() {}, boosts: { spa: 1, }, }, - gust: { - inherit: true, - desc: "Power doubles if the target is using Bounce or Fly.", - shortDesc: "Power doubles during Bounce and Fly.", - }, - hail: { - inherit: true, - desc: "For 5 turns, the weather becomes Hail. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are an Ice type or have the Ice Body, Magic Guard, or Snow Cloak Abilities. Lasts for 8 turns if the user is holding Icy Rock. Fails if the current weather is Hail.", - }, - headsmash: { - inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded down, but not less than 1 HP.", - }, healbell: { inherit: true, - desc: "Every Pokemon in the user's party is cured of its major status condition. Pokemon with the Soundproof Ability are not cured.", onHit(target, source) { this.add('-activate', source, 'move: Heal Bell'); for (const pokemon of source.side.pokemon) { @@ -763,7 +591,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, healblock: { inherit: true, - desc: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing moves are unusable, move effects that grant healing will not heal, but Abilities and items will continue to heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain under the effect. Pain Split is unaffected.", flags: {protect: 1, mirror: 1}, condition: { duration: 5, @@ -804,7 +631,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, healingwish: { inherit: true, - desc: "The user faints and the Pokemon brought out to replace it has its HP fully restored along with having any major status condition cured. The new Pokemon is sent out immediately and the healing happens after hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", flags: {heal: 1}, onAfterMove(pokemon) { pokemon.switchFlag = true; @@ -825,15 +651,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - healorder: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down.", - }, highjumpkick: { inherit: true, basePower: 100, - desc: "If this attack is not successful, the user loses HP equal to half the target's maximum HP if the target was immune, rounded down, otherwise half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", - shortDesc: "If miss, user takes 1/2 damage it would've dealt.", pp: 20, onMoveFail(target, source, move) { move.causedCrashDamage = true; @@ -844,12 +664,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, iciclespear: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", basePower: 10, }, imprison: { inherit: true, - desc: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active. Fails if no opposing Pokemon know any of the user's moves.", flags: {authentic: 1}, onTryHit(pokemon) { for (const target of pokemon.side.foe.active) { @@ -861,15 +679,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { return false; }, }, - ingrain: { - inherit: true, - desc: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass or U-turn. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes and Toxic Spikes, even if the user is a Flying type or has the Levitate Ability.", - }, jumpkick: { inherit: true, basePower: 85, - desc: "If this attack is not successful, the user loses HP equal to half the target's maximum HP if the target was immune, rounded down, otherwise half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", - shortDesc: "If miss, user takes 1/2 damage it would've dealt.", pp: 25, onMoveFail(target, source, move) { move.causedCrashDamage = true; @@ -880,8 +692,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, knockoff: { inherit: true, - desc: "The target's held item is lost for the rest of the battle, unless the item is a Griseous Orb or the target has the Multitype or Sticky Hold Abilities. During the effect, the target cannot obtain a new item by any means.", - shortDesc: "Target's item is lost and it cannot obtain another.", onAfterHit(target, source) { const item = target.takeItem(); if (item) { @@ -893,13 +703,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 130, }, - leechlife: { - inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", - }, lightscreen: { inherit: true, - desc: "For 5 turns, the user and its party members take 1/2 damage from special attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", condition: { duration: 5, durationCallback(target, source, effect) { @@ -928,7 +733,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, lockon: { inherit: true, - desc: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. When this effect is started against the target, this and Mind Reader's effects end for every other Pokemon against that target. If the target leaves the field using Baton Pass, the replacement remains under this effect. If the user leaves the field using Baton Pass, this effect is restarted against the same target for the replacement. The effect ends if either the user or the target leaves the field.", condition: { duration: 2, onSourceInvulnerabilityPriority: 1, @@ -946,7 +750,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, lunardance: { inherit: true, - desc: "The user faints and the Pokemon brought out to replace it has its HP and PP fully restored along with having any major status condition cured. The new Pokemon is sent out immediately and the healing happens after hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", flags: {heal: 1}, onAfterMove(pokemon) { pokemon.switchFlag = true; @@ -978,7 +781,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, magiccoat: { inherit: true, - desc: "The user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. If the move targets both opposing Pokemon, the Pokemon under this effect will reflect the move only targeting the original user. The effect ends once a move is reflected or at the end of the turn. The Lightning Rod and Storm Drain Abilities redirect their respective moves before this move takes effect.", condition: { duration: 1, onTryHitPriority: 2, @@ -996,13 +798,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, magmastorm: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 70, }, magnetrise: { inherit: true, - desc: "For 5 turns, the user is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, and the Arena Trap Ability as long as it remains active. If the user uses Baton Pass, the replacement will gain the effect. Ingrain and Iron Ball override this move if the user is under any of their effects. Fails if the user is already under this effect or the effect of Ingrain.", flags: {gravity: 1}, volatileStatus: 'magnetrise', condition: { @@ -1021,17 +820,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - magnitude: { - inherit: true, - desc: "The power of this move varies. 5% chances for 10 and 150 power, 10% chances for 30 and 110 power, 20% chances for 50 and 90 power, and 30% chance for 70 power. Power doubles if the target is using Dig.", - }, - meanlook: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", - }, mefirst: { inherit: true, - desc: "The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move other than Chatter, Counter, Covet, Focus Punch, Mirror Coat, or Thief. Fails if the target moves before the user. Ignores the target's substitute for the purpose of copying the move.", condition: { duration: 1, onModifyDamagePhase2(damage) { @@ -1039,32 +829,14 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - megadrain: { - inherit: true, - desc: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", - }, - memento: { - inherit: true, - desc: "Lowers the target's Attack and Special Attack by 2 stages. The user faints, even if this move misses. This move can hit targets in the middle of a two-turn move. Fails entirely if there is no target, but does not fail if the target's stats cannot be changed.", - }, - metalburst: { - inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with an attack this turn equal to 1.5 times the HP lost by the user from that attack, rounded down. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's attack this turn, or if the user did not lose HP from the attack.", - }, metronome: { inherit: true, - desc: "A random move is selected for use, other than Assist, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, or Trick.", noMetronome: [ "Assist", "Chatter", "Copycat", "Counter", "Covet", "Destiny Bond", "Detect", "Endure", "Feint", "Focus Punch", "Follow Me", "Helping Hand", "Me First", "Metronome", "Mimic", "Mirror Coat", "Mirror Move", "Protect", "Sketch", "Sleep Talk", "Snatch", "Struggle", "Switcheroo", "Thief", "Trick", ], }, - milkdrink: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down.", - }, mimic: { inherit: true, - desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has 5 PP. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Chatter, Metronome, Mimic, Sketch, or Struggle.", onHit(target, source) { const disallowedMoves = ['chatter', 'metronome', 'mimic', 'sketch', 'struggle', 'transform']; if (source.transformed || !target.lastMove || target.volatiles['substitute']) { @@ -1088,30 +860,18 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-activate', source, 'move: Mimic', move.name); }, }, - mindreader: { - inherit: true, - desc: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. When this effect is started against the target, this and Lock-On's effects end for every other Pokemon against that target. If the target leaves the field using Baton Pass, the replacement remains under this effect. If the user leaves the field using Baton Pass, this effect is restarted against the same target for the replacement. The effect ends if either the user or the target leaves the field.", - }, minimize: { inherit: true, - desc: "Raises the user's evasiveness by 1 stage. Whether or not the user's evasiveness was changed, Stomp will have its power doubled if used against the user while it is active.", - shortDesc: "Raises the user's evasiveness by 1.", boosts: { evasion: 1, }, }, miracleeye: { inherit: true, - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Psychic-type attacks can hit the target if it is a Dark type.", flags: {protect: 1, mirror: 1, authentic: 1}, }, - mirrorcoat: { - inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn, or if the user did not lose HP from the attack.", - }, mirrormove: { inherit: true, - desc: "The user uses the last move that successfully targeted the user. The copied move is used with no specific target. Fails if no move has targeted the user, if the move was called by another move, if the move is Encore, or if the move cannot be copied by this move.", onTryHit() {}, onHit(pokemon) { const lastAttackedBy = pokemon.getLastAttackedBy(); @@ -1130,7 +890,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, moonlight: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded down.", onHit(pokemon) { if (this.field.isWeather(['sunnyday', 'desolateland'])) { this.heal(pokemon.maxhp * 2 / 3); @@ -1143,7 +902,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, morningsun: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded down.", onHit(pokemon) { if (this.field.isWeather(['sunnyday', 'desolateland'])) { this.heal(pokemon.maxhp * 2 / 3); @@ -1156,8 +914,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mudsport: { inherit: true, - desc: "While the user is active, all Electric-type attacks used by any active Pokemon have their power halved. Fails if this effect is already active for the user. Baton Pass can be used to transfer this effect to an ally.", - shortDesc: "Weakens Electric-type attacks to 1/2 their power.", condition: { noCopy: true, onStart(pokemon) { @@ -1169,32 +925,23 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - naturalgift: { - inherit: true, - desc: "The type and power of this move depend on the user's held Berry, and the Berry is lost. Fails if the user is not holding a Berry, if the user has the Klutz Ability, or if Embargo is in effect for the user.", - }, naturepower: { inherit: true, - desc: "This move calls another move for use based on the battle terrain. Tri Attack in Wi-Fi battles.", - shortDesc: "Attack changes based on terrain. (Tri Attack)", onHit(pokemon) { this.useMove('triattack', pokemon); }, }, odorsleuth: { inherit: true, - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", flags: {protect: 1, mirror: 1, authentic: 1}, }, outrage: { inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", pp: 15, onAfterMove() {}, }, payback: { inherit: true, - desc: "Power doubles if the user moves after the target this turn. Switching in counts as an action.", basePowerCallback(pokemon, target) { if (this.queue.willMove(target)) { return 50; @@ -1204,19 +951,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, petaldance: { inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", basePower: 90, pp: 20, onAfterMove() {}, }, - pinmissile: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, - pluck: { - inherit: true, - desc: "The user steals the target's held Berry if it is holding one and eats it immediately, gaining its effects unless the user's item is being ignored. Items lost to this move can be regained with Recycle.", - }, poisongas: { inherit: true, accuracy: 55, @@ -1228,7 +966,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, protect: { inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used, up to a maximum of 8. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", priority: 3, condition: { duration: 1, @@ -1254,17 +991,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: {snatch: 1, authentic: 1}, }, - psywave: { - inherit: true, - desc: "Deals damage to the target equal to (user's level) * (X * 10 + 50) / 100, where X is a random number from 0 to 10, rounded down, but not less than 1 HP.", - }, - pursuit: { - inherit: true, - desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using U-turn, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon becomes active immediately.", - }, rapidspin: { inherit: true, - desc: "If this move is successful, the effects of Leech Seed and binding moves end against the user, and all hazards are removed from the user's side of the field.", self: { onHit(pokemon) { if (pokemon.removeVolatile('leechseed')) { @@ -1282,22 +1010,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - razorwind: { - inherit: true, - desc: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second.", - }, - recover: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down.", - }, recycle: { inherit: true, - desc: "The user regains the item last used by a Pokemon in its current position on the field, even if that Pokemon was not the user. Fails if the user is holding an item, if no items have been used at the user's position, or if the item was lost to Covet, Knock Off, or Thief. Items thrown with Fling can be regained.", flags: {}, }, reflect: { inherit: true, - desc: "For 5 turns, the user and its party members take 1/2 damage from physical attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", condition: { duration: 5, durationCallback(target, source, effect) { @@ -1324,13 +1042,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - revenge: { - inherit: true, - desc: "Power doubles if the user was hit by a Pokemon in the target's current position this turn.", - }, reversal: { inherit: true, - desc: "The power of this move is 20 if X is 43 to 48, 40 if X is 22 to 42, 80 if X is 13 to 21, 100 if X is 6 to 12, 150 if X is 2 to 5, and 200 if X is 0 or 1, where X is equal to (user's current HP * 64 / user's maximum HP), rounded down.", basePowerCallback(pokemon, target) { const ratio = pokemon.hp * 64 / pokemon.maxhp; if (ratio < 2) { @@ -1353,17 +1066,14 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, roar: { inherit: true, - desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, if the target used Ingrain previously or has the Suction Cups Ability, or if the user's level is lower than the target's and X * (user's level + target's level) / 256 + 1 is less than or equal to (target's level / 4), rounded down, where X is a random number from 0 to 255.", flags: {protect: 1, mirror: 1, sound: 1, authentic: 1}, }, rockblast: { inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", accuracy: 80, }, roleplay: { inherit: true, - desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Multitype or already matches the target, if the target's Ability is Multitype or Wonder Guard, or if the user is holding a Griseous Orb.", onTryHit(target, source) { if (target.ability === source.ability || source.hasItem('griseousorb')) return false; const bannedTargetAbilities = ['multitype', 'wonderguard']; @@ -1372,35 +1082,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - roost: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down. Until the end of the turn, Flying-type users lose their Flying type and pure Flying-type users become typeless. Does nothing if the user's HP is full.", - }, sandtomb: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 70, basePower: 15, }, - sandstorm: { - inherit: true, - desc: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Magic Guard or Sand Veil Abilities. During the effect, the Special Defense of Rock-type Pokemon is multiplied by 1.5 when taking damage from a special attack. Lasts for 8 turns if the user is holding Smooth Rock. Fails if the current weather is Sandstorm.", - }, scaryface: { inherit: true, accuracy: 90, }, - secretpower: { - inherit: true, - desc: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Causes paralysis on the regular Wi-Fi terrain.", - shortDesc: "Effect varies with terrain. (30% paralysis chance)", - }, - selfdestruct: { - inherit: true, - desc: "The user faints after using this move, unless this move has no target. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", - shortDesc: "Deals double damage. The user faints.", - }, sketch: { inherit: true, onHit(target, source) { @@ -1429,7 +1119,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, skillswap: { inherit: true, - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Multitype or Wonder Guard, if both have the same Ability, or if either is holding a Griseous Orb.", onHit(target, source) { const targetAbility = target.ability; const sourceAbility = source.ability; @@ -1441,18 +1130,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { target.setAbility(sourceAbility); }, }, - skyuppercut: { - inherit: true, - desc: "This move can hit a target using Bounce or Fly.", - shortDesc: "Can hit Pokemon using Bounce or Fly.", - }, - slackoff: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down.", - }, sleeptalk: { inherit: true, - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Bide, Chatter, Copycat, Focus Punch, Me First, Metronome, Mirror Move, Sleep Talk, Uproar, or any two-turn move.", beforeMoveCallback(pokemon) { if (pokemon.volatiles['choicelock'] || pokemon.volatiles['encore']) { this.addMove('move', pokemon, 'Sleep Talk'); @@ -1461,30 +1140,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - smellingsalts: { - inherit: true, - desc: "Power doubles if the target is paralyzed. If this move is successful, the target is cured of paralysis.", - }, - snatch: { - inherit: true, - desc: "If another Pokemon uses certain non-damaging moves this turn, the user steals that move to use itself. If multiple Pokemon use this move this turn, the applicable moves are stolen by each of those Pokemon in turn order, and only the last user in turn order will gain the effects.", - }, - softboiled: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP, rounded down.", - }, - solarbeam: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Damage is halved if the weather is Hail, Rain Dance, or Sandstorm. If the user is holding a Power Herb or the weather is Sunny Day, the move completes in one turn.", - }, - spiderweb: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", - }, - spikecannon: { - inherit: true, - desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, spikes: { inherit: true, flags: {}, @@ -1493,29 +1148,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: {protect: 1, mirror: 1, authentic: 1}, }, - spitup: { - inherit: true, - desc: "Power is equal to 100 times the user's Stockpile count. This move does not apply damage variance. Fails if the user's Stockpile count is 0. Unless there is no target, whether or not this move is successful the user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", - }, stealthrock: { inherit: true, flags: {}, }, - stomp: { - inherit: true, - desc: "Has a 30% chance to flinch the target. Power doubles if the target has used Minimize while active.", - }, struggle: { inherit: true, - desc: "Deals typeless damage to a random opposing Pokemon. If this move was successful, the user loses 1/4 of its maximum HP, rounded down, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", onModifyMove(move) { move.type = '???'; }, }, - submission: { - inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP.", - }, substitute: { inherit: true, condition: { @@ -1567,7 +1209,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, suckerpunch: { inherit: true, - desc: "Fails if the target did not select a physical or special attack for use this turn, or if the target moves before the user.", onTry(source, target) { const action = this.queue.willMove(target); if (!action || action.choice !== 'move' || action.move.category === 'Status' || target.volatiles['mustrecharge']) { @@ -1576,22 +1217,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - surf: { - inherit: true, - desc: "Power doubles if the target is using Dive.", - shortDesc: "Hits adjacent Pokemon. Power doubles on Dive.", - }, - swallow: { - inherit: true, - desc: "The user restores its HP based on its Stockpile count. Restores 1/4 of its maximum HP if it's 1, 1/2 of its maximum HP if it's 2, both rounded down, and all of its HP if it's 3. Fails if the user's Stockpile count is 0. The user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", - }, - switcheroo: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Griseous Orb, if neither is holding an item, if either has the Multitype Ability, if either is under the effect of Knock Off, or if the target has the Sticky Hold Ability.", - }, synthesis: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded down.", onHit(pokemon) { if (this.field.isWeather(['sunnyday', 'desolateland'])) { this.heal(pokemon.maxhp * 2 / 3); @@ -1609,16 +1236,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, tailglow: { inherit: true, - desc: "Raises the user's Special Attack by 2 stages.", - shortDesc: "Raises the user's Sp. Atk by 2.", boosts: { spa: 2, }, }, tailwind: { inherit: true, - desc: "For 3 turns, the user and its party members have their Speed doubled. Fails if this move is already in effect for the user's side.", - shortDesc: "For 3 turns, allies' Speed is doubled.", condition: { duration: 3, durationCallback(target, source, effect) { @@ -1641,14 +1264,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - takedown: { - inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP.", - }, taunt: { inherit: true, - desc: "For 3 to 5 turns, prevents the target from using non-damaging moves.", - shortDesc: "For 3-5 turns, the target can't use status moves.", flags: {protect: 1, mirror: 1, authentic: 1}, condition: { durationCallback() { @@ -1677,21 +1294,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - thief: { - inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Griseous Orb, or if the target has the Multitype Ability. Items lost to this move cannot be regained with Recycle.", - }, thrash: { inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", basePower: 90, pp: 20, onAfterMove() {}, }, - thunder: { - inherit: true, - desc: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce or Fly. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", - }, torment: { inherit: true, flags: {protect: 1, mirror: 1, authentic: 1}, @@ -1702,7 +1310,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, toxicspikes: { inherit: true, - desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, as well as switching in with a substitute.", flags: {}, condition: { // this is a side condition @@ -1732,53 +1339,18 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, transform: { inherit: true, - desc: "The user transforms into the target. The target's current stats, stat stages, types, moves, Ability, weight, IVs, species, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP. This move fails if the target has transformed.", flags: {authentic: 1}, }, - trick: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Griseous Orb, if neither is holding an item, if either has the Multitype Ability, if either is under the effect of Knock Off, or if the target has the Sticky Hold Ability.", - }, - trickroom: { - inherit: true, - desc: "For 5 turns, all active Pokemon with lower Speed will move before those with higher Speed, within their priority brackets. If this move is used during the effect, the effect ends.", - }, - triplekick: { - inherit: true, - desc: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, - twineedle: { - inherit: true, - desc: "Hits twice, with each hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", - }, - twister: { - inherit: true, - desc: "Has a 20% chance to flinch the target. Power doubles if the target is using Bounce or Fly.", - }, uproar: { inherit: true, - desc: "The user spends three to six turns locked into this move. This move targets an opponent at random on each turn. During effect, no active Pokemon can fall asleep by any means, and Pokemon that are already asleep wake up as their turn starts or at the end of each turn, including the last one. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", - shortDesc: "Lasts 3-6 turns. Active Pokemon cannot sleep.", basePower: 50, }, - uturn: { - inherit: true, - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", - }, volttackle: { inherit: true, - desc: "Has a 10% chance to paralyze the target. If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", - shortDesc: "Has 1/3 recoil. 10% chance to paralyze target.", recoil: [1, 3], }, - wakeupslap: { - inherit: true, - desc: "Power doubles if the target is asleep. If this move is successful, the target wakes up.", - }, watersport: { inherit: true, - desc: "While the user is active, all Fire-type attacks used by any active Pokemon have their power halved. Fails if this effect is already active for the user. Baton Pass can be used to transfer this effect to an ally.", - shortDesc: "Weakens Fire-type attacks to 1/2 their power.", condition: { noCopy: true, onStart(pokemon) { @@ -1792,20 +1364,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, whirlpool: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 70, basePower: 15, }, whirlwind: { inherit: true, - desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, if the target used Ingrain previously or has the Suction Cups Ability, or if the user's level is lower than the target's and X * (user's level + target's level) / 256 + 1 is less than or equal to (target's level / 4), rounded down, where X is a random number from 0 to 255.", flags: {protect: 1, mirror: 1, authentic: 1}, }, wish: { inherit: true, - desc: "At the end of the next turn, the Pokemon at the user's position has 1/2 of its maximum HP restored to it, rounded down. Fails if this move is already in effect for the user's position.", - shortDesc: "Next turn, heals 50% of the recipient's max HP.", flags: {heal: 1}, slotCondition: 'Wish', condition: { @@ -1822,13 +1389,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, woodhammer: { inherit: true, - desc: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", - shortDesc: "Has 1/3 recoil.", recoil: [1, 3], }, worryseed: { inherit: true, - desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Multitype or Truant, or if the target is holding a Griseous Orb.", onTryHit(pokemon) { const bannedAbilities = ['multitype', 'truant']; if (bannedAbilities.includes(pokemon.ability) || pokemon.hasItem('griseousorb')) { @@ -1838,13 +1402,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, wrap: { inherit: true, - desc: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 2-5 turns.", accuracy: 85, }, wringout: { inherit: true, - desc: "Power is equal to 120 * (target's current HP / target's maximum HP) + 1, rounded down.", basePowerCallback(pokemon, target) { return Math.floor(target.hp * 120 / target.maxhp) + 1; }, diff --git a/data/mods/gen5/abilities.ts b/data/mods/gen5/abilities.ts index e0bdcaab5c..fde70069ec 100644 --- a/data/mods/gen5/abilities.ts +++ b/data/mods/gen5/abilities.ts @@ -1,7 +1,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { anticipation: { inherit: true, - desc: "On switch-in, this Pokemon is alerted if any opposing Pokemon has an attack that is super effective on this Pokemon, or an OHKO move. Counter, Metal Burst, and Mirror Coat count as attacking moves of their respective types, while Hidden Power, Judgment, Natural Gift, Techno Blast, and Weather Ball are considered Normal-type moves.", onStart(pokemon) { for (const target of pokemon.side.foe.active) { if (!target || target.fainted) continue; @@ -20,7 +19,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, frisk: { inherit: true, - shortDesc: "On switch-in, this Pokemon identifies a random foe's held item.", onStart(pokemon) { const target = pokemon.side.foe.randomActive(); if (target?.item) { @@ -30,20 +28,14 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, infiltrator: { inherit: true, - desc: "This Pokemon's moves ignore the opposing side's Reflect, Light Screen, Safeguard, and Mist.", - shortDesc: "This Pokemon's moves ignore the foe's Reflect, Light Screen, Safeguard, and Mist.", rating: 1.5, }, keeneye: { inherit: true, - desc: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage.", - shortDesc: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage.", onModifyMove() {}, }, oblivious: { inherit: true, - desc: "This Pokemon cannot be infatuated. Gaining this Ability while infatuated cures it.", - shortDesc: "This Pokemon cannot be infatuated. Gaining this Ability while infatuated cures it.", onUpdate(pokemon) { if (pokemon.volatiles['attract']) { pokemon.removeVolatile('attract'); @@ -60,7 +52,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, overcoat: { inherit: true, - shortDesc: "This Pokemon is immune to damage from Sandstorm or Hail.", onTryHit() {}, rating: 0.5, }, @@ -81,7 +72,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, soundproof: { inherit: true, - shortDesc: "This Pokemon is immune to sound-based moves, except Heal Bell.", onAllyTryHitSide() {}, }, }; diff --git a/data/mods/gen5/moves.ts b/data/mods/gen5/moves.ts index 6844aca6db..d0741bf5b5 100644 --- a/data/mods/gen5/moves.ts +++ b/data/mods/gen5/moves.ts @@ -17,7 +17,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, aromatherapy: { inherit: true, - desc: "Every Pokemon in the user's party is cured of its major status condition.", onHit(target, source) { this.add('-activate', source, 'move: Aromatherapy'); for (const pokemon of source.side.pokemon) { @@ -27,7 +26,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, assist: { inherit: true, - desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Bestow, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, Transform, or Trick.", onHit(target) { const moves = []; for (const pokemon of target.side.pokemon) { @@ -54,10 +52,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 50, }, - attract: { - inherit: true, - desc: "Causes the target to become infatuated, making it unable to attack 50% of the time. Fails if both the user and the target are the same gender, if either is genderless, or if the target is already infatuated. The effect ends when either the user or the target is no longer active. Pokemon with the Oblivious Ability are immune.", - }, aurasphere: { inherit: true, basePower: 90, @@ -97,30 +91,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bestow: { inherit: true, - desc: "The target receives the user's held item. Fails if the user has no item or is holding a Mail, if the target is already holding an item, if the user is a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, or if the target is one of those Pokemon and the user is holding the respective item.", flags: {protect: 1, mirror: 1}, }, - bind: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, blizzard: { inherit: true, basePower: 120, }, block: { inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", flags: {protect: 1, reflectable: 1, mirror: 1}, }, - bodyslam: { - inherit: true, - desc: "Has a 30% chance to paralyze the target.", - }, - bounce: { - inherit: true, - desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", - }, bubble: { inherit: true, basePower: 20, @@ -131,8 +111,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, camouflage: { inherit: true, - desc: "The user's type changes based on the battle terrain. Ground type on the regular Wi-Fi terrain. Fails if the user's type cannot be changed or if the user is already purely that type.", - shortDesc: "Changes user's type based on terrain. (Ground)", onHit(target) { if (!target.setType('Ground')) return false; this.add('-start', target, 'typechange', 'Ground'); @@ -145,8 +123,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { chatter: { inherit: true, basePower: 60, - desc: "Has an X% chance to confuse the target, where X is 0 unless the user is a Chatot that hasn't Transformed. If the user is a Chatot, X is 0 or 10 depending on the volume of Chatot's recorded cry, if any; 0 for a low volume or no recording, 10 for a medium to high volume recording.", - shortDesc: "For Chatot, 10% chance to confuse the target.", onModifyMove(move, pokemon) { if (pokemon.species.name !== 'Chatot') delete move.secondaries; }, @@ -156,14 +132,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, flags: {protect: 1, sound: 1, distance: 1}, }, - clamp: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, conversion: { inherit: true, - desc: "The user's type changes to match the original type of one of its known moves besides this move, at random, but not either of its current types. Fails if the user cannot change its type, or if this move would only be able to select one of the user's current types.", - shortDesc: "Changes user's type to match a known move.", onHit(target) { const possibleTypes = target.moveSlots.map(moveSlot => { const move = this.dex.getMove(moveSlot.id); @@ -183,7 +153,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, copycat: { inherit: true, - desc: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Bestow, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, Transform, or Trick.", onHit(pokemon) { const noCopycat = [ 'assist', 'bestow', 'chatter', 'circlethrow', 'copycat', 'counter', 'covet', 'destinybond', 'detect', 'dragontail', 'endure', 'feint', 'focuspunch', 'followme', 'helpinghand', 'mefirst', 'metronome', 'mimic', 'mirrorcoat', 'mirrormove', 'naturepower', 'protect', 'ragepowder', 'sketch', 'sleeptalk', 'snatch', 'struggle', 'switcheroo', 'thief', 'transform', 'trick', @@ -201,7 +170,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, covet: { inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Giratina holding a Griseous Orb, an Arceus holding a Plate, or a Genesect holding a Drive. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", pp: 40, }, crabhammer: { @@ -210,8 +178,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, defog: { inherit: true, - desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Safeguard, Mist, Spikes, Toxic Spikes, and Stealth Rock end for the target's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", - shortDesc: "-1 evasion; clears target side's hazards/screens.", onHit(pokemon) { if (!pokemon.volatiles['substitute']) this.boost({evasion: -1}); const sideConditions = ['reflect', 'lightscreen', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock']; @@ -222,10 +188,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - detect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, Protect, Quick Guard, or Wide Guard. Fails if the user moves last this turn.", - }, dracometeor: { inherit: true, basePower: 140, @@ -234,10 +196,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 90, }, - dragonrush: { - inherit: true, - desc: "Has a 20% chance to flinch the target.", - }, drainpunch: { inherit: true, flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, @@ -258,31 +216,17 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.debug(`${bp} bp`); return bp; }, - desc: "The power of this move depends on (user's current Speed / target's current Speed), rounded down. Power is equal to 150 if the result is 4 or more, 120 if 3, 80 if 2, 60 if 1, 40 if less than 1. If the target's current Speed is 0, it is treated as 1 instead.", - }, - endure: { - inherit: true, - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, Protect, Quick Guard, or Wide Guard. Fails if the user moves last this turn.", }, energyball: { inherit: true, basePower: 80, }, - entrainment: { - inherit: true, - desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is Multitype, Truant, or the same Ability as the user, or if the user's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Trace, or Zen Mode.", - }, extrasensory: { inherit: true, pp: 30, }, - facade: { - inherit: true, - desc: "Power doubles if the user is burned, paralyzed, or poisoned.", - }, feint: { inherit: true, - desc: "If this move is successful, it breaks through the target's Detect or Protect for this turn, allowing other Pokemon to attack the target normally. If the target is an opponent and its side is protected by Quick Guard or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the opponent's side normally.", flags: {}, }, finalgambit: { @@ -304,18 +248,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { return 50; }, }, - firespin: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, flamethrower: { inherit: true, basePower: 95, }, - fly: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", - }, followme: { inherit: true, priority: 3, @@ -390,17 +326,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { return 50; }, }, - gravity: { - inherit: true, - desc: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", - }, growl: { inherit: true, flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, }, growth: { inherit: true, - desc: "Raises the user's Attack and Special Attack by 1 stage. If the weather is Sunny Day, this move raises the user's Attack and Special Attack by 2 stages.", pp: 40, }, gunkshot: { @@ -415,11 +346,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.debug(`${power} bp`); return power; }, - desc: "Power is equal to (25 * target's current Speed / user's current Speed) + 1, rounded down, but not more than 150. If the user's current Speed is 0, it is treated as 1 instead.", }, healbell: { inherit: true, - desc: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Soundproof Ability are also cured.", flags: {snatch: 1, sound: 1}, onHit(target, source) { this.add('-activate', source, 'move: Heal Bell'); @@ -430,14 +359,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, healpulse: { inherit: true, - desc: "The target restores 1/2 of its maximum HP, rounded half up.", heal: [1, 2], onHit() {}, }, - heatcrash: { - inherit: true, - desc: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less.", - }, heatwave: { inherit: true, basePower: 100, @@ -452,8 +376,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePowerCallback(pokemon) { return pokemon.hpPower || 70; }, - desc: "This move's type and power depend on the user's individual values (IVs). Power varies between 30 and 70, and type can be any but Normal.", - shortDesc: "Varies in power and type based on the user's IVs.", }, hiddenpowerbug: { inherit: true, @@ -525,7 +447,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, hurricane: { inherit: true, - desc: "Has a 30% chance to confuse the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", basePower: 120, }, hydropump: { @@ -543,8 +464,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { incinerate: { inherit: true, basePower: 30, - desc: "The target loses its held item if it is a Berry. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "Destroys the foe(s) Berry.", onHit(pokemon, source) { const item = pokemon.getItem(); if (item.isBerry && pokemon.takeItem(source)) { @@ -552,15 +471,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - ingrain: { - inherit: true, - desc: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes and Toxic Spikes, even if the user is a Flying type or has the Levitate Ability.", - }, knockoff: { inherit: true, basePower: 20, - desc: "If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item, or force a Giratina, an Arceus, or a Genesect to lose their Griseous Orb, Plate, or Drive, respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "Removes the target's held item.", onBasePower() {}, }, leafstorm: { @@ -608,26 +521,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 60, }, - magiccoat: { - inherit: true, - desc: "Until the end of the turn, the user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. Moves reflected in this way are unable to be reflected again by this or the Magic Bounce Ability's effect. Spikes, Stealth Rock, and Toxic Spikes can only be reflected once per side, by the leftmost Pokemon under this or the Magic Bounce Ability's effect. The Lightning Rod and Storm Drain Abilities redirect their respective moves before this move takes effect.", - }, magicroom: { inherit: true, priority: -7, }, magmastorm: { inherit: true, - desc: "Prevents the target from switching for four or five turns; seven turns if the user is holding Grip Claw. Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin. This effect is not stackable or reset by using this or another partial-trapping move.", basePower: 120, }, - magnetrise: { - inherit: true, - desc: "For 5 turns, the user is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, and the Arena Trap Ability as long as it remains active. If the user uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, and Iron Ball override this move if the user is under any of their effects. Fails if the user is already under this effect or the effects of Ingrain or Smack Down.", - }, meanlook: { inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", flags: {protect: 1, reflectable: 1, mirror: 1}, }, megadrain: { @@ -643,13 +546,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 85, basePower: 100, }, - metronome: { - inherit: true, - desc: "A random move is selected for use, other than After You, Assist, Bestow, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Freeze Shock, Helping Hand, Ice Burn, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Sketch, Sleep Talk, Snarl, Snatch, Snore, Struggle, Switcheroo, Techno Blast, Thief, Transform, Trick, V-create, or Wide Guard.", - }, minimize: { inherit: true, - desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Stomp and Steamroller will have their damage doubled if used against the user while it is active.", pp: 20, condition: { noCopy: true, @@ -662,20 +560,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, moonlight: { inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded half down.", type: "Normal", }, - morningsun: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded half down.", - }, mudsport: { num: 300, accuracy: true, basePower: 0, category: "Status", - desc: "While the user is active, all Electric-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active for any Pokemon.", - shortDesc: "Weakens Electric-type attacks to 1/3 their power.", name: "Mud Sport", pp: 15, priority: 0, @@ -705,8 +596,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, naturepower: { inherit: true, - desc: "This move calls another move for use based on the battle terrain. Earthquake on the regular Wi-Fi terrain.", - shortDesc: "Attack changes based on terrain. (Earthquake)", onTryHit() {}, onHit(pokemon) { this.useMove('earthquake', pokemon); @@ -728,8 +617,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, poisonfang: { inherit: true, - desc: "Has a 30% chance to badly poison the target.", - shortDesc: "30% chance to badly poison the target.", secondary: { chance: 30, status: 'tox', @@ -747,10 +634,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 70, }, - protect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, Protect, Quick Guard, or Wide Guard. Fails if the user moves last this turn.", - }, psychup: { inherit: true, onHit(target, source) { @@ -769,13 +652,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, accuracy: 80, }, - pursuit: { - inherit: true, - desc: "If an adjacent opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using U-turn or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", - }, quickguard: { inherit: true, - desc: "The user and its party members are protected from attacks with original priority greater than 0 made by other Pokemon, including allies, during this turn. This attack has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this attack fails or if the user's last used move is not Detect, Endure, Protect, Quick Guard, or Wide Guard. If X is 256 or more, this move has a 1/(2^32) chance of being successful. Fails if the user moves last this turn or if this move is already in effect for the user's side.", stallingMove: true, onTryHitSide(side, source) { return this.queue.willAct() && this.runEvent('StallMove', source); @@ -855,26 +733,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 50, pp: 10, }, - roleplay: { - inherit: true, - desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Multitype or already matches the target, or if the target's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Trace, Wonder Guard, or Zen Mode.", - }, round: { inherit: true, flags: {protect: 1, mirror: 1, sound: 1}, }, - sandtomb: { - inherit: true, - desc: "Prevents the target from switching for four or five turns; seven turns if the user is holding Grip Claw. Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin. This effect is not stackable or reset by using this or another partial-trapping move.", - }, sacredsword: { inherit: true, pp: 20, }, scald: { inherit: true, - desc: "Has a 30% chance to burn the target.", - shortDesc: "30% chance to burn the target.", thawsTarget: false, }, screech: { @@ -883,8 +751,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, secretpower: { inherit: true, - desc: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Lowers accuracy by 1 stage on the regular Wi-Fi terrain. The secondary effect chance is not affected by the Serene Grace Ability.", - shortDesc: "Effect varies with terrain. (30% chance acc -1)", condition: { duration: 1, onAfterMoveSecondarySelf(source, target, move) { @@ -895,21 +761,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - shadowforce: { - inherit: true, - desc: "If this move is successful, it breaks through the target's Detect or Protect for this turn, allowing other Pokemon to attack the target normally. If the target is an opponent and its side is protected by Quick Guard or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the opponent's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn.", - }, - simplebeam: { - inherit: true, - desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is Multitype, Simple, or Truant.", - }, sing: { inherit: true, flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, }, skillswap: { inherit: true, - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Illusion, Multitype, or Wonder Guard, or if both have the same Ability.", onHit(target, source) { const targetAbility = target.ability; const sourceAbility = source.ability; @@ -928,7 +785,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, skydrop: { inherit: true, - desc: "This attack takes the target into the air with the user on the first turn and executes on the second. On the first turn, the user and the target avoid all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thunder, and Twister. The user and the target cannot make a move between turns, but the target can select a move to use. This move cannot damage Flying-type Pokemon. Fails on the first turn if the target is an ally, if the target has a substitute, or if the target is using Bounce, Dig, Dive, Fly, Shadow Force, or Sky Drop. If the effect of Gravity ends this effect before the second turn, both the user and the target return to the ground, but the target will otherwise remain under this effect until the user leaves the field or successfully executes the second turn of any two-turn move.", onTryHit(target, source, move) { if (target.fainted) return false; if (source.removeVolatile(move.id)) { @@ -954,10 +810,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, onTryHit() {}, }, - sleeptalk: { - inherit: true, - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Bide, Chatter, Copycat, Focus Punch, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, Uproar, or any two-turn move.", - }, smellingsalts: { inherit: true, basePower: 60, @@ -977,7 +829,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, soak: { inherit: true, - desc: "Causes the target to become a Water type. Fails if the target is an Arceus.", onHit(target) { if (!target.setType('Water')) { // Soak should animate even when it fails. @@ -988,42 +839,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-start', target, 'typechange', 'Water'); }, }, - solarbeam: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Rain Dance, or Sandstorm. If the user is holding a Power Herb or the weather is Sunny Day, the move completes in one turn.", - }, - spiderweb: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - }, - spikes: { - inherit: true, - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, or is hit by Defog.", - }, spore: { inherit: true, onTryHit() {}, }, - stealthrock: { - inherit: true, - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, or is hit by Defog.", - }, - steamroller: { - inherit: true, - desc: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", - }, - stomp: { - inherit: true, - desc: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", - }, stormthrow: { inherit: true, basePower: 40, }, stringshot: { inherit: true, - desc: "Lowers the target's Speed by 1 stage.", - shortDesc: "Lowers the foe(s) Speed by 1.", boosts: { spe: -1, }, @@ -1038,7 +863,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, substitute: { inherit: true, - desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", condition: { onStart(target) { this.add('-start', target, 'Substitute'); @@ -1103,16 +927,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, sweetscent: { inherit: true, - desc: "Lowers the target's evasiveness by 1 stage.", - shortDesc: "Lowers the foe(s) evasiveness by 1.", boosts: { evasion: -1, }, }, - switcheroo: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, or if the user is trying to give or take a Griseous Orb, a Plate, or a Drive to or from a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", - }, swordsdance: { inherit: true, pp: 30, @@ -1122,54 +940,27 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 70, pp: 15, }, - synthesis: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded half down.", - }, tailwind: { inherit: true, pp: 30, }, - taunt: { - inherit: true, - desc: "Prevents the target from using non-damaging moves for its next three turns.", - }, technoblast: { inherit: true, basePower: 85, }, - telekinesis: { - inherit: true, - desc: "For 3 turns, the target cannot avoid any attacks made against it, other than OHKO moves, as long as it remains active. During the effect, the target is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, and the Arena Trap Ability as long as it remains active. If the target uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, and Iron Ball override this move if the target is under any of their effects. Fails if the target is already under this effect or the effects of Ingrain or Smack Down. The target is immune to this move on use if its species is Diglett or Dugtrio.", - }, thief: { inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Giratina holding a Griseous Orb, an Arceus holding a Plate, or a Genesect holding a Drive. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", basePower: 40, pp: 10, }, thunder: { inherit: true, - desc: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", basePower: 120, }, thunderbolt: { inherit: true, basePower: 95, }, - toxic: { - inherit: true, - desc: "Badly poisons the target.", - shortDesc: "Badly poisons the target.", - }, - toxicspikes: { - inherit: true, - desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", - }, - trick: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, or if the user is trying to give or take a Griseous Orb, a Plate, or a Drive to or from a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", - }, uproar: { inherit: true, flags: {protect: 1, mirror: 1, sound: 1}, @@ -1199,8 +990,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "While the user is active, all Fire-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active for any Pokemon.", - shortDesc: "Weakens Fire-type attacks to 1/3 their power.", name: "Water Sport", pp: 15, priority: 0, @@ -1224,14 +1013,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { target: "all", type: "Water", }, - weatherball: { - inherit: true, - desc: "Power doubles if a weather condition is active, and this move's type changes to match. Ice type during Hail, Water type during Rain Dance, Rock type during Sandstorm, and Fire type during Sunny Day.", - }, - whirlpool: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, whirlwind: { inherit: true, accuracy: 100, @@ -1239,7 +1020,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, wideguard: { inherit: true, - desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This attack has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this attack fails or if the user's last used move is not Detect, Endure, Protect, Quick Guard, or Wide Guard. If X is 256 or more, this move has a 1/(2^32) chance of being successful. Fails if the user moves last this turn or if this move is already in effect for the user's side.", stallingMove: true, onTryHitSide(side, source) { return this.queue.willAct() && this.runEvent('StallMove', source); @@ -1256,12 +1036,4 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, priority: -7, }, - worryseed: { - inherit: true, - desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Insomnia, Multitype, or Truant.", - }, - wrap: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, }; diff --git a/data/mods/gen6/abilities.ts b/data/mods/gen6/abilities.ts index e871e46313..ea4e3f7d48 100644 --- a/data/mods/gen6/abilities.ts +++ b/data/mods/gen6/abilities.ts @@ -1,8 +1,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { aerilate: { inherit: true, - desc: "This Pokemon's Normal-type moves become Flying-type moves and have their power multiplied by 1.3. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Flying type and have 1.3x power.", onBasePower(basePower, pokemon, target, move) { if (move.aerilateBoosted) return this.chainModify([0x14CD, 0x1000]); }, @@ -16,32 +14,13 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, - anticipation: { - inherit: true, - desc: "On switch-in, this Pokemon is alerted if any opposing Pokemon has an attack that is super effective against this Pokemon, or an OHKO move. Counter, Metal Burst, and Mirror Coat count as attacking moves of their respective types, Hidden Power counts as its determined type, and Judgment, Natural Gift, Techno Blast, and Weather Ball are considered Normal-type moves.", - }, - contrary: { - inherit: true, - desc: "If this Pokemon has a stat stage raised it is lowered instead, and vice versa.", - }, - damp: { - inherit: true, - desc: "While this Pokemon is active, Explosion, Self-Destruct, and the Aftermath Ability are prevented from having an effect.", - shortDesc: "Prevents Explosion/Self-Destruct/Aftermath while this Pokemon is active.", - }, galewings: { inherit: true, - shortDesc: "This Pokemon's Flying-type moves have their priority increased by 1.", onModifyPriority(priority, pokemon, target, move) { if (move && move.type === 'Flying') return priority + 1; }, rating: 4, }, - infiltrator: { - inherit: true, - desc: "This Pokemon's moves ignore substitutes and the opposing side's Reflect, Light Screen, Safeguard, and Mist.", - shortDesc: "Moves ignore substitutes and the foe's Reflect, Light Screen, Safeguard, and Mist.", - }, ironbarbs: { inherit: true, onDamagingHit(damage, target, source, move) { @@ -67,18 +46,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { if (effect.effectType !== 'Move') return false; }, }, - multitype: { - inherit: true, - shortDesc: "If this Pokemon is an Arceus, its type changes to match its held Plate.", - }, - mummy: { - inherit: true, - desc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect the Multitype or Stance Change Abilities.", - }, normalize: { inherit: true, - desc: "This Pokemon's moves are changed to be Normal type. This effect comes before other effects that change a move's type.", - shortDesc: "This Pokemon's moves are changed to be Normal type.", onModifyMovePriority: 1, onModifyMove(move) { if (move.id !== 'struggle' && this.dex.getMove(move.id).type !== 'Normal') { @@ -89,8 +58,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, parentalbond: { inherit: true, - desc: "This Pokemon's damaging moves become multi-hit moves that hit twice. The second hit has its damage halved. Does not affect multi-hit moves or moves that have multiple targets.", - shortDesc: "This Pokemon's damaging moves hit twice. The second hit has its damage halved.", onBasePower(basePower, pokemon, target, move) { if (move.multihitType === 'parentalbond' && move.hit > 1) return this.chainModify(0.5); }, @@ -98,21 +65,13 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, pixilate: { inherit: true, - desc: "This Pokemon's Normal-type moves become Fairy-type moves and have their power multiplied by 1.3. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Fairy type and have 1.3x power.", onBasePower(basePower, pokemon, target, move) { if (move.pixilateBoosted) return this.chainModify([0x14CD, 0x1000]); }, rating: 4.5, }, - prankster: { - inherit: true, - shortDesc: "This Pokemon's non-damaging moves have their priority increased by 1.", - }, refrigerate: { inherit: true, - desc: "This Pokemon's Normal-type moves become Ice-type moves and have their power multiplied by 1.3. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Ice type and have 1.3x power.", onBasePower(basePower, pokemon, target, move) { if (move.refrigerateBoosted) return this.chainModify([0x14CD, 0x1000]); }, @@ -126,18 +85,12 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, - simple: { - inherit: true, - desc: "When this Pokemon's stat stages are raised or lowered, the effect is doubled instead.", - }, stancechange: { inherit: true, onBeforeMovePriority: 11, }, weakarmor: { inherit: true, - desc: "If a physical attack hits this Pokemon, its Defense is lowered by 1 stage and its Speed is raised by 1 stage.", - shortDesc: "If a physical attack hits this Pokemon, Defense is lowered by 1, Speed is raised by 1.", onDamagingHit(damage, target, source, move) { if (move.category === 'Physical') { this.boost({def: -1, spe: 1}, target, target); @@ -145,8 +98,4 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, rating: 0.5, }, - zenmode: { - inherit: true, - desc: "If this Pokemon is a Darmanitan, it changes to Zen Mode if it has 1/2 or less of its maximum HP at the end of a turn. If Darmanitan's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Standard Mode. If Darmanitan loses this Ability while in Zen Mode, it reverts to Standard Mode immediately.", - }, }; diff --git a/data/mods/gen6/moves.ts b/data/mods/gen6/moves.ts index ae993a00f6..1bc59553bb 100644 --- a/data/mods/gen6/moves.ts +++ b/data/mods/gen6/moves.ts @@ -1,64 +1,21 @@ export const Moves: {[k: string]: ModdedMoveData} = { allyswitch: { inherit: true, - desc: "The user swaps positions with its ally on the opposite side of the field. Fails if there is no Pokemon at that position, if the user is the only Pokemon on its side, or if the user is in the middle.", - shortDesc: "Switches position with the ally on the far side.", priority: 1, }, - assist: { - inherit: true, - desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Belch, Bestow, Bounce, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", - }, - bestow: { - inherit: true, - desc: "The target receives the user's held item. Fails if the user has no item or is holding a Mail, if the target is already holding an item, if the user is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Pokemon that can Mega Evolve holding the Mega Stone for its species, or if the target is one of those Pokemon and the user is holding the respective item.", - }, - brickbreak: { - inherit: true, - desc: "If this attack does not miss, the effects of Reflect and Light Screen end for the target's side of the field before damage is calculated.", - }, - camouflage: { - inherit: true, - desc: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain, Electric type during Electric Terrain, Fairy type during Misty Terrain, and Grass type during Grassy Terrain. Fails if the user's type cannot be changed or if the user is already purely that type.", - }, - copycat: { - inherit: true, - desc: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Roar, Sketch, Sleep Talk, Snatch, Spiky Shield, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", - }, - counter: { - inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals damage with a power of 1 instead. If that opposing Pokemon's position is no longer in use, the damage is done to a random opposing Pokemon in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn.", - }, - covet: { - inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - }, darkvoid: { inherit: true, - desc: "Causes the target to fall asleep.", - shortDesc: "Causes the foe(s) to fall asleep.", accuracy: 80, onTryMove() {}, }, - defog: { - inherit: true, - desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", - }, destinybond: { inherit: true, - desc: "Until the user's next turn, if an opposing Pokemon's attack knocks the user out, that Pokemon faints as well, unless the attack was Doom Desire or Future Sight.", onPrepareHit(pokemon) { pokemon.removeVolatile('destinybond'); }, }, - detect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, diamondstorm: { inherit: true, - desc: "Has a 50% chance to raise the user's Defense by 1 stage.", - shortDesc: "50% chance to raise user's Def by 1 for each hit.", secondary: { chance: 50, self: { @@ -68,13 +25,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - disable: { - inherit: true, - desc: "For 4 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, or if the target no longer knows the move.", - }, encore: { inherit: true, - desc: "For 3 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Mimic, Mirror Move, Sketch, Struggle, or Transform.", condition: { duration: 3, onStart(target) { @@ -119,42 +71,19 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - endure: { - inherit: true, - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, - entrainment: { - inherit: true, - desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is Multitype, Stance Change, Truant, or the same Ability as the user, or if the user's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Stance Change, Trace, or Zen Mode.", - }, - feint: { - inherit: true, - desc: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", - }, fellstinger: { inherit: true, - desc: "Raises the user's Attack by 2 stages if this move knocks out the target.", - shortDesc: "Raises user's Attack by 2 if this KOes the target.", basePower: 30, onAfterMoveSecondarySelf(pokemon, target, move) { if (!target || target.fainted || target.hp <= 0) this.boost({atk: 2}, pokemon, pokemon, move); }, }, - flameburst: { - inherit: true, - desc: "If this move is successful, each ally adjacent to the target loses 1/16 of its maximum HP, rounded down, unless it has the Magic Guard Ability.", - }, flyingpress: { inherit: true, basePower: 80, }, - followme: { - inherit: true, - desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user if they are in range. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double or Triple Battle. This effect is ignored while the user is under the effect of Sky Drop.", - }, gastroacid: { inherit: true, - desc: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is Multitype or Stance Change, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", onTryHit(pokemon) { const bannedAbilities = ['multitype', 'stancechange']; if (bannedAbilities.includes(pokemon.ability)) { @@ -162,70 +91,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - gravity: { - inherit: true, - desc: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", - }, - healblock: { - inherit: true, - desc: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected.", - }, - heavyslam: { - inherit: true, - desc: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less.", - }, - hyperspacefury: { - inherit: true, - desc: "Lowers the user's Defense by 1 stage. This move cannot be used successfully unless the user's current form, while considering Transform, is Hoopa Unbound. If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", - }, - hyperspacehole: { - inherit: true, - desc: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", - }, - iceball: { - inherit: true, - desc: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn.", - }, - imprison: { - inherit: true, - desc: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active.", - }, - kingsshield: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, - knockoff: { - inherit: true, - desc: "If the target is holding an item that can be removed from it, ignoring the Sticky Hold Ability, this move's power is multiplied by 1.5. If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item, cause Pokemon that can Mega Evolve to lose the Mega Stone for their species, or cause a Kyogre, a Groudon, a Giratina, an Arceus, or a Genesect to lose their Blue Orb, Red Orb, Griseous Orb, Plate, or Drive, respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - }, leechlife: { inherit: true, basePower: 20, pp: 15, }, - lightscreen: { - inherit: true, - desc: "For 5 turns, the user and its party members take 0.5x damage from special attacks, or 0.66x damage if in a Double or Triple Battle. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", - }, - mefirst: { - inherit: true, - desc: "The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move other than Chatter, Counter, Covet, Focus Punch, Me First, Metal Burst, Mirror Coat, Struggle, or Thief. Fails if the target moves before the user. Ignores the target's substitute for the purpose of copying the move.", - }, - metalburst: { - inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with an attack this turn equal to 1.5 times the HP lost by the user from that attack, rounded down. If the user did not lose HP from the attack, this move deals damage with a power of 1 instead. If that opposing Pokemon's position is no longer in use, the damage is done to a random opposing Pokemon in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's attack this turn.", - }, - metronome: { - inherit: true, - desc: "A random move is selected for use, other than After You, Assist, Belch, Bestow, Celebrate, Chatter, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Diamond Storm, Dragon Ascent, Endure, Feint, Focus Punch, Follow Me, Freeze Shock, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, King's Shield, Light of Ruin, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Origin Pulse, Precipice Blades, Protect, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Sketch, Sleep Talk, Snarl, Snatch, Snore, Spiky Shield, Steam Eruption, Struggle, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Transform, Trick, V-create, or Wide Guard.", - }, - mimic: { - inherit: true, - desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Chatter, Mimic, Sketch, Struggle, or Transform.", - }, minimize: { inherit: true, - desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Phantom Force, Shadow Force, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", condition: { noCopy: true, onSourceModifyDamage(damage, source, target, move) { @@ -247,13 +119,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - mirrorcoat: { - inherit: true, - desc: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals damage with a power of 1 instead. If that opposing Pokemon's position is no longer in use, the damage is done to a random opposing Pokemon in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn.", - }, mistyterrain: { inherit: true, - desc: "For 5 turns, the terrain becomes Misty Terrain. During the effect, the power of Dragon-type attacks used against grounded Pokemon is multiplied by 0.5 and grounded Pokemon cannot be inflicted with a major status condition. Camouflage transforms the user into a Fairy type, Nature Power becomes Moonblast, and Secret Power has a 30% chance to lower Special Attack by 1 stage. Fails if the current terrain is Misty Terrain.", condition: { duration: 5, durationCallback(source, effect) { @@ -293,40 +160,18 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 65, }, - naturepower: { - inherit: true, - desc: "This move calls another move for use based on the battle terrain. Tri Attack on the regular Wi-Fi terrain, Thunderbolt during Electric Terrain, Moonblast during Misty Terrain, and Energy Ball during Grassy Terrain.", - }, - outrage: { - inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an adjacent opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", - }, paraboliccharge: { inherit: true, basePower: 50, }, partingshot: { inherit: true, - desc: "Lowers the target's Attack and Special Attack by 1 stage. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", onHit(target, source) { this.boost({atk: -1, spa: -1}, target, source); }, }, - payback: { - inherit: true, - desc: "Power doubles if the user moves after the target this turn. Switching in does not count as an action.", - }, - petaldance: { - inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an adjacent opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", - }, - phantomforce: { - inherit: true, - desc: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - }, powder: { inherit: true, - desc: "If the target uses a Fire-type move this turn, it is prevented from executing and the target loses 1/4 of its maximum HP, rounded half up. This effect happens before the Fire-type move would be prevented by Primordial Sea.", condition: { duration: 1, onStart(target) { @@ -342,59 +187,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - protect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, - pursuit: { - inherit: true, - desc: "If an adjacent opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using Parting Shot, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", - }, - quickguard: { - inherit: true, - desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - }, - ragepowder: { - inherit: true, - desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user if they are in range. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double or Triple Battle. This effect is ignored while the user is under the effect of Sky Drop.", - }, - reflect: { - inherit: true, - desc: "For 5 turns, the user and its party members take 0.5x damage from physical attacks, or 0.66x damage if in a Double or Triple Battle. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", - }, - reflecttype: { - inherit: true, - desc: "Causes the user's types to become the same as the current types of the target. Fails if the user is an Arceus.", - }, rockblast: { inherit: true, flags: {protect: 1, mirror: 1}, }, - roleplay: { - inherit: true, - desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Multitype, Stance Change, or already matches the target, or if the target's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Stance Change, Trace, Wonder Guard, or Zen Mode.", - }, - rollout: { - inherit: true, - desc: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn.", - }, - secretpower: { - inherit: true, - desc: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Causes paralysis on the regular Wi-Fi terrain, causes paralysis during Electric Terrain, lowers Special Attack by 1 stage during Misty Terrain, and causes sleep during Grassy Terrain.", - }, - shadowforce: { - inherit: true, - desc: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - }, sheercold: { inherit: true, - desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", - shortDesc: "OHKOs the target. Fails if user is a lower level.", ohko: true, }, simplebeam: { inherit: true, - desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is Multitype, Simple, Stance Change, or Truant.", onTryHit(pokemon) { const bannedAbilities = ['multitype', 'simple', 'stancechange', 'truant']; if (bannedAbilities.includes(pokemon.ability)) { @@ -404,7 +206,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, skillswap: { inherit: true, - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Illusion, Multitype, Stance Change, or Wonder Guard.", onTryHit(target, source) { const bannedAbilities = ['illusion', 'multitype', 'stancechange', 'wonderguard']; if (bannedAbilities.includes(target.ability) || bannedAbilities.includes(source.ability)) { @@ -412,18 +213,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, - sleeptalk: { - inherit: true, - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Belch, Bide, Celebrate, Chatter, Copycat, Focus Punch, Hold Hands, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, Uproar, or any two-turn move.", - }, - soak: { - inherit: true, - desc: "Causes the target to become a Water type. Fails if the target is an Arceus, or if the target is already purely Water type.", - }, - spikyshield: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, stockpile: { inherit: true, condition: { @@ -447,10 +236,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - struggle: { - inherit: true, - desc: "Deals typeless damage to a random adjacent opposing Pokemon. If this move was successful, the user loses 1/4 of its maximum HP, rounded half up, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", - }, suckerpunch: { inherit: true, basePower: 80, @@ -459,26 +244,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, accuracy: 90, }, - switcheroo: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, or a Drive to or from a Kyogre, a Groudon, a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", - }, tackle: { inherit: true, basePower: 50, }, - taunt: { - inherit: true, - desc: "Prevents the target from using non-damaging moves for its next three turns. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune.", - }, - telekinesis: { - inherit: true, - desc: "For 3 turns, the target cannot avoid any attacks made against it, other than OHKO moves, as long as it remains active. During the effect, the target is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability as long as it remains active. If the target uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, Thousand Arrows, and Iron Ball override this move if the target is under any of their effects. Fails if the target is already under this effect or the effects of Ingrain, Smack Down, or Thousand Arrows. The target is immune to this move on use if its species is Diglett, Dugtrio, or Gengar while Mega-Evolved. Mega Gengar cannot be under this effect by any means.", - }, - thief: { - inherit: true, - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - }, thousandarrows: { inherit: true, isNonstandard: "Unobtainable", @@ -487,39 +256,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: "Unobtainable", }, - thrash: { - inherit: true, - desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an adjacent opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", - }, thunderwave: { inherit: true, accuracy: 100, }, - trick: { - inherit: true, - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, or a Drive to or from a Kyogre, a Groudon, a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", - }, - uproar: { - inherit: true, - desc: "The user spends three turns locked into this move. This move targets an adjacent opponent at random on each turn. On the first of the three turns, all sleeping active Pokemon wake up. During the three turns, no active Pokemon can fall asleep by any means, and Pokemon switched in during the effect do not wake up. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", - }, - uturn: { - inherit: true, - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button.", - }, - voltswitch: { - inherit: true, - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button.", - }, watershuriken: { inherit: true, - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", category: "Physical", }, wideguard: { inherit: true, - desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - shortDesc: "Protects allies from multi-target damage this turn.", condition: { duration: 1, onStart(target, source) { @@ -548,7 +294,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, worryseed: { inherit: true, - desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Insomnia, Multitype, Stance Change, or Truant.", onTryHit(pokemon) { const bannedAbilities = ['insomnia', 'multitype', 'stancechange', 'truant']; if (bannedAbilities.includes(pokemon.ability)) { diff --git a/data/mods/gen7/abilities.ts b/data/mods/gen7/abilities.ts index 534fb321ef..0428c0946e 100644 --- a/data/mods/gen7/abilities.ts +++ b/data/mods/gen7/abilities.ts @@ -1,17 +1,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { - chlorophyll: { - inherit: true, - desc: "If Sunny Day is active, this Pokemon's Speed is doubled.", - }, - damp: { - inherit: true, - desc: "While this Pokemon is active, Explosion, Mind Blown, Self-Destruct, and the Aftermath Ability are prevented from having an effect.", - shortDesc: "Prevents Explosion/Mind Blown/Self-Destruct/Aftermath while this Pokemon is active.", - }, disguise: { inherit: true, - desc: "If this Pokemon is a Mimikyu, the first hit it takes in battle deals 0 neutral damage. Its disguise is then broken and it changes to Busted Form. Confusion damage also breaks the disguise.", - shortDesc: "(Mimikyu only) First hit deals 0 damage, breaks disguise.", onUpdate(pokemon) { if (['mimikyu', 'mimikyutotem'].includes(pokemon.species.id) && this.effectData.busted) { const speciesid = pokemon.species.id === 'mimikyutotem' ? 'Mimikyu-Busted-Totem' : 'Mimikyu-Busted'; @@ -19,41 +8,17 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, - dryskin: { - inherit: true, - desc: "This Pokemon is immune to Water-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Water-type move. The power of Fire-type moves is multiplied by 1.25 when used on this Pokemon. At the end of each turn, this Pokemon restores 1/8 of its maximum HP, rounded down, if the weather is Rain Dance, and loses 1/8 of its maximum HP, rounded down, if the weather is Sunny Day.", - }, - flowergift: { - inherit: true, - desc: "If this Pokemon is a Cherrim and Sunny Day is active, it changes to Sunshine Form and the Attack and Special Defense of it and its allies are multiplied by 1.5.", - }, - forecast: { - inherit: true, - desc: "If this Pokemon is a Castform, its type changes to the current weather condition's type, except Sandstorm.", - }, - hydration: { - inherit: true, - desc: "This Pokemon has its major status condition cured at the end of each turn if Rain Dance is active.", - }, innerfocus: { inherit: true, - shortDesc: "This Pokemon cannot be made to flinch.", rating: 1, onBoost() {}, }, intimidate: { inherit: true, - desc: "On switch-in, this Pokemon lowers the Attack of adjacent opposing Pokemon by 1 stage. Pokemon behind a substitute are immune.", rating: 4, }, - leafguard: { - inherit: true, - desc: "If Sunny Day is active, this Pokemon cannot gain a major status condition and Rest will fail for it.", - }, moody: { inherit: true, - desc: "This Pokemon has a random stat raised by 2 stages and another stat lowered by 1 stage at the end of each turn.", - shortDesc: "Raises a random stat by 2 and lowers another stat by 1 at the end of each turn.", onResidual(pokemon) { let stats: BoostName[] = []; const boost: SparseBoostsTable = {}; @@ -81,23 +46,13 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, oblivious: { inherit: true, - desc: "This Pokemon cannot be infatuated or taunted. Gaining this Ability while affected cures it.", - shortDesc: "This Pokemon cannot be infatuated or taunted.", onBoost() {}, }, owntempo: { inherit: true, - desc: "This Pokemon cannot be confused. Gaining this Ability while confused cures it.", - shortDesc: "This Pokemon cannot be confused.", onBoost() {}, }, - raindish: { - inherit: true, - desc: "If Rain Dance is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn.", - }, rattled: { - desc: "This Pokemon's Speed is raised by 1 stage if hit by a Bug-, Dark-, or Ghost-type attack.", - shortDesc: "This Pokemon's Speed is raised 1 stage if hit by a Bug-, Dark-, or Ghost-type attack.", onDamagingHit(damage, target, source, move) { if (['Dark', 'Bug', 'Ghost'].includes(move.type)) { this.boost({spe: 1}); @@ -109,18 +64,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, scrappy: { inherit: true, - desc: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves.", - shortDesc: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves.", onBoost() {}, }, - solarpower: { - inherit: true, - desc: "If Sunny Day is active, this Pokemon's Special Attack is multiplied by 1.5 and it loses 1/8 of its maximum HP, rounded down, at the end of each turn.", - }, - swiftswim: { - inherit: true, - desc: "If Rain Dance is active, this Pokemon's Speed is doubled.", - }, technician: { inherit: true, onBasePowerPriority: 19, diff --git a/data/mods/gen7/moves.ts b/data/mods/gen7/moves.ts index f068c5204b..456b2da309 100644 --- a/data/mods/gen7/moves.ts +++ b/data/mods/gen7/moves.ts @@ -15,10 +15,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - anchorshot: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - }, assist: { inherit: true, isNonstandard: null, @@ -28,10 +24,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 90, }, - banefulbunker: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, barrage: { inherit: true, isNonstandard: null, @@ -52,18 +44,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - bind: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, blackholeeclipse: { inherit: true, isNonstandard: null, }, - block: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - }, bloomdoom: { inherit: true, isNonstandard: null, @@ -112,7 +96,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, clamp: { inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", isNonstandard: null, }, clangoroussoulblaze: { @@ -131,10 +114,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - copycat: { - inherit: true, - desc: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, Whirlwind, or any Z-Move.", - }, coreenforcer: { inherit: true, isNonstandard: null, @@ -155,14 +134,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - detect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, defog: { inherit: true, - desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", - shortDesc: "-1 evasion; clears user and target side's hazards.", onHit(target, source, move) { let success = false; if (!target.volatiles['substitute'] || move.infiltrates) success = !!this.boost({evasion: -1}); @@ -194,10 +167,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - disable: { - inherit: true, - desc: "For 4 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move was a Z-Move. Z-Powered moves can still be selected and executed during this effect.", - }, dizzypunch: { inherit: true, isNonstandard: null, @@ -224,7 +193,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, electricterrain: { inherit: true, - desc: "For 5 turns, the terrain becomes Electric Terrain. During the effect, the power of Electric-type attacks made by grounded Pokemon is multiplied by 1.5 and grounded Pokemon cannot fall asleep; Pokemon already asleep do not wake up. Camouflage transforms the user into an Electric type, Nature Power becomes Thunderbolt, and Secret Power has a 30% chance to cause paralysis. Fails if the current terrain is Electric Terrain.", condition: { duration: 5, durationCallback(source, effect) { @@ -272,22 +240,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - encore: { - inherit: true, - desc: "For its next 3 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Assist, Copycat, Encore, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, Transform, or any Z-Move. Z-Powered moves can still be selected and executed during this effect.", - }, - endure: { - inherit: true, - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, extremeevoboost: { inherit: true, isNonstandard: null, }, - fairylock: { - inherit: true, - desc: "Prevents all active Pokemon from switching next turn. A Pokemon can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. Fails if the effect is already active.", - }, feintattack: { inherit: true, isNonstandard: null, @@ -341,7 +297,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, grassyterrain: { inherit: true, - desc: "For 5 turns, the terrain becomes Grassy Terrain. During the effect, the power of Grass-type attacks used by grounded Pokemon is multiplied by 1.5, the power of Bulldoze, Earthquake, and Magnitude used against grounded Pokemon is multiplied by 0.5, and grounded Pokemon have 1/16 of their maximum HP, rounded down, restored at the end of each turn, including the last turn. Camouflage transforms the user into a Grass type, Nature Power becomes Energy Ball, and Secret Power has a 30% chance to cause sleep. Fails if the current terrain is Grassy Terrain.", condition: { duration: 5, durationCallback(source, effect) { @@ -385,21 +340,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - gravity: { - inherit: true, - desc: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect. Relevant Z-Powered moves can still be selected, but will be prevented at execution during this effect.", - }, - growth: { - inherit: true, - desc: "Raises the user's Attack and Special Attack by 1 stage. If the weather is Sunny Day or Desolate Land, this move raises the user's Attack and Special Attack by 2 stages.", - }, guardianofalola: { inherit: true, isNonstandard: null, }, healbell: { inherit: true, - desc: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Soundproof Ability are not cured.", onHit(pokemon, source) { this.add('-activate', source, 'move: Heal Bell'); const side = pokemon.side; @@ -414,12 +360,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { healblock: { inherit: true, isNonstandard: null, - desc: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected. Relevant Z-Powered moves can still be selected and executed during this effect.", }, healingwish: { inherit: true, - desc: "The user faints and the Pokemon brought out to replace it has its HP fully restored along with having any major status condition cured. The new Pokemon is sent out at the end of the turn, and the healing happens before hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", - shortDesc: "User faints. Replacement is fully healed.", condition: { duration: 2, onSwitchInPriority: 1, @@ -453,10 +396,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, onTryHit() {}, }, - hurricane: { - inherit: true, - desc: "Has a 30% chance to confuse the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%.", - }, hiddenpower: { inherit: true, isNonstandard: null, @@ -527,8 +466,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, howl: { inherit: true, - desc: "Raises the user's Attack by 1 stage.", - shortDesc: "Raises the user's Attack by 1.", flags: {snatch: 1}, boosts: { atk: 1, @@ -559,26 +496,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - imprison: { - inherit: true, - desc: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active. Z-Powered moves can still be selected and executed during this effect.", - }, infernooverdrive: { inherit: true, isNonstandard: null, }, - infestation: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, - ingrain: { - inherit: true, - desc: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes, Toxic Spikes, and Sticky Web, even if the user is a Flying type or has the Levitate Ability.", - }, - instruct: { - inherit: true, - desc: "The target immediately uses its last used move. Fails if the target has not made a move, if the move has 0 PP, if the target is preparing to use Beak Blast, Focus Punch, or Shell Trap, or if the move is Assist, Beak Blast, Belch, Bide, Celebrate, Copycat, Focus Punch, Ice Ball, Instruct, King's Shield, Me First, Metronome, Mimic, Mirror Move, Nature Power, Outrage, Petal Dance, Rollout, Shell Trap, Sketch, Sleep Talk, Struggle, Thrash, Transform, Uproar, any two-turn move, any recharge move, or any Z-Move.", - }, iondeluge: { inherit: true, isNonstandard: null, @@ -597,8 +518,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, kingsshield: { inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Protects from damaging attacks. Contact: -2 Atk.", condition: { duration: 1, onStart(target) { @@ -630,10 +549,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, - knockoff: { - inherit: true, - desc: "If the target is holding an item that can be removed from it, ignoring the Sticky Hold Ability, this move's power is multiplied by 1.5. If the user has not fainted, the target loses its held item. This move cannot remove Z-Crystals, cause Pokemon with the Sticky Hold Ability to lose their held item, cause Pokemon that can Mega Evolve to lose the Mega Stone for their species, or cause a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, or a Silvally to lose their Blue Orb, Red Orb, Griseous Orb, Plate, Drive, or Memory respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - }, landswrath: { inherit: true, isNonstandard: null, @@ -672,7 +587,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, magmastorm: { inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", isNonstandard: null, }, magnetbomb: { @@ -687,10 +601,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - meanlook: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - }, meditate: { inherit: true, isNonstandard: null, @@ -705,7 +615,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, metronome: { inherit: true, - desc: "A random move is selected for use, other than After You, Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Celebrate, Chatter, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Diamond Storm, Dragon Ascent, Endure, Feint, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, King's Shield, Light of Ruin, Mat Block, Me First, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Nature Power, Origin Pulse, Photon Geyser, Plasma Fists, Precipice Blades, Protect, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Shell Trap, Sketch, Sleep Talk, Snarl, Snatch, Snore, Spectral Thief, Spiky Shield, Spotlight, Steam Eruption, Struggle, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Transform, Trick, V-create, or Wide Guard.", noMetronome: [ "After You", "Assist", "Baneful Bunker", "Beak Blast", "Belch", "Bestow", "Celebrate", "Chatter", "Copycat", "Counter", "Covet", "Crafty Shield", "Destiny Bond", "Detect", "Diamond Storm", "Dragon Ascent", "Endure", "Feint", "Fleur Cannon", "Focus Punch", "Follow Me", "Freeze Shock", "Helping Hand", "Hold Hands", "Hyperspace Fury", "Hyperspace Hole", "Ice Burn", "Instruct", "King's Shield", "Light of Ruin", "Mat Block", "Me First", "Metronome", "Mimic", "Mind Blown", "Mirror Coat", "Mirror Move", "Nature Power", "Origin Pulse", "Photon Geyser", "Plasma Fists", "Precipice Blades", "Protect", "Quash", "Quick Guard", "Rage Powder", "Relic Song", "Secret Sword", "Shell Trap", "Sketch", "Sleep Talk", "Snarl", "Snatch", "Snore", "Spectral Thief", "Spiky Shield", "Spotlight", "Steam Eruption", "Struggle", "Switcheroo", "Techno Blast", "Thief", "Thousand Arrows", "Thousand Waves", "Transform", "Trick", "V-create", "Wide Guard", ], @@ -730,14 +639,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - moonlight: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - }, - morningsun: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - }, mudbomb: { inherit: true, isNonstandard: null, @@ -798,13 +699,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - protect: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, psychicterrain: { inherit: true, - desc: "For 5 turns, the terrain becomes Psychic Terrain. During the effect, the power of Psychic-type attacks made by grounded Pokemon is multiplied by 1.5 and grounded Pokemon cannot be hit by moves with priority greater than 0, unless the target is an ally. Camouflage transforms the user into a Psychic type, Nature Power becomes Psychic, and Secret Power has a 30% chance to lower the target's Speed by 1 stage. Fails if the current terrain is Psychic Terrain.", condition: { duration: 5, durationCallback(source, effect) { @@ -880,10 +776,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-activate', target, 'move: Quash'); }, }, - quickguard: { - inherit: true, - desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - }, rage: { inherit: true, isNonstandard: null, @@ -891,8 +783,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { rapidspin: { inherit: true, basePower: 20, - desc: "If this move is successful and the user has not fainted, the effects of Leech Seed and binding moves end for the user, and all hazards are removed from the user's side of the field.", - shortDesc: "Frees user from hazards, binding, Leech Seed.", secondary: null, }, razorwind: { @@ -935,10 +825,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - sandtomb: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, sappyseed: { inherit: true, accuracy: 100, @@ -998,10 +884,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - skillswap: { - inherit: true, - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Battle Bond, Comatose, Disguise, Illusion, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode.", - }, skydrop: { inherit: true, isNonstandard: null, @@ -1010,10 +892,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - sleeptalk: { - inherit: true, - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Beak Blast, Belch, Bide, Celebrate, Chatter, Copycat, Focus Punch, Hold Hands, Me First, Metronome, Mimic, Mirror Move, Nature Power, Shell Trap, Sketch, Sleep Talk, Struggle, Uproar, any two-turn move, or any Z-Move.", - }, smellingsalts: { inherit: true, isNonstandard: null, @@ -1022,14 +900,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - solarbeam: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn.", - }, - solarblade: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn.", - }, sonicboom: { inherit: true, isNonstandard: null, @@ -1050,21 +920,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, spiderweb: { inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", isNonstandard: null, }, spikecannon: { inherit: true, isNonstandard: null, }, - spikyshield: { - inherit: true, - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - }, - spiritshackle: { - inherit: true, - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - }, splinteredstormshards: { inherit: true, isNonstandard: null, @@ -1097,18 +958,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - synthesis: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - }, tailglow: { inherit: true, isNonstandard: null, }, - taunt: { - inherit: true, - desc: "Prevents the target from using non-damaging moves for its next three turns. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune. Z-Powered moves can still be selected and executed during this effect.", - }, technoblast: { inherit: true, isNonstandard: null, @@ -1123,8 +976,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, teleport: { inherit: true, - desc: "Fails when used.", - shortDesc: "Fails when used.", priority: 0, selfSwitch: false, onTryHit: false, @@ -1137,10 +988,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - throatchop: { - inherit: true, - desc: "For 2 turns, the target cannot use sound-based moves. Z-Powered sound moves can still be selected and executed during this effect.", - }, toxicthread: { inherit: true, isNonstandard: null, @@ -1149,10 +996,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - thunder: { - inherit: true, - desc: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%.", - }, twineedle: { inherit: true, isNonstandard: null, @@ -1169,18 +1012,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - whirlpool: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, - wideguard: { - inherit: true, - desc: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - }, - wrap: { - inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - }, wringout: { inherit: true, isNonstandard: null, @@ -1188,8 +1019,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { zippyzap: { inherit: true, basePower: 50, - desc: "Will always result in a critical hit.", - shortDesc: "Nearly always goes first. Always crits.", pp: 15, willCrit: true, secondary: null, diff --git a/data/moves.ts b/data/moves.ts index a0536c4302..b3d7076457 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -32,8 +32,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 195, category: "Special", - desc: "Has a very high chance for a critical hit.", - shortDesc: "Very high critical hit ratio.", isNonstandard: "Past", name: "10,000,000 Volt Thunderbolt", pp: 1, @@ -51,8 +49,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 20, category: "Special", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Absorb", pp: 25, priority: 0, @@ -68,8 +64,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Accelerock", pp: 20, priority: 1, @@ -84,8 +78,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the foe(s) Sp. Def by 1.", name: "Acid", pp: 30, priority: 0, @@ -105,8 +97,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 2 stages.", - shortDesc: "Raises the user's Defense by 2.", name: "Acid Armor", pp: 20, priority: 0, @@ -125,7 +115,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Acid Downpour", pp: 1, @@ -142,8 +131,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 100% chance to lower the target's Special Defense by 2 stages.", - shortDesc: "100% chance to lower the target's Sp. Def by 2.", name: "Acid Spray", pp: 20, priority: 0, @@ -170,7 +157,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - shortDesc: "Power doubles if the user has no held item.", name: "Acrobatics", pp: 15, priority: 0, @@ -185,8 +171,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises a random stat by 2 stages as long as the stat is not already at stage 6. The user can choose to use this move on itself or an adjacent ally. Fails if no stat stage can be raised or if used on an ally with a substitute.", - shortDesc: "Raises a random stat of the user or an ally by 2.", name: "Acupressure", pp: 30, priority: 0, @@ -219,7 +203,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Physical", - shortDesc: "This move does not check accuracy.", name: "Aerial Ace", pp: 20, priority: 0, @@ -234,8 +217,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Special", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", isNonstandard: "Past", name: "Aeroblast", pp: 5, @@ -252,8 +233,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target makes its move immediately after the user this turn, no matter the priority of its selected move. Fails if the target would have moved next anyway, or if the target already moved this turn.", - shortDesc: "The target makes its move right after the user.", name: "After You", pp: 15, priority: 0, @@ -279,8 +258,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Speed by 2 stages.", - shortDesc: "Raises the user's Speed by 2.", name: "Agility", pp: 30, priority: 0, @@ -299,8 +276,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 60, category: "Special", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio. Hits adjacent foes.", name: "Air Cutter", pp: 25, priority: 0, @@ -316,8 +291,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 75, category: "Special", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Air Slash", pp: 15, priority: 0, @@ -335,7 +308,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "All-Out Pummeling", pp: 1, @@ -352,8 +324,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps positions with its ally. Fails if the user is the only Pokemon on its side.", - shortDesc: "The user swaps positions with its ally.", name: "Ally Switch", pp: 15, priority: 2, @@ -379,8 +349,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Defense by 2 stages.", - shortDesc: "Raises the user's Sp. Def by 2.", name: "Amnesia", pp: 20, priority: 0, @@ -399,8 +367,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Prevents the target from switching out.", name: "Anchor Shot", pp: 20, priority: 0, @@ -420,8 +386,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "Has a 10% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", - shortDesc: "10% chance to raise all stats by 1 (not acc/eva).", name: "Ancient Power", pp: 5, priority: 0, @@ -447,8 +411,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 100% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "100% chance to lower the target's Sp. Def by 1.", name: "Apple Acid", pp: 10, priority: 0, @@ -467,8 +429,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Aqua Jet", pp: 20, priority: 1, @@ -483,8 +443,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user has 1/16 of its maximum HP, rounded down, restored at the end of each turn while it remains active. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. If the user uses Baton Pass, the replacement will receive the healing effect.", - shortDesc: "User recovers 1/16 max HP per turn.", name: "Aqua Ring", pp: 20, priority: 0, @@ -510,7 +468,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 90, category: "Physical", - shortDesc: "No additional effect.", name: "Aqua Tail", pp: 10, priority: 0, @@ -525,8 +482,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 15, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Arm Thrust", pp: 20, priority: 0, @@ -542,8 +497,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Sap Sipper Ability are not cured, unless they are the user.", - shortDesc: "Cures the user's party of all status conditions.", name: "Aromatherapy", pp: 5, priority: 0, @@ -570,8 +523,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the target's Special Defense by 1 stage. Fails if there is no ally adjacent to the user.", - shortDesc: "Raises an ally's Sp. Def by 1.", name: "Aromatic Mist", pp: 20, priority: 0, @@ -590,8 +541,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Bounce, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Shell Trap, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, Whirlwind, or any Z-Move.", - shortDesc: "Uses a random move known by a team member.", isNonstandard: "Past", name: "Assist", pp: 20, @@ -639,8 +588,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the target has already taken damage this turn, other than direct damage from Belly Drum, confusion, Curse, or Pain Split.", - shortDesc: "Power doubles if target was damaged this turn.", name: "Assurance", pp: 10, priority: 0, @@ -655,8 +602,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 30, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Astonish", pp: 15, priority: 0, @@ -674,8 +619,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Attack Order", pp: 15, priority: 0, @@ -691,8 +634,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to become infatuated, making it unable to attack 50% of the time. Fails if both the user and the target are the same gender, if either is genderless, or if the target is already infatuated. The effect ends when either the user or the target is no longer active. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune.", - shortDesc: "A target of the opposite gender gets infatuated.", name: "Attract", pp: 15, priority: 0, @@ -747,7 +688,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 80, category: "Special", - shortDesc: "This move does not check accuracy.", name: "Aura Sphere", pp: 20, priority: 0, @@ -762,8 +702,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 110, category: "Physical", - desc: "Has a 100% chance to raise the user's Speed by 1 stage. If the user is a Morpeko in Full Belly Mode, this move is Electric type. If the user is a Morpeko in Hangry Mode, this move is Dark type. This move cannot be used successfully unless the user's current form, while considering Transform, is Full Belly or Hangry Mode Morpeko.", - shortDesc: "Morpeko: Electric; Hangry: Dark; 100% +1 Spe.", name: "Aura Wheel", pp: 10, priority: 0, @@ -799,8 +737,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Has a 10% chance to lower the target's Attack by 1 stage.", - shortDesc: "10% chance to lower the target's Attack by 1.", name: "Aurora Beam", pp: 20, priority: 0, @@ -820,8 +756,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user and its party members take 0.5x damage from physical and special attacks, or 0.66x damage if in a Double Battle; does not reduce damage further with Reflect or Light Screen. Critical hits ignore this protection. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Brick Break and Psychic Fangs remove the effect before damage is calculated. Lasts for 8 turns if the user is holding Light Clay. Fails unless the weather is Hail.", - shortDesc: "For 5 turns, damage to allies is halved. Hail only.", name: "Aurora Veil", pp: 20, priority: 0, @@ -871,8 +805,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Speed by 2 stages. If the user's Speed was changed, the user's weight is reduced by 100 kg as long as it remains active. This effect is stackable but cannot reduce the user's weight to less than 0.1 kg.", - shortDesc: "Raises the user's Speed by 2; user loses 100 kg.", name: "Autotomize", pp: 15, priority: 0, @@ -913,8 +845,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the user was hit by the target this turn.", - shortDesc: "Power doubles if user is damaged by the target.", name: "Avalanche", pp: 10, priority: -4, @@ -929,8 +859,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack by 1 stage.", - shortDesc: "Lowers the target's Attack by 1.", name: "Baby-Doll Eyes", pp: 30, priority: 1, @@ -949,8 +877,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 80, category: "Special", - desc: "This move summons Reflect for 5 turns upon use.", - shortDesc: "Summons Reflect.", isNonstandard: "LGPE", name: "Baddy Bad", pp: 15, @@ -969,8 +895,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Protects from moves. Contact: poison.", name: "Baneful Bunker", pp: 10, priority: 4, @@ -1028,8 +952,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 15, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", isNonstandard: "Past", name: "Barrage", pp: 20, @@ -1046,8 +968,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 2 stages.", - shortDesc: "Raises the user's Defense by 2.", isNonstandard: "Past", name: "Barrier", pp: 20, @@ -1067,8 +987,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is replaced with another Pokemon in its party. The selected Pokemon has the user's stat stage changes, confusion, and certain move effects transferred to it.", - shortDesc: "User switches, passing stat changes and more.", name: "Baton Pass", pp: 40, priority: 0, @@ -1085,8 +1003,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - desc: "If the user is hit by a contact move this turn before it can execute this move, the attacker is burned.", - shortDesc: "Burns on contact with the user before it moves.", isNonstandard: "Past", name: "Beak Blast", pp: 15, @@ -1123,8 +1039,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 5 + Math.floor(move.allies!.shift()!.species.baseStats.atk / 10); }, category: "Physical", - desc: "Hits one time for the user and one time for each unfainted Pokemon without a major status condition in the user's party. The power of each hit is equal to 5+(X/10), where X is each participating Pokemon's base Attack; each hit is considered to come from the user.", - shortDesc: "All healthy allies aid in damaging the target.", name: "Beat Up", pp: 10, priority: 0, @@ -1143,7 +1057,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - shortDesc: "Damage doubles if the target is Dynamaxed.", name: "Behemoth Bash", pp: 5, priority: 0, @@ -1157,7 +1070,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - shortDesc: "Damage doubles if the target is Dynamaxed.", name: "Behemoth Blade", pp: 5, priority: 0, @@ -1171,8 +1083,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 120, category: "Special", - desc: "This move cannot be selected until the user eats a Berry, either by eating one that was held, stealing and eating one off another Pokemon with Bug Bite or Pluck, or eating one that was thrown at it with Fling. Once the condition is met, this move can be selected and used for the rest of the battle even if the user gains or uses another item or switches out. Consuming a Berry with Natural Gift does not count for the purposes of eating one.", - shortDesc: "Cannot be selected until the user eats a Berry.", name: "Belch", pp: 10, priority: 0, @@ -1188,8 +1098,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack by 12 stages in exchange for the user losing 1/2 of its maximum HP, rounded down. Fails if the user would faint or if its Attack stat stage is 6.", - shortDesc: "User loses 50% max HP. Maximizes Attack.", name: "Belly Drum", pp: 10, priority: 0, @@ -1212,8 +1120,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target receives the user's held item. Fails if the user has no item or is holding a Mail or Z-Crystal, if the target is already holding an item, if the user is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Silvally holding a Memory, a Pokemon that can Mega Evolve holding the Mega Stone for its species, or if the target is one of those Pokemon and the user is holding the respective item.", - shortDesc: "User passes its held item to the target.", isNonstandard: "Past", name: "Bestow", pp: 15, @@ -1242,8 +1148,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Physical", - desc: "The user spends two turns locked into this move and then, on the second turn after using this move, the user attacks the last Pokemon that hit it, inflicting double the damage in HP it lost to attacks during the two turns. If the last Pokemon that hit it is no longer active, the user attacks a random opposing Pokemon instead. If the user is prevented from moving during this move's use, the effect ends. This move does not check accuracy and does not ignore type immunity.", - shortDesc: "Waits 2 turns; deals double the damage taken.", isNonstandard: "Past", name: "Bide", pp: 10, @@ -1317,8 +1221,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 15, category: "Physical", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Bind", pp: 20, priority: 0, @@ -1334,8 +1236,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Bite", pp: 25, priority: 0, @@ -1353,7 +1253,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Black Hole Eclipse", pp: 1, @@ -1370,8 +1269,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Blast Burn", pp: 5, priority: 0, @@ -1389,8 +1286,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 85, category: "Physical", - desc: "Has a 10% chance to burn the target and a higher chance for a critical hit.", - shortDesc: "High critical hit ratio. 10% chance to burn.", name: "Blaze Kick", pp: 10, priority: 0, @@ -1409,8 +1304,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 70, basePower: 110, category: "Special", - desc: "Has a 10% chance to freeze the target. If the weather is Hail, this move does not check accuracy.", - shortDesc: "10% chance to freeze foe(s). Can't miss in hail.", name: "Blizzard", pp: 5, priority: 0, @@ -1431,8 +1324,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Prevents the target from switching out.", name: "Block", pp: 5, priority: 0, @@ -1451,7 +1342,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Bloom Doom", pp: 1, @@ -1468,8 +1358,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 130, category: "Special", - desc: "Has a 20% chance to burn the target.", - shortDesc: "20% chance to burn the target.", name: "Blue Flare", pp: 5, priority: 0, @@ -1487,8 +1375,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Damage is calculated using the user's Defense stat as its Attack, including stat stage changes. Other effects that modify the Attack stat are used as normal.", - shortDesc: "Uses user's Def stat as Atk in damage calculation.", name: "Body Press", pp: 10, priority: 0, @@ -1503,8 +1389,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Physical", - desc: "Has a 30% chance to paralyze the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "30% chance to paralyze the target.", name: "Body Slam", pp: 15, priority: 0, @@ -1530,8 +1414,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the user moves before the target.", - shortDesc: "Power doubles if user moves before the target.", name: "Bolt Beak", pp: 10, priority: 0, @@ -1545,8 +1427,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 130, category: "Physical", - desc: "Has a 20% chance to paralyze the target.", - shortDesc: "20% chance to paralyze the target.", name: "Bolt Strike", pp: 5, priority: 0, @@ -1564,8 +1444,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 65, category: "Physical", - desc: "Has a 10% chance to flinch the target.", - shortDesc: "10% chance to flinch the target.", isNonstandard: "Past", name: "Bone Club", pp: 20, @@ -1584,8 +1462,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 50, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", name: "Bonemerang", pp: 10, priority: 0, @@ -1602,8 +1478,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 25, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Bone Rush", pp: 10, priority: 0, @@ -1621,8 +1495,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 140, category: "Special", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent Pokemon.", name: "Boomburst", pp: 10, priority: 0, @@ -1637,8 +1509,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 85, category: "Physical", - desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Bounces turn 1. Hits turn 2. 30% paralyze.", name: "Bounce", pp: 5, priority: 0, @@ -1681,8 +1551,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", isNonstandard: "LGPE", name: "Bouncy Bubble", pp: 20, @@ -1699,8 +1567,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "No additional effect.", name: "Branch Poke", pp: 40, priority: 0, @@ -1714,8 +1580,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 33% recoil.", name: "Brave Bird", pp: 15, priority: 0, @@ -1731,8 +1595,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 100% chance to lower the target's Attack by 1 stage.", - shortDesc: "100% chance to lower the foe(s) Attack by 1.", name: "Breaking Swipe", pp: 15, priority: 0, @@ -1751,7 +1613,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Breakneck Blitz", pp: 1, @@ -1768,8 +1629,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "If this attack does not miss, the effects of Reflect, Light Screen, and Aurora Veil end for the target's side of the field before damage is calculated.", - shortDesc: "Destroys screens, unless the target is immune.", name: "Brick Break", pp: 15, priority: 0, @@ -1792,8 +1651,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Power doubles if the target has less than or equal to half of its maximum HP remaining.", - shortDesc: "Power doubles if the target's HP is 50% or less.", name: "Brine", pp: 10, priority: 0, @@ -1813,8 +1670,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent Pokemon.", name: "Brutal Swing", pp: 20, priority: 0, @@ -1829,8 +1684,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 10% chance to lower the target's Speed by 1 stage.", - shortDesc: "10% chance to lower the foe(s) Speed by 1.", isNonstandard: "Past", name: "Bubble", pp: 30, @@ -1851,8 +1704,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Has a 10% chance to lower the target's Speed by 1 stage.", - shortDesc: "10% chance to lower the target's Speed by 1.", name: "Bubble Beam", pp: 20, priority: 0, @@ -1872,8 +1723,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "If this move is successful and the user has not fainted, it steals the target's held Berry if it is holding one and eats it immediately, gaining its effects even if the user's item is being ignored. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "User steals and eats the target's Berry.", name: "Bug Bite", pp: 20, priority: 0, @@ -1899,8 +1748,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the target's Sp. Def by 1.", name: "Bug Buzz", pp: 10, priority: 0, @@ -1920,8 +1767,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack and Defense by 1 stage.", - shortDesc: "Raises the user's Attack and Defense by 1.", name: "Bulk Up", pp: 20, priority: 0, @@ -1941,8 +1786,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance lower adjacent Pkmn Speed by 1.", name: "Bulldoze", pp: 20, priority: 0, @@ -1962,8 +1805,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Bullet Punch", pp: 30, priority: 1, @@ -1978,8 +1819,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 25, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Bullet Seed", pp: 30, priority: 0, @@ -1997,8 +1836,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "Has a 100% chance to burn the target if it had a stat stage raised this turn.", - shortDesc: "100% burns a target that had a stat rise this turn.", name: "Burning Jealousy", pp: 5, priority: 0, @@ -2020,8 +1857,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 130, category: "Special", - desc: "Fails unless the user is a Fire type. If this move is successful, the user's Fire type becomes typeless as long as it remains active.", - shortDesc: "User's Fire type becomes typeless; must be Fire.", name: "Burn Up", pp: 5, priority: 0, @@ -2048,8 +1883,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "Has a 100% chance to paralyze the foe.", - shortDesc: "100% chance to paralyze the foe.", isNonstandard: "LGPE", name: "Buzzy Buzz", pp: 20, @@ -2068,8 +1901,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Attack and Special Defense by 1 stage.", - shortDesc: "Raises the user's Sp. Atk and Sp. Def by 1.", name: "Calm Mind", pp: 20, priority: 0, @@ -2089,8 +1920,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain, Electric type during Electric Terrain, Fairy type during Misty Terrain, Grass type during Grassy Terrain, and Psychic type during Psychic Terrain. Fails if the user's type cannot be changed or if the user is already purely that type.", - shortDesc: "Changes user's type by terrain (default Normal).", isNonstandard: "Past", name: "Camouflage", pp: 20, @@ -2122,8 +1951,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Special Attack by 2 stages. The target is unaffected if both the user and the target are the same gender, or if either is genderless. Pokemon with the Oblivious Ability are immune.", - shortDesc: "Lowers the foe(s) Sp. Atk by 2 if opposite gender.", isNonstandard: "Past", name: "Captivate", pp: 20, @@ -2146,7 +1973,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 210, category: "Physical", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Catastropika", pp: 1, @@ -2163,7 +1989,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "No competitive use.", name: "Celebrate", pp: 40, priority: 0, @@ -2182,8 +2007,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Defense by 1 stage. If the user uses an Electric-type attack on the next turn, its power will be doubled.", - shortDesc: "+1 SpD, user's Electric move next turn 2x power.", name: "Charge", pp: 20, priority: 0, @@ -2219,8 +2042,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 50, category: "Special", - desc: "Has a 70% chance to raise the user's Special Attack by 1 stage.", - shortDesc: "70% chance to raise the user's Sp. Atk by 1.", name: "Charge Beam", pp: 10, priority: 0, @@ -2242,8 +2063,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack by 2 stages.", - shortDesc: "Lowers the target's Attack by 2.", name: "Charm", pp: 20, priority: 0, @@ -2262,8 +2081,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Has a 100% chance to confuse the target.", - shortDesc: "100% chance to confuse the target.", isNonstandard: "Past", name: "Chatter", pp: 20, @@ -2283,8 +2100,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Ignores the target's stat stage changes, including evasiveness.", - shortDesc: "Ignores the target's stat stage changes.", isNonstandard: "Past", name: "Chip Away", pp: 20, @@ -2302,8 +2117,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 60, category: "Physical", - desc: "If both the user and the target have not fainted, the target is forced to switch out and be replaced with a random unfainted ally. This effect fails if the target is under the effect of Ingrain, has the Suction Cups Ability, or this move hit a substitute.", - shortDesc: "Forces the target to switch to a random ally.", name: "Circle Throw", pp: 10, priority: -6, @@ -2318,8 +2131,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 35, category: "Physical", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", isNonstandard: "Past", name: "Clamp", pp: 15, @@ -2336,8 +2147,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 110, category: "Special", - desc: "Lowers the user's Defense by 1 stage.", - shortDesc: "Lowers the user's Defense by 1.", name: "Clanging Scales", pp: 5, priority: 0, @@ -2357,8 +2166,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage in exchange for the user losing 33% of its maximum HP, rounded down. Fails if the user would faint or if its Attack, Defense, Special Attack, Special Defense, and Speed stat stages would not change.", - shortDesc: "User loses 33% of its max HP. +1 to all stats.", name: "Clangorous Soul", pp: 5, priority: 0, @@ -2389,8 +2196,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 185, category: "Special", - desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", - shortDesc: "Raises the user's Atk/Def/SpAtk/SpDef/Spe by 1.", isNonstandard: "Past", name: "Clangorous Soulblaze", pp: 1, @@ -2418,7 +2223,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 50, category: "Special", - shortDesc: "Resets all of the target's stat stages to 0.", name: "Clear Smog", pp: 15, priority: 0, @@ -2437,8 +2241,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "Lowers the user's Defense and Special Defense by 1 stage.", - shortDesc: "Lowers the user's Defense and Sp. Def by 1.", name: "Close Combat", pp: 5, priority: 0, @@ -2459,8 +2261,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the target's Attack and Defense by 1 stage. Fails if there is no ally adjacent to the user.", - shortDesc: "Raises an ally's Attack and Defense by 1.", name: "Coaching", pp: 10, priority: 0, @@ -2478,8 +2278,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack, Defense, and accuracy by 1 stage.", - shortDesc: "Raises user's Attack, Defense, accuracy by 1.", name: "Coil", pp: 20, priority: 0, @@ -2500,8 +2298,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 18, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", isNonstandard: "Past", name: "Comet Punch", pp: 15, @@ -2519,8 +2315,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Lowers the target's Special Attack by 1 stage.", - shortDesc: "Lowers the target's Sp. Atk by 1.", name: "Confide", pp: 20, priority: 0, @@ -2539,8 +2333,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to become confused.", - shortDesc: "Confuses the target.", name: "Confuse Ray", pp: 10, priority: 0, @@ -2557,8 +2349,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Special", - desc: "Has a 10% chance to confuse the target.", - shortDesc: "10% chance to confuse the target.", name: "Confusion", pp: 25, priority: 0, @@ -2576,8 +2366,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 10, category: "Physical", - desc: "Has a 10% chance to lower the target's Speed by 1 stage.", - shortDesc: "10% chance to lower the target's Speed by 1.", isNonstandard: "Past", name: "Constrict", pp: 35, @@ -2598,7 +2386,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Continental Crush", pp: 1, @@ -2615,8 +2402,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user's type changes to match the original type of the move in its first move slot. Fails if the user cannot change its type, or if the type is one of the user's current types.", - shortDesc: "Changes user's type to match its first move.", name: "Conversion", pp: 30, priority: 0, @@ -2637,8 +2422,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user's type changes to match a type that resists or is immune to the type of the last move used by the target, but not either of its current types. The determined type of the move is used rather than the original type. Fails if the target has not made a move, if the user cannot change its type, or if this move would only be able to select one of the user's current types.", - shortDesc: "Changes user's type to resist target's last move.", name: "Conversion 2", pp: 30, priority: 0, @@ -2675,8 +2458,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user uses the last move used by any Pokemon, including itself. The base move of Max and G-Max Moves is considered for this purpose. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Dragon Tail, Dynamax Cannon, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Obstruct, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", - shortDesc: "Uses the last move used in the battle.", name: "Copycat", pp: 20, priority: 0, @@ -2705,8 +2486,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "If the user moves after the target, the target's Ability is rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode, this effect does not happen, and receiving the effect through Baton Pass ends the effect immediately.", - shortDesc: "Nullifies the foe(s) Ability if the foe(s) move first.", isNonstandard: "Past", name: "Core Enforcer", pp: 10, @@ -2739,7 +2518,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Corkscrew Crash", pp: 1, @@ -2756,8 +2534,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "The target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item or cause a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, a Silvally, a Zacian, or a Zamazenta to lose their Blue Orb, Red Orb, Griseous Orb, Plate, Drive, Memory, Rusted Sword, or Rusted Shield respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "Removes adjacent Pokemon's held items.", name: "Corrosive Gas", pp: 40, priority: 0, @@ -2777,8 +2553,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense and Special Defense by 1 stage.", - shortDesc: "Raises the user's Defense and Sp. Def by 1.", name: "Cosmic Power", pp: 20, priority: 0, @@ -2798,8 +2572,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 3 stages.", - shortDesc: "Raises the user's Defense by 3.", name: "Cotton Guard", pp: 10, priority: 0, @@ -2818,8 +2590,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Speed by 2 stages.", - shortDesc: "Lowers the target's Speed by 2.", name: "Cotton Spore", pp: 40, priority: 0, @@ -2842,8 +2612,6 @@ export const Moves: {[moveid: string]: MoveData} = { return pokemon.volatiles['counter'].damage || 1; }, category: "Physical", - desc: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals 1 HP of damage instead. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn.", - shortDesc: "If hit by physical attack, returns double damage.", name: "Counter", pp: 20, priority: -5, @@ -2885,8 +2653,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Switches the Mist, Light Screen, Reflect, Spikes, Safeguard, Tailwind, Toxic Spikes, Stealth Rock, Water Pledge, Fire Pledge, Grass Pledge, Sticky Web, Aurora Veil, G-Max Steelsurge, G-Max Cannonade, G-Max Vine Lash, and G-Max Wildfire effects from the user's side to the opposing side and vice versa.", - shortDesc: "Swaps user's field effects with the opposing side.", name: "Court Change", pp: 10, priority: 0, @@ -2939,8 +2705,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Z-Crystal, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Silvally holding a Memory, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "If the user has no item, it steals the target's.", name: "Covet", pp: 25, priority: 0, @@ -2972,8 +2736,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 100, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Crabhammer", pp: 10, priority: 0, @@ -2989,8 +2751,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and its party members are protected from non-damaging attacks made by other Pokemon, including allies, during this turn. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - shortDesc: "Protects allies from Status moves this turn.", name: "Crafty Shield", pp: 10, priority: 3, @@ -3022,8 +2782,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 100, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Cross Chop", pp: 5, priority: 0, @@ -3039,8 +2797,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a 10% chance to poison the target and a higher chance for a critical hit.", - shortDesc: "High critical hit ratio. 10% chance to poison.", name: "Cross Poison", pp: 20, priority: 0, @@ -3059,8 +2815,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 20% chance to lower the target's Defense by 1 stage.", - shortDesc: "20% chance to lower the target's Defense by 1.", name: "Crunch", pp: 15, priority: 0, @@ -3080,8 +2834,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 75, category: "Physical", - desc: "Has a 50% chance to lower the target's Defense by 1 stage.", - shortDesc: "50% chance to lower the target's Defense by 1.", name: "Crush Claw", pp: 10, priority: 0, @@ -3104,8 +2856,6 @@ export const Moves: {[moveid: string]: MoveData} = { return Math.floor(Math.floor((120 * (100 * Math.floor(target.hp * 4096 / target.maxhp)) + 2048 - 1) / 4096) / 100) || 1; }, category: "Physical", - desc: "Power is equal to 120 * (target's current HP / target's maximum HP), rounded half down, but not less than 1.", - shortDesc: "More power the more HP the target has left.", isNonstandard: "Past", name: "Crush Grip", pp: 5, @@ -3123,8 +2873,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "If the user is not a Ghost type, lowers the user's Speed by 1 stage and raises the user's Attack and Defense by 1 stage. If the user is a Ghost type, the user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if there is no target or if the target is already affected.", - shortDesc: "Curses if Ghost, else -1 Spe, +1 Atk, +1 Def.", name: "Curse", pp: 10, priority: 0, @@ -3168,7 +2916,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 50, category: "Physical", - shortDesc: "No additional effect.", name: "Cut", pp: 30, priority: 0, @@ -3183,8 +2930,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Physical", - desc: "Ignores the target's stat stage changes, including evasiveness.", - shortDesc: "Ignores the target's stat stage changes.", name: "Darkest Lariat", pp: 10, priority: 0, @@ -3201,8 +2946,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 20% chance to flinch the target.", - shortDesc: "20% chance to flinch the target.", name: "Dark Pulse", pp: 15, priority: 0, @@ -3220,8 +2963,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 50, basePower: 0, category: "Status", - desc: "Causes the target to fall asleep. This move cannot be used successfully unless the user's current form, while considering Transform, is Darkrai.", - shortDesc: "Darkrai: Causes the foe(s) to fall asleep.", isNonstandard: "Past", name: "Dark Void", pp: 10, @@ -3247,8 +2988,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent foes.", name: "Dazzling Gleam", pp: 10, priority: 0, @@ -3263,8 +3002,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the target's Attack and Special Attack by 2 stages.", - shortDesc: "Raises the target's Attack and Sp. Atk by 2.", name: "Decorate", pp: 15, priority: 0, @@ -3282,8 +3019,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense and Special Defense by 1 stage.", - shortDesc: "Raises the user's Defense and Sp. Def by 1.", name: "Defend Order", pp: 10, priority: 0, @@ -3303,8 +3038,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 1 stage. As long as the user remains active, the power of the user's Ice Ball and Rollout will be doubled (this effect is not stackable).", - shortDesc: "Raises the user's Defense by 1.", name: "Defense Curl", pp: 40, priority: 0, @@ -3327,8 +3060,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness. If there is a terrain active and this move is successful, the terrain will be cleared.", - shortDesc: "-1 evasion; clears terrain and hazards on both sides.", name: "Defog", pp: 15, priority: 0, @@ -3369,8 +3100,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the user's next move, if an opposing Pokemon's attack knocks the user out, that Pokemon faints as well, unless the attack was Doom Desire or Future Sight. Fails if the user used this move successfully as its last move, disregarding moves used through the Dancer Ability.", - shortDesc: "If an opponent knocks out the user, it also faints.", name: "Destiny Bond", pp: 5, priority: 0, @@ -3415,8 +3144,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Prevents moves from affecting the user this turn.", name: "Detect", pp: 5, priority: 4, @@ -3440,7 +3167,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Devastating Drake", pp: 1, @@ -3457,8 +3183,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Physical", - desc: "Has a 50% chance to raise the user's Defense by 2 stages.", - shortDesc: "50% chance to raise user's Def by 2 for each hit.", isNonstandard: "Past", name: "Diamond Storm", pp: 5, @@ -3481,8 +3205,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude but takes double damage from them, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Digs underground turn 1, strikes turn 2.", name: "Dig", pp: 10, priority: 0, @@ -3525,8 +3247,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "For 4 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move was a Max or G-Max Move.", - shortDesc: "For 4 turns, disables the target's last move used.", name: "Disable", pp: 20, priority: 0, @@ -3601,8 +3321,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 40, category: "Special", - desc: "This move does not check accuracy.", - shortDesc: "This move does not check accuracy. Hits foes.", name: "Disarming Voice", pp: 15, priority: 0, @@ -3617,8 +3335,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze adjacent Pokemon.", name: "Discharge", pp: 15, priority: 0, @@ -3636,8 +3352,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool but takes double damage from them, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Dives underwater turn 1, strikes turn 2.", name: "Dive", pp: 10, priority: 0, @@ -3684,8 +3398,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a 20% chance to confuse the target.", - shortDesc: "20% chance to confuse the target.", isNonstandard: "Past", name: "Dizzy Punch", pp: 10, @@ -3704,8 +3416,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 140, category: "Special", - desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move or Future Sight is already in effect for the target's position.", - shortDesc: "Hits two turns after being used.", name: "Doom Desire", pp: 5, priority: 0, @@ -3742,8 +3452,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 33% recoil.", name: "Double-Edge", pp: 15, priority: 0, @@ -3759,8 +3467,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 35, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", name: "Double Hit", pp: 10, priority: 0, @@ -3778,8 +3484,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. Has a 30% chance to flinch the target.", - shortDesc: "Hits twice. 30% chance to flinch.", name: "Double Iron Bash", pp: 5, priority: 0, @@ -3800,8 +3504,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 30, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", name: "Double Kick", pp: 30, priority: 0, @@ -3818,8 +3520,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 15, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", isNonstandard: "Past", name: "Double Slap", pp: 10, @@ -3836,8 +3536,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's evasiveness by 1 stage.", - shortDesc: "Raises the user's evasiveness by 1.", name: "Double Team", pp: 15, priority: 0, @@ -3856,8 +3554,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 130, category: "Special", - desc: "Lowers the user's Special Attack by 2 stages.", - shortDesc: "Lowers the user's Sp. Atk by 2.", name: "Draco Meteor", pp: 5, priority: 0, @@ -3877,8 +3573,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "Lowers the user's Defense and Special Defense by 1 stage.", - shortDesc: "Lowers the user's Defense and Sp. Def by 1.", isNonstandard: "Past", name: "Dragon Ascent", pp: 5, @@ -3899,8 +3593,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze the target.", name: "Dragon Breath", pp: 20, priority: 0, @@ -3918,7 +3610,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "Dragon Claw", pp: 15, priority: 0, @@ -3933,8 +3624,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack and Speed by 1 stage.", - shortDesc: "Raises the user's Attack and Speed by 1.", name: "Dragon Dance", pp: 20, priority: 0, @@ -3954,8 +3643,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. In Double Battles, this move attempts to hit the targeted Pokemon and its ally once each. If hitting one of these Pokemon would be prevented by immunity, protection, semi-invulnerability, an Ability, or accuracy, it attempts to hit the other Pokemon twice instead. If this move is redirected, it hits that target twice.", - shortDesc: "Hits twice. Doubles: Tries to hit each foe once.", name: "Dragon Darts", pp: 10, priority: 0, @@ -3972,7 +3659,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - shortDesc: "No additional effect.", name: "Dragon Hammer", pp: 15, priority: 0, @@ -3987,7 +3673,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Special", - shortDesc: "No additional effect.", name: "Dragon Pulse", pp: 10, priority: 0, @@ -4003,7 +3688,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 0, damage: 40, category: "Special", - shortDesc: "Deals 40 HP of damage to the target.", isNonstandard: "Past", name: "Dragon Rage", pp: 10, @@ -4019,8 +3703,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 100, category: "Physical", - desc: "Has a 20% chance to flinch the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "20% chance to flinch the target.", name: "Dragon Rush", pp: 10, priority: 0, @@ -4038,8 +3720,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 60, category: "Physical", - desc: "If both the user and the target have not fainted, the target is forced to switch out and be replaced with a random unfainted ally. This effect fails if the target used Ingrain previously, has the Suction Cups Ability, or this move hit a substitute.", - shortDesc: "Forces the target to switch to a random ally.", name: "Dragon Tail", pp: 10, priority: -6, @@ -4054,8 +3734,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Special", - desc: "The user recovers 3/4 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 75% of the damage dealt.", name: "Draining Kiss", pp: 10, priority: 0, @@ -4071,8 +3749,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Drain Punch", pp: 10, priority: 0, @@ -4088,8 +3764,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "The target is unaffected by this move unless it is asleep. The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User gains 1/2 HP inflicted. Sleeping target only.", name: "Dream Eater", pp: 15, priority: 0, @@ -4108,7 +3782,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "Drill Peck", pp: 20, priority: 0, @@ -4123,8 +3796,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 80, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Drill Run", pp: 10, priority: 0, @@ -4140,8 +3811,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the target's Speed by 1.", name: "Drum Beating", pp: 10, priority: 0, @@ -4160,8 +3829,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 40, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", name: "Dual Chop", pp: 15, priority: 0, @@ -4178,8 +3845,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 40, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", name: "Dual Wingbeat", pp: 10, priority: 0, @@ -4195,7 +3860,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - shortDesc: "Damage doubles if the target is Dynamaxed.", name: "Dynamax Cannon", pp: 5, priority: 0, @@ -4209,8 +3873,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 50, basePower: 100, category: "Physical", - desc: "Has a 100% chance to confuse the target.", - shortDesc: "100% chance to confuse the target.", name: "Dynamic Punch", pp: 5, priority: 0, @@ -4228,8 +3890,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the target's Sp. Def by 1.", name: "Earth Power", pp: 10, priority: 0, @@ -4249,8 +3909,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - desc: "Damage doubles if the target is using Dig.", - shortDesc: "Hits adjacent Pokemon. Double damage on Dig.", name: "Earthquake", pp: 10, priority: 0, @@ -4271,8 +3929,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 40; }, category: "Special", - desc: "For every consecutive turn that this move is used by at least one Pokemon, this move's power is multiplied by the number of turns to pass, but not more than 5.", - shortDesc: "Power increases when used on consecutive turns.", name: "Echoed Voice", pp: 15, priority: 0, @@ -4304,8 +3960,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Special Attack by 2 stages.", - shortDesc: "Lowers the target's Sp. Atk by 2.", name: "Eerie Impulse", pp: 15, priority: 0, @@ -4324,7 +3978,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 100, category: "Physical", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Egg Bomb", pp: 10, @@ -4340,8 +3993,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the terrain becomes Electric Terrain. During the effect, the power of Electric-type attacks made by grounded Pokemon is multiplied by 1.3 and grounded Pokemon cannot fall asleep; Pokemon already asleep do not wake up. Camouflage transforms the user into an Electric type, Nature Power becomes Thunderbolt, and Secret Power has a 30% chance to cause paralysis. Fails if the current terrain is Electric Terrain.", - shortDesc: "5 turns. Grounded: +Electric power, can't sleep.", name: "Electric Terrain", pp: 10, priority: 0, @@ -4401,8 +4052,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Causes the target's move to become Electric type this turn. Among effects that can change a move's type, this effect happens last. Fails if the target already moved this turn.", - shortDesc: "Changes the target's move to Electric this turn.", name: "Electrify", pp: 20, priority: 0, @@ -4442,8 +4091,6 @@ export const Moves: {[moveid: string]: MoveData} = { return bp; }, category: "Special", - desc: "The power of this move depends on (user's current Speed / target's current Speed), rounded down. Power is equal to 150 if the result is 4 or more, 120 if 3, 80 if 2, 60 if 1, 40 if less than 1. If the target's current Speed is 0, this move's power is 40.", - shortDesc: "More power the faster the user is than the target.", name: "Electro Ball", pp: 10, priority: 0, @@ -4460,8 +4107,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 55, category: "Special", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the foe(s) Speed by 1.", name: "Electroweb", pp: 15, priority: 0, @@ -4481,8 +4126,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "For 5 turns, the target's held item has no effect. An item's effect of causing forme changes is unaffected, but any other effects from such items are negated. During the effect, Fling and Natural Gift are prevented from being used by the target. Items thrown at the target with Fling will still activate for it. If the target uses Baton Pass, the replacement will remain unable to use items.", - shortDesc: "For 5 turns, the target's item has no effect.", isNonstandard: "Past", name: "Embargo", pp: 15, @@ -4511,8 +4154,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the target.", name: "Ember", pp: 25, priority: 0, @@ -4530,8 +4171,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "For its next 3 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, if the move is Assist, Copycat, Encore, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, or Transform, or if the target is Dynamaxed.", - shortDesc: "Target repeats its last move for its next 3 turns.", name: "Encore", pp: 5, priority: 0, @@ -4598,8 +4237,6 @@ export const Moves: {[moveid: string]: MoveData} = { return target.getUndynamaxedHP() - pokemon.hp; }, category: "Physical", - desc: "Deals damage to the target equal to (target's current HP - user's current HP). The target is unaffected if its current HP is less than or equal to the user's current HP.", - shortDesc: "Lowers the target's HP to the user's HP.", name: "Endeavor", pp: 5, priority: 0, @@ -4619,8 +4256,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "User survives attacks this turn with at least 1 HP.", name: "Endure", pp: 10, priority: 4, @@ -4657,8 +4292,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the target's Sp. Def by 1.", name: "Energy Ball", pp: 10, priority: 0, @@ -4678,8 +4311,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Truant, or the same Ability as the user, or if the user's Ability is Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, or Zen Mode.", - shortDesc: "The target's Ability changes to match the user's.", name: "Entrainment", pp: 15, priority: 0, @@ -4722,8 +4353,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower * pokemon.hp / pokemon.maxhp; }, category: "Special", - desc: "Power is equal to (user's current HP * 150 / user's maximum HP), rounded down, but not less than 1.", - shortDesc: "Less power as user's HP decreases. Hits foe(s).", name: "Eruption", pp: 5, priority: 0, @@ -4738,8 +4367,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 160, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Eternabeam", pp: 10, priority: 0, @@ -4756,8 +4383,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "If the current terrain is Psychic Terrain and the user is grounded, this move hits all opposing Pokemon and has its power multiplied by 1.5.", - shortDesc: "User on Psychic Terrain: 1.5x power, hits foes.", name: "Expanding Force", pp: 10, priority: 0, @@ -4782,8 +4407,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 250, category: "Physical", - desc: "The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Damp Ability.", - shortDesc: "Hits adjacent Pokemon. The user faints.", name: "Explosion", pp: 5, priority: 0, @@ -4799,8 +4422,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 10% chance to flinch the target.", - shortDesc: "10% chance to flinch the target.", name: "Extrasensory", pp: 20, priority: 0, @@ -4818,8 +4439,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 2 stages.", - shortDesc: "Raises user's Atk, Def, SpA, SpD, and Spe by 2.", isNonstandard: "Past", name: "Extreme Evoboost", pp: 1, @@ -4843,8 +4462,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "No additional effect.", - shortDesc: "Nearly always goes first.", name: "Extreme Speed", pp: 5, priority: 2, @@ -4859,8 +4476,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Power doubles if the user is burned, paralyzed, or poisoned. The physical damage halving effect from the user's burn is ignored.", - shortDesc: "Power doubles if user is burn/poison/paralyzed.", name: "Facade", pp: 20, priority: 0, @@ -4880,8 +4495,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Prevents all active Pokemon from switching next turn. A Pokemon can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. Fails if the effect is already active.", - shortDesc: "Prevents all Pokemon from switching next turn.", name: "Fairy Lock", pp: 10, priority: 0, @@ -4907,7 +4520,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - shortDesc: "No additional effect.", name: "Fairy Wind", pp: 30, priority: 0, @@ -4922,8 +4534,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "Has a 100% chance to flinch the target. Fails unless it is the user's first turn on the field.", - shortDesc: "Hits first. First turn out only. 100% flinch chance.", name: "Fake Out", pp: 10, priority: 3, @@ -4949,8 +4559,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Special Defense by 2 stages.", - shortDesc: "Lowers the target's Sp. Def by 2.", name: "Fake Tears", pp: 20, priority: 0, @@ -4969,7 +4577,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 80, category: "Physical", - shortDesc: "This move does not check accuracy.", name: "False Surrender", pp: 10, priority: 0, @@ -4983,8 +4590,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "Leaves the target with at least 1 HP.", - shortDesc: "Always leaves the target with at least 1 HP.", name: "False Swipe", pp: 40, priority: 0, @@ -5000,8 +4605,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack by 2 stages.", - shortDesc: "Lowers the target's Attack by 2.", name: "Feather Dance", pp: 15, priority: 0, @@ -5020,8 +4623,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 30, category: "Physical", - desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", - shortDesc: "Nullifies Detect, Protect, and Quick/Wide Guard.", name: "Feint", pp: 10, priority: 2, @@ -5038,7 +4639,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Physical", - shortDesc: "This move does not check accuracy.", isNonstandard: "Past", name: "Feint Attack", pp: 20, @@ -5054,8 +4654,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "Raises the user's Attack by 3 stages if this move knocks out the target.", - shortDesc: "Raises user's Attack by 3 if this KOes the target.", name: "Fell Stinger", pp: 25, priority: 0, @@ -5073,8 +4671,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 50% chance to raise the user's Special Attack by 1 stage.", - shortDesc: "50% chance to raise the user's Sp. Atk by 1.", name: "Fiery Dance", pp: 10, priority: 0, @@ -5101,8 +4697,6 @@ export const Moves: {[moveid: string]: MoveData} = { return damage; }, category: "Special", - desc: "Deals damage to the target equal to the user's current HP. If this move is successful, the user faints.", - shortDesc: "Does damage equal to the user's HP. User faints.", name: "Final Gambit", pp: 5, priority: 0, @@ -5119,8 +4713,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 110, category: "Special", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the target.", name: "Fire Blast", pp: 5, priority: 0, @@ -5138,8 +4730,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 65, category: "Physical", - desc: "Has a 10% chance to burn the target and a 10% chance to flinch it.", - shortDesc: "10% chance to burn. 10% chance to flinch.", name: "Fire Fang", pp: 15, priority: 0, @@ -5162,8 +4752,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 100% chance to lower the target's Defense by 1 stage.", - shortDesc: "100% chance to lower the target's Defense by 1.", name: "Fire Lash", pp: 15, priority: 0, @@ -5190,8 +4778,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 80; }, category: "Special", - desc: "If one of the user's allies chose to use Grass Pledge or Water Pledge this turn and has not moved yet, it takes its turn immediately after the user and the user's move does nothing. If combined with Grass Pledge, the ally uses Fire Pledge with 150 power and a sea of fire appears on the target's side for 4 turns, which causes damage to non-Fire types equal to 1/8 of their maximum HP, rounded down, at the end of each turn during effect, including the last turn. If combined with Water Pledge, the ally uses Water Pledge with 150 power and a rainbow appears on the user's side for 4 turns, which doubles secondary effect chances but does not stack with the Serene Grace Ability. When used as a combined move, this move gains STAB no matter what the user's type is. This move does not consume the user's Fire Gem.", - shortDesc: "Use with Grass or Water Pledge for added effect.", name: "Fire Pledge", pp: 10, priority: 0, @@ -5260,8 +4846,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the target.", name: "Fire Punch", pp: 15, priority: 0, @@ -5279,8 +4863,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 35, category: "Special", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Fire Spin", pp: 15, priority: 0, @@ -5296,8 +4878,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "Fails unless it is the user's first turn on the field.", - shortDesc: "Hits first. First turn out only.", name: "First Impression", pp: 10, priority: 2, @@ -5328,8 +4908,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the user moves before the target.", - shortDesc: "Power doubles if user moves before the target.", name: "Fishious Rend", pp: 10, priority: 0, @@ -5343,8 +4921,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 30, basePower: 0, category: "Physical", - desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", - shortDesc: "OHKOs the target. Fails if user is a lower level.", name: "Fissure", pp: 5, priority: 0, @@ -5381,8 +4957,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 20; }, category: "Physical", - desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", - shortDesc: "More power the less HP the user has left.", name: "Flail", pp: 15, priority: 0, @@ -5399,8 +4973,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "If this move is successful, the target's ally loses 1/16 of its maximum HP, rounded down, unless it has the Magic Guard Ability.", - shortDesc: "Damages Pokemon next to the target as well.", isNonstandard: "Past", name: "Flame Burst", pp: 15, @@ -5436,8 +5008,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "Has a 100% chance to raise the user's Speed by 1 stage.", - shortDesc: "100% chance to raise the user's Speed by 1.", name: "Flame Charge", pp: 20, priority: 0, @@ -5459,8 +5029,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the target. Thaws user.", name: "Flame Wheel", pp: 25, priority: 0, @@ -5478,8 +5046,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the target.", name: "Flamethrower", pp: 15, priority: 0, @@ -5497,8 +5063,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "Has a 10% chance to burn the target. If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 33% recoil. 10% chance to burn. Thaws user.", name: "Flare Blitz", pp: 15, priority: 0, @@ -5517,8 +5081,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's accuracy by 1 stage.", - shortDesc: "Lowers the target's accuracy by 1.", isNonstandard: "Past", name: "Flash", pp: 20, @@ -5538,8 +5100,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the target's Sp. Def by 1.", name: "Flash Cannon", pp: 10, priority: 0, @@ -5559,8 +5119,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Raises the target's Special Attack by 1 stage and confuses it.", - shortDesc: "Raises the target's Sp. Atk by 1 and confuses it.", name: "Flatter", pp: 15, priority: 0, @@ -5580,8 +5138,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 130, category: "Special", - desc: "Lowers the user's Special Attack by 2 stages.", - shortDesc: "Lowers the user's Sp. Atk by 2.", name: "Fleur Cannon", pp: 5, priority: 0, @@ -5601,8 +5157,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Physical", - desc: "The power of this move is based on the user's held item. The held item is lost and it activates for the target if applicable. If there is no target or the target avoids this move by protecting itself, the user's held item is still lost. The user can regain a thrown item with Recycle or the Harvest Ability. Fails if the user has no held item, if the held item cannot be thrown, if the user is under the effect of Embargo or Magic Room, or if the user has the Klutz Ability.", - shortDesc: "Flings the user's item at the target. Power varies.", name: "Fling", pp: 10, priority: 0, @@ -5647,8 +5201,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", - shortDesc: "User switches out after damaging the target.", name: "Flip Turn", pp: 20, priority: 0, @@ -5663,8 +5215,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 90, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", isNonstandard: "LGPE", name: "Floaty Fall", pp: 15, @@ -5683,8 +5233,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target restores 1/2 of its maximum HP, rounded half up. If the terrain is Grassy Terrain, the target instead restores 2/3 of its maximum HP, rounded half down.", - shortDesc: "Heals the target by 50% of its max HP.", name: "Floral Healing", pp: 10, priority: 0, @@ -5712,8 +5260,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the Defense of all active Grass-type Pokemon by 1 stage. Fails if there are no active Grass-type Pokemon.", - shortDesc: "Raises Defense by 1 of all active Grass types.", name: "Flower Shield", pp: 10, priority: 0, @@ -5743,8 +5289,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 90, category: "Physical", - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Flies up on first turn, then strikes the next turn.", name: "Fly", pp: 15, priority: 0, @@ -5784,8 +5328,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Physical", - desc: "This move combines Flying in its type effectiveness against the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "Combines Flying in its type effectiveness.", name: "Flying Press", pp: 10, flags: {contact: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nonsky: 1}, @@ -5804,8 +5346,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 70, basePower: 120, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the target's Sp. Def by 1.", name: "Focus Blast", pp: 5, priority: 0, @@ -5825,8 +5365,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's chance for a critical hit by 2 stages. Fails if the user already has the effect. Baton Pass can be used to transfer this effect to an ally.", - shortDesc: "Raises the user's critical hit ratio by 2.", name: "Focus Energy", pp: 30, priority: 0, @@ -5857,8 +5395,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 150, category: "Physical", - desc: "The user loses its focus and does nothing if it is hit by a damaging attack this turn before it can execute the move.", - shortDesc: "Fails if the user takes damage before it hits.", name: "Focus Punch", pp: 20, priority: -3, @@ -5893,8 +5429,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double Battle or Battle Royal. This effect is ignored while the user is under the effect of Sky Drop.", - shortDesc: "The foes' moves target the user on the turn used.", name: "Follow Me", pp: 20, priority: 2, @@ -5932,8 +5466,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze the target.", name: "Force Palm", pp: 10, priority: 0, @@ -5951,8 +5483,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. Fails if the target is already affected, or affected by Miracle Eye or Odor Sleuth.", - shortDesc: "Fighting, Normal hit Ghost. Evasiveness ignored.", isNonstandard: "Past", name: "Foresight", pp: 40, @@ -5987,8 +5517,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the Grass type to be added to the target, effectively making it have two or three types. Fails if the target is already a Grass type. If Trick-or-Treat adds a type to the target, it replaces the type added by this move and vice versa.", - shortDesc: "Adds Grass to the target's type(s).", name: "Forest's Curse", pp: 20, priority: 0, @@ -6009,8 +5537,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 95, category: "Physical", - desc: "Damage is calculated using the target's Attack stat, including stat stage changes. The user's Ability, item, and burn are used as normal.", - shortDesc: "Uses target's Attack stat in damage calculation.", name: "Foul Play", pp: 15, priority: 0, @@ -6026,8 +5552,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "Has a 10% chance to freeze the target. This move's type effectiveness against Water is changed to be super effective no matter what this move's type is.", - shortDesc: "10% chance to freeze. Super effective on Water.", name: "Freeze-Dry", pp: 20, priority: 0, @@ -6048,8 +5572,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Physical", - desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Charges turn 1. Hits turn 2. 30% paralyze.", name: "Freeze Shock", pp: 5, priority: 0, @@ -6078,8 +5600,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 100, category: "Special", - desc: "Resets the stat stages of all active Pokemon to 0.", - shortDesc: "Eliminates all stat changes.", isNonstandard: "LGPE", name: "Freezy Frost", pp: 10, @@ -6101,8 +5621,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Frenzy Plant", pp: 5, priority: 0, @@ -6120,8 +5638,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 60, category: "Special", - desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", - shortDesc: "Always results in a critical hit.", name: "Frost Breath", pp: 10, priority: 0, @@ -6140,8 +5656,6 @@ export const Moves: {[moveid: string]: MoveData} = { return Math.floor(((255 - pokemon.happiness) * 10) / 25) || 1; }, category: "Physical", - desc: "Power is equal to the greater of ((255 - user's Happiness) * 2/5), rounded down, or 1.", - shortDesc: "Max 102 power at minimum Happiness.", isNonstandard: "Past", name: "Frustration", pp: 20, @@ -6159,8 +5673,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 15, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Fury Attack", pp: 20, priority: 0, @@ -6182,8 +5694,6 @@ export const Moves: {[moveid: string]: MoveData} = { return this.clampIntRange(move.basePower * pokemon.volatiles['furycutter'].multiplier, 1, 160); }, category: "Physical", - desc: "Power doubles with each successful hit, up to a maximum of 160 power. The power is reset if this move misses or another move is used.", - shortDesc: "Power doubles with each hit, up to 160.", name: "Fury Cutter", pp: 20, priority: 0, @@ -6210,8 +5720,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 18, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Fury Swipes", pp: 15, priority: 0, @@ -6228,8 +5736,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - desc: "Power doubles if the last move used by any Pokemon this turn was Fusion Flare.", - shortDesc: "Power doubles if used after Fusion Flare this turn.", name: "Fusion Bolt", pp: 5, priority: 0, @@ -6250,8 +5756,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "Power doubles if the last move used by any Pokemon this turn was Fusion Bolt.", - shortDesc: "Power doubles if used after Fusion Bolt this turn.", name: "Fusion Flare", pp: 5, priority: 0, @@ -6272,8 +5776,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Special", - desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move or Doom Desire is already in effect for the target's position.", - shortDesc: "Hits two turns after being used.", name: "Future Sight", pp: 10, priority: 0, @@ -6313,8 +5815,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", - shortDesc: "Nullifies the target's Ability.", name: "Gastro Acid", pp: 10, priority: 0, @@ -6346,8 +5846,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 50, category: "Physical", - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", name: "Gear Grind", pp: 15, priority: 0, @@ -6365,8 +5863,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the Attack and Special Attack of Pokemon on the user's side with the Plus or Minus Abilities by 1 stage.", - shortDesc: "Raises Atk, Sp. Atk of allies with Plus/Minus by 1.", name: "Gear Up", pp: 20, priority: 0, @@ -6396,8 +5892,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 185, category: "Special", - desc: "If this move is successful, the terrain becomes Psychic Terrain.", - shortDesc: "Summons Psychic Terrain.", isNonstandard: "Past", name: "Genesis Supernova", pp: 1, @@ -6421,8 +5915,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Attack, Special Defense, and Speed by 2 stages. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Charges, then raises SpA, SpD, Spe by 2 turn 2.", isNonstandard: "Past", name: "Geomancy", pp: 10, @@ -6455,8 +5947,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Special", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Giga Drain", pp: 10, priority: 0, @@ -6472,8 +5962,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Physical", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Giga Impact", pp: 5, priority: 0, @@ -6491,7 +5979,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Gigavolt Havoc", pp: 1, @@ -6508,8 +5995,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 65, category: "Special", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the foe(s) Speed by 1.", name: "Glaciate", pp: 10, priority: 0, @@ -6529,8 +6014,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Paralyzes the target.", - shortDesc: "Paralyzes the target.", name: "Glare", pp: 30, priority: 0, @@ -6547,8 +6030,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 80, category: "Special", - desc: "This move summons Light Screen for 5 turns upon use.", - shortDesc: "Summons Light Screen.", isNonstandard: "LGPE", name: "Glitzy Glow", pp: 15, @@ -6567,10 +6048,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side either falls asleep, becomes poisoned, or becomes paralyzed, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: slp or psn or par.", - isNonstandard: "Gigantamax", - name: "G-Max Befuddle", + isNonstandard: "Gigantamax", name: "G-Max Befuddle", pp: 5, priority: 0, flags: {}, @@ -6598,10 +6076,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Water-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", - shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", - isNonstandard: "Gigantamax", - name: "G-Max Cannonade", + isNonstandard: "Gigantamax", name: "G-Max Cannonade", pp: 10, priority: 0, flags: {}, @@ -6640,10 +6115,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side is prevented from switching for four or five turns (seven turns if the user is holding Grip Claw), even if they have a substitute. Causes damage equal to 1/8 of their maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. They can still switch out if they are holding Shed Shell or use Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends for a target if it leaves the field, or if it uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Base move affects power. Foes: bound 4-5 turns.", - isNonstandard: "Gigantamax", - name: "G-Max Centiferno", + isNonstandard: "Gigantamax", name: "G-Max Centiferno", pp: 5, priority: 0, flags: {}, @@ -6665,10 +6137,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the user's side has their critical hit ratio raised by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: Crit Ratio +1.", - isNonstandard: "Gigantamax", - name: "G-Max Chi Strike", + isNonstandard: "Gigantamax", name: "G-Max Chi Strike", pp: 5, priority: 0, flags: {}, @@ -6709,10 +6178,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes infatuated, even if they have a substitute. This effect does not happen for a target if both it and the user are the same gender, if either is genderless, or if the target is already infatuated.", - shortDesc: "Base move affects power. Foes: infatuated.", - isNonstandard: "Gigantamax", - name: "G-Max Cuddle", + isNonstandard: "Gigantamax", name: "G-Max Cuddle", pp: 5, priority: 0, flags: {}, @@ -6734,10 +6200,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side loses 2 PP from its last move used, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: last move -2 PP.", - isNonstandard: "Gigantamax", - name: "G-Max Depletion", + isNonstandard: "Gigantamax", name: "G-Max Depletion", pp: 5, priority: 0, flags: {}, @@ -6767,10 +6230,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 160, category: "Physical", - desc: "This move will always have 160 Base Power, and it ignores the abilities of opposing Pokemon.", - shortDesc: "Stronger than other Max Moves. Ignores abilities.", - isNonstandard: "Gigantamax", - name: "G-Max Drum Solo", + isNonstandard: "Gigantamax", name: "G-Max Drum Solo", pp: 5, priority: 0, flags: {}, @@ -6786,10 +6246,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the user's side restores 1/6 of its current maximum HP, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: +1/6 max HP.", - isNonstandard: "Gigantamax", - name: "G-Max Finale", + isNonstandard: "Gigantamax", name: "G-Max Finale", pp: 5, priority: 0, flags: {}, @@ -6811,8 +6268,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 160, category: "Physical", - desc: "This move will always have 160 Base Power, and it ignores the abilities of opposing Pokemon.", - shortDesc: "Stronger than other Max Moves. Ignores abilities.", isNonstandard: "Gigantamax", name: "G-Max Fireball", pp: 5, @@ -6830,10 +6285,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the opposing side is lowered by 2 stages, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -2 Speed.", - isNonstandard: "Gigantamax", - name: "G-Max Foam Burst", + isNonstandard: "Gigantamax", name: "G-Max Foam Burst", pp: 5, priority: 0, flags: {}, @@ -6855,10 +6307,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes confused, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: confused.", - isNonstandard: "Gigantamax", - name: "G-Max Gold Rush", + isNonstandard: "Gigantamax", name: "G-Max Gold Rush", pp: 5, priority: 0, flags: {}, @@ -6880,10 +6329,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Gravity begins.", - shortDesc: "Base move affects power. Starts Gravity.", - isNonstandard: "Gigantamax", - name: "G-Max Gravitas", + isNonstandard: "Gigantamax", name: "G-Max Gravitas", pp: 5, priority: 0, flags: {}, @@ -6900,10 +6346,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 160, category: "Physical", - desc: "This move will always have 160 Base Power, and it ignores the abilities of opposing Pokemon.", - shortDesc: "Stronger than other Max Moves. Ignores abilities.", - isNonstandard: "Gigantamax", - name: "G-Max Hydrosnipe", + isNonstandard: "Gigantamax", name: "G-Max Hydrosnipe", pp: 5, priority: 0, flags: {}, @@ -6919,10 +6362,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes poisoned, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: poisoned.", - isNonstandard: "Gigantamax", - name: "G-Max Malodor", + isNonstandard: "Gigantamax", name: "G-Max Malodor", pp: 5, priority: 0, flags: {}, @@ -6943,10 +6383,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Torment begins for each Pokemon on the opposing side, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: Tormented.", - isNonstandard: "Gigantamax", - name: "G-Max Meltdown", + isNonstandard: "Gigantamax", name: "G-Max Meltdown", pp: 5, priority: 0, flags: {}, @@ -6968,8 +6405,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful and any Pokemon on the opposing side is using Baneful Bunker, Detect, King's Shield, Mat Block, Max Guard, Obstruct, Protect, or Spiky Shield, this move will fully break the protection.", - shortDesc: "Base move affects power. Breaks all protection.", isNonstandard: "Gigantamax", name: "G-Max One Blow", pp: 5, @@ -6987,8 +6422,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful and any Pokemon on the opposing side is using Baneful Bunker, Detect, King's Shield, Mat Block, Max Guard, Obstruct, Protect, or Spiky Shield, this move will fully break the protection.", - shortDesc: "Base move affects power. Breaks all protection.", isNonstandard: "Gigantamax", name: "G-Max Rapid Flow", pp: 5, @@ -7006,8 +6439,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, there is a 50% chance every Pokemon on the user's side has its Berry restored, even if they have a substitute.", - shortDesc: "Base move affects power. 50% restores Berries.", isNonstandard: "Gigantamax", name: "G-Max Replenish", pp: 5, @@ -7037,10 +6468,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Aurora Veil begins on the user's side.", - shortDesc: "Base move affects power. Allies: Aurora Veil.", - isNonstandard: "Gigantamax", - name: "G-Max Resonance", + isNonstandard: "Gigantamax", name: "G-Max Resonance", pp: 5, priority: 0, flags: {}, @@ -7058,8 +6486,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side is prevented from switching for four or five turns (seven turns if the user is holding Grip Claw), even if they have a substitute. Causes damage equal to 1/8 of their maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. They can still switch out if they are holding Shed Shell or use Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends for a target if it leaves the field, or if it uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Base move affects power. Foes: bound 4-5 turns.", isNonstandard: "Gigantamax", name: "G-Max Sandblast", pp: 5, @@ -7083,8 +6509,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes confused, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: confused.", isNonstandard: "Gigantamax", name: "G-Max Smite", pp: 5, @@ -7108,8 +6532,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, there is a 50% chance the effect of Yawn begins on the target, even if it has a substitute.", - shortDesc: "Base move affects power. Target: 50% Yawn.", isNonstandard: "Gigantamax", name: "G-Max Snooze", pp: 5, @@ -7136,10 +6558,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Steel type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", - shortDesc: "Base move affects power. Foes: Steel hazard.", - isNonstandard: "Gigantamax", - name: "G-Max Steelsurge", + isNonstandard: "Gigantamax", name: "G-Max Steelsurge", pp: 5, priority: 0, flags: {}, @@ -7175,10 +6594,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", - shortDesc: "Base move affects power. Foes: Stealth Rock.", - isNonstandard: "Gigantamax", - name: "G-Max Stonesurge", + isNonstandard: "Gigantamax", name: "G-Max Stonesurge", pp: 5, priority: 0, flags: {}, @@ -7198,10 +6614,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side either becomes poisoned or paralyzed, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: psn or par.", - isNonstandard: "Gigantamax", - name: "G-Max Stun Shock", + isNonstandard: "Gigantamax", name: "G-Max Stun Shock", pp: 10, priority: 0, flags: {}, @@ -7228,10 +6641,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the user's side has its status condition cured, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: status cured.", - isNonstandard: "Gigantamax", - name: "G-Max Sweetness", + isNonstandard: "Gigantamax", name: "G-Max Sweetness", pp: 10, priority: 0, flags: {}, @@ -7253,10 +6663,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the evasiveness of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -1 evasiveness.", - isNonstandard: "Gigantamax", - name: "G-Max Tartness", + isNonstandard: "Gigantamax", name: "G-Max Tartness", pp: 10, priority: 0, flags: {}, @@ -7278,10 +6685,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side is prevented from switching out, even if they have a substitute. They can still switch out if they are holding Shed Shell or use Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If a target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Base move affects power. Foes: trapped.", - isNonstandard: "Gigantamax", - name: "G-Max Terror", + isNonstandard: "Gigantamax", name: "G-Max Terror", pp: 10, priority: 0, flags: {}, @@ -7303,10 +6707,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Grass-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", - shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", - isNonstandard: "Gigantamax", - name: "G-Max Vine Lash", + isNonstandard: "Gigantamax", name: "G-Max Vine Lash", pp: 10, priority: 0, flags: {}, @@ -7345,10 +6746,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Rock-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", - shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", - isNonstandard: "Gigantamax", - name: "G-Max Volcalith", + isNonstandard: "Gigantamax", name: "G-Max Volcalith", pp: 10, priority: 0, flags: {}, @@ -7387,10 +6785,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes paralyzed, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: paralyzed.", - isNonstandard: "Gigantamax", - name: "G-Max Volt Crash", + isNonstandard: "Gigantamax", name: "G-Max Volt Crash", pp: 10, priority: 0, flags: {}, @@ -7412,10 +6807,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Fire-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", - shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", - isNonstandard: "Gigantamax", - name: "G-Max Wildfire", + isNonstandard: "Gigantamax", name: "G-Max Wildfire", pp: 10, priority: 0, flags: {}, @@ -7454,10 +6846,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effects of Electric Terrain, Grassy Terrain, Misty Terrain, and Psychic Terrain end, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, G-Max Steelsurge, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of G-Max Steelsurge, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side.", - shortDesc: "Base move affects power. Ends Terrain, hazards.", - isNonstandard: "Gigantamax", - name: "G-Max Wind Rage", + isNonstandard: "Gigantamax", name: "G-Max Wind Rage", pp: 10, priority: 0, flags: {}, @@ -7521,8 +6910,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 20; }, category: "Special", - desc: "This move's power is 20 if the target weighs less than 10 kg, 40 if less than 25 kg, 60 if less than 50 kg, 80 if less than 100 kg, 100 if less than 200 kg, and 120 if greater than or equal to 200 kg.", - shortDesc: "More power the heavier the target.", name: "Grass Knot", pp: 20, priority: 0, @@ -7553,8 +6940,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 80; }, category: "Special", - desc: "If one of the user's allies chose to use Fire Pledge or Water Pledge this turn and has not moved yet, it takes its turn immediately after the user and the user's move does nothing. If combined with Fire Pledge, the ally uses Fire Pledge with 150 power and a sea of fire appears on the target's side for 4 turns, which causes damage to non-Fire types equal to 1/8 of their maximum HP, rounded down, at the end of each turn during effect, including the last turn. If combined with Water Pledge, the ally uses Grass Pledge with 150 power and a swamp appears on the target's side for 4 turns, which quarters the Speed of each Pokemon on that side. When used as a combined move, this move gains STAB no matter what the user's type is. This move does not consume the user's Grass Gem.", - shortDesc: "Use with Fire or Water Pledge for added effect.", name: "Grass Pledge", pp: 10, priority: 0, @@ -7612,7 +6997,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 55, basePower: 0, category: "Status", - shortDesc: "Causes the target to fall asleep.", isNonstandard: "Past", name: "Grass Whistle", pp: 15, @@ -7630,8 +7014,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "If the current terrain is Grassy Terrain and the user is grounded, this move has its priority increased by 1.", - shortDesc: "User on Grassy Terrain: +1 priority.", name: "Grassy Glide", pp: 20, priority: 0, @@ -7651,8 +7033,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the terrain becomes Grassy Terrain. During the effect, the power of Grass-type attacks used by grounded Pokemon is multiplied by 1.3, the power of Bulldoze, Earthquake, and Magnitude used against grounded Pokemon is multiplied by 0.5, and grounded Pokemon have 1/16 of their maximum HP, rounded down, restored at the end of each turn, including the last turn. Camouflage transforms the user into a Grass type, Nature Power becomes Energy Ball, and Secret Power has a 30% chance to cause sleep. Fails if the current terrain is Grassy Terrain.", - shortDesc: "5 turns. Grounded: +Grass power, +1/16 max HP.", name: "Grassy Terrain", pp: 10, priority: 0, @@ -7712,8 +7092,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 100% chance to lower the target's Defense by 1 stage. Power is multiplied by 1.5 during Gravity's effect.", - shortDesc: "Target: 100% -1 Def. During Gravity: 1.5x power.", name: "Grav Apple", pp: 10, priority: 0, @@ -7737,8 +7115,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", - shortDesc: "5 turns: no Ground immunities, 1.67x accuracy.", name: "Gravity", pp: 5, priority: 0, @@ -7818,8 +7194,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack by 1 stage.", - shortDesc: "Lowers the foe(s) Attack by 1.", name: "Growl", pp: 40, priority: 0, @@ -7838,8 +7212,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack and Special Attack by 1 stage. If the weather is Sunny Day or Desolate Land, this move raises the user's Attack and Special Attack by 2 stages. If the user is holding Utility Umbrella, this move will only raise the user's Attack and Special Attack by 1 stage, even if the weather is Sunny Day or Desolate Land.", - shortDesc: "Raises user's Attack and Sp. Atk by 1; 2 in Sun.", name: "Growth", pp: 20, priority: 0, @@ -7862,8 +7234,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the user's next turn, if an opposing Pokemon's attack knocks the user out, that move loses all its remaining PP.", - shortDesc: "If the user faints, the attack used loses all its PP.", name: "Grudge", pp: 5, priority: 0, @@ -7912,8 +7282,6 @@ export const Moves: {[moveid: string]: MoveData} = { return this.clampIntRange(hp75, 1); }, category: "Special", - desc: "Deals damage to the target equal to 3/4 of its current HP, rounded down, but not less than 1 HP.", - shortDesc: "Does damage equal to 3/4 target's current HP.", isNonstandard: "Past", name: "Guardian of Alola", pp: 1, @@ -7930,8 +7298,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and the target have their Defense and Special Defense stats set to be equal to the average of the user and the target's Defense and Special Defense stats, respectively, rounded down. Stat stage changes are unaffected.", - shortDesc: "Averages Defense and Sp. Def stats with target.", name: "Guard Split", pp: 10, priority: 0, @@ -7956,8 +7322,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps its Defense and Special Defense stat stage changes with the target.", - shortDesc: "Swaps Defense and Sp. Def changes with target.", name: "Guard Swap", pp: 10, priority: 0, @@ -7988,8 +7352,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 30, basePower: 0, category: "Physical", - desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", - shortDesc: "OHKOs the target. Fails if user is a lower level.", name: "Guillotine", pp: 5, priority: 0, @@ -8007,8 +7369,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 120, category: "Physical", - desc: "Has a 30% chance to poison the target.", - shortDesc: "30% chance to poison the target.", name: "Gunk Shot", pp: 5, priority: 0, @@ -8026,8 +7386,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Power doubles if the target is using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop.", - shortDesc: "Power doubles during Bounce, Fly, and Sky Drop.", name: "Gust", pp: 35, priority: 0, @@ -8049,8 +7407,6 @@ export const Moves: {[moveid: string]: MoveData} = { return power; }, category: "Physical", - desc: "Power is equal to (25 * target's current Speed / user's current Speed) + 1, rounded down, but not more than 150. If the user's current Speed is 0, this move's power is 1.", - shortDesc: "More power the slower the user than the target.", name: "Gyro Ball", pp: 5, priority: 0, @@ -8067,8 +7423,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the weather becomes Hail. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are an Ice type or have the Ice Body, Magic Guard, Overcoat, or Snow Cloak Abilities. Lasts for 8 turns if the user is holding Icy Rock. Fails if the current weather is Hail.", - shortDesc: "For 5 turns, hail crashes down.", name: "Hail", pp: 10, priority: 0, @@ -8085,8 +7439,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 100, category: "Physical", - desc: "Lowers the user's Speed by 1 stage.", - shortDesc: "Lowers the user's Speed by 1.", name: "Hammer Arm", pp: 10, priority: 0, @@ -8106,7 +7458,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "No competitive use.", name: "Happy Hour", pp: 30, priority: 0, @@ -8125,8 +7476,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 1 stage.", - shortDesc: "Raises the user's Defense by 1.", name: "Harden", pp: 30, priority: 0, @@ -8145,8 +7494,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Resets the stat stages of all active Pokemon to 0.", - shortDesc: "Eliminates all stat changes.", name: "Haze", pp: 30, priority: 0, @@ -8168,8 +7515,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Headbutt", pp: 15, priority: 0, @@ -8187,8 +7532,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 1/4 recoil.", name: "Head Charge", pp: 15, priority: 0, @@ -8204,8 +7547,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 150, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 1/2 recoil.", name: "Head Smash", pp: 5, priority: 0, @@ -8221,8 +7562,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Soundproof Ability are not cured, unless they are the user.", - shortDesc: "Cures the user's party of all status conditions.", name: "Heal Bell", pp: 5, priority: 0, @@ -8247,8 +7586,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected.", - shortDesc: "For 5 turns, the foe(s) is prevented from healing.", isNonstandard: "Past", name: "Heal Block", pp: 15, @@ -8301,8 +7638,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user faints and the next injured or statused Pokemon brought in has its HP fully restored along with having any major status condition cured. The healing happens before hazards take effect. Is not consumed if the Pokemon sent out is not injured or statused. Fails if the user is the last unfainted Pokemon in its party.", - shortDesc: "User faints. Next hurt Pokemon is fully healed.", name: "Healing Wish", pp: 10, priority: 0, @@ -8335,8 +7670,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up.", - shortDesc: "Heals the user by 50% of its max HP.", isNonstandard: "Past", name: "Heal Order", pp: 10, @@ -8354,8 +7687,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target restores 1/2 of its maximum HP, rounded half up. If the user has the Mega Launcher Ability, the target instead restores 3/4 of its maximum HP, rounded half down.", - shortDesc: "Heals the target by 50% of its max HP.", name: "Heal Pulse", pp: 10, priority: 0, @@ -8383,8 +7714,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", isNonstandard: "Past", name: "Heart Stamp", pp: 25, @@ -8403,8 +7732,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps all its stat stage changes with the target.", - shortDesc: "Swaps all stat changes with target.", isNonstandard: "Past", name: "Heart Swap", pp: 10, @@ -8453,8 +7780,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 40; }, category: "Physical", - desc: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "More power the heavier the user than the target.", name: "Heat Crash", pp: 10, priority: 0, @@ -8478,8 +7803,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 95, category: "Special", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the foe(s).", name: "Heat Wave", pp: 10, priority: 0, @@ -8514,8 +7837,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 40; }, category: "Physical", - desc: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "More power the heavier the user than the target.", name: "Heavy Slam", pp: 10, priority: 0, @@ -8539,8 +7860,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The power of the target's attack this turn is multiplied by 1.5 (this effect is stackable). Fails if there is no ally adjacent to the user or if the ally already moved this turn, but does not fail if the ally is using a two-turn move.", - shortDesc: "One adjacent ally's move power is 1.5x this turn.", name: "Helping Hand", pp: 20, priority: 5, @@ -8580,8 +7899,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Special", - desc: "Power doubles if the target has a major status condition.", - shortDesc: "Power doubles if the target has a status ailment.", name: "Hex", pp: 10, priority: 0, @@ -8597,8 +7914,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "This move's type depends on the user's individual values (IVs), and can be any type but Fairy and Normal.", - shortDesc: "Varies in type based on the user's IVs.", isNonstandard: "Past", name: "Hidden Power", pp: 15, @@ -8617,8 +7932,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Bug", @@ -8635,8 +7948,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Dark", @@ -8653,8 +7964,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Dragon", @@ -8671,8 +7980,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Electric", @@ -8689,8 +7996,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Fighting", @@ -8707,8 +8012,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Fire", @@ -8725,8 +8028,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Flying", @@ -8743,8 +8044,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Ghost", @@ -8761,8 +8060,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Grass", @@ -8779,8 +8076,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Ground", @@ -8797,8 +8092,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Ice", @@ -8815,8 +8108,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Poison", @@ -8833,8 +8124,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Psychic", @@ -8851,8 +8140,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Rock", @@ -8869,8 +8156,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Steel", @@ -8887,8 +8172,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "", - shortDesc: "", realMove: "Hidden Power", isNonstandard: "Past", name: "Hidden Power Water", @@ -8905,7 +8188,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 95, category: "Physical", - shortDesc: "No additional effect.", name: "High Horsepower", pp: 10, priority: 0, @@ -8920,8 +8202,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 130, category: "Physical", - desc: "If this attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", - shortDesc: "User is hurt by 50% of its max HP if it misses.", name: "High Jump Kick", pp: 10, priority: 0, @@ -8940,8 +8220,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "Leaves the target with at least 1 HP.", - shortDesc: "Always leaves the target with at least 1 HP.", name: "Hold Back", pp: 40, priority: 0, @@ -8957,8 +8235,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "No competitive use. Fails if there is no ally adjacent to the user.", - shortDesc: "No competitive use.", name: "Hold Hands", pp: 40, priority: 0, @@ -8974,8 +8250,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack and accuracy by 1 stage.", - shortDesc: "Raises the user's Attack and accuracy by 1.", name: "Hone Claws", pp: 15, priority: 0, @@ -8995,7 +8269,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Physical", - shortDesc: "No additional effect.", name: "Horn Attack", pp: 25, priority: 0, @@ -9010,8 +8283,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 30, basePower: 0, category: "Physical", - desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", - shortDesc: "OHKOs the target. Fails if user is a lower level.", name: "Horn Drill", pp: 5, priority: 0, @@ -9029,8 +8300,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Horn Leech", pp: 10, priority: 0, @@ -9046,8 +8315,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the Attack of the user and all allies 1 stage.", - shortDesc: "Raises the user's and ally's Attack by 1.", name: "Howl", pp: 40, priority: 0, @@ -9066,8 +8333,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 70, basePower: 110, category: "Special", - desc: "Has a 30% chance to confuse the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 70%.", - shortDesc: "30% chance to confuse target. Can't miss in rain.", name: "Hurricane", pp: 10, priority: 0, @@ -9097,8 +8362,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Hydro Cannon", pp: 5, priority: 0, @@ -9116,7 +8379,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 110, category: "Special", - shortDesc: "No additional effect.", name: "Hydro Pump", pp: 5, priority: 0, @@ -9131,7 +8393,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Hydro Vortex", pp: 1, @@ -9148,8 +8409,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Hyper Beam", pp: 5, priority: 0, @@ -9167,8 +8426,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 80, category: "Physical", - desc: "Has a 10% chance to flinch the target.", - shortDesc: "10% chance to flinch the target.", isNonstandard: "Past", name: "Hyper Fang", pp: 15, @@ -9187,8 +8444,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 100, category: "Physical", - desc: "Lowers the user's Defense by 1 stage. This move cannot be used successfully unless the user's current form, while considering Transform, is Hoopa Unbound. If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", - shortDesc: "Hoopa-U: Lowers user's Def by 1; breaks protect.", isNonstandard: "Past", name: "Hyperspace Fury", pp: 5, @@ -9222,8 +8477,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 80, category: "Special", - desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", - shortDesc: "Breaks the target's protection for this turn.", isNonstandard: "Past", name: "Hyperspace Hole", pp: 5, @@ -9240,8 +8493,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent foes.", name: "Hyper Voice", pp: 10, priority: 0, @@ -9256,7 +8507,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 60, basePower: 0, category: "Status", - shortDesc: "Causes the target to fall asleep.", name: "Hypnosis", pp: 20, priority: 0, @@ -9285,8 +8535,6 @@ export const Moves: {[moveid: string]: MoveData} = { return bp; }, category: "Physical", - desc: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn. If this move hits an active Disguise during the effect, the power multiplier is paused but the turn counter is not, potentially allowing the multiplier to be used on the user's next move after this effect ends.", - shortDesc: "Power doubles with each hit. Repeats for 5 turns.", isNonstandard: "Past", name: "Ice Ball", pp: 20, @@ -9321,8 +8569,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to freeze the target.", - shortDesc: "10% chance to freeze the target.", name: "Ice Beam", pp: 10, priority: 0, @@ -9340,8 +8586,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Special", - desc: "Has a 30% chance to burn the target. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Charges turn 1. Hits turn 2. 30% burn.", name: "Ice Burn", pp: 5, priority: 0, @@ -9370,8 +8614,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 65, category: "Physical", - desc: "Has a 10% chance to freeze the target and a 10% chance to flinch it.", - shortDesc: "10% chance to freeze. 10% chance to flinch.", name: "Ice Fang", pp: 15, priority: 0, @@ -9394,8 +8636,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 100, category: "Physical", - desc: "Lowers the user's Speed by 1 stage.", - shortDesc: "Lowers the user's Speed by 1.", isNonstandard: "Past", name: "Ice Hammer", pp: 10, @@ -9416,8 +8656,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "Has a 10% chance to freeze the target.", - shortDesc: "10% chance to freeze the target.", name: "Ice Punch", pp: 15, priority: 0, @@ -9435,8 +8673,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Ice Shard", pp: 30, priority: 1, @@ -9451,8 +8687,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 85, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Icicle Crash", pp: 10, priority: 0, @@ -9470,8 +8704,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 25, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Icicle Spear", pp: 30, priority: 0, @@ -9489,8 +8721,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 55, category: "Special", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the foe(s) Speed by 1.", name: "Icy Wind", pp: 15, priority: 0, @@ -9510,8 +8740,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active.", - shortDesc: "No foe can use any move known by the user.", name: "Imprison", pp: 10, priority: 0, @@ -9549,8 +8777,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "The target loses its held item if it is a Berry or a Gem. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "Destroys the foe(s) Berry/Gem.", name: "Incinerate", pp: 15, priority: 0, @@ -9571,8 +8797,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 50, basePower: 100, category: "Special", - desc: "Has a 100% chance to burn the target.", - shortDesc: "100% chance to burn the target.", name: "Inferno", pp: 5, priority: 0, @@ -9590,7 +8814,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Inferno Overdrive", pp: 1, @@ -9607,8 +8830,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 20, category: "Special", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Infestation", pp: 20, priority: 0, @@ -9624,8 +8845,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes, Toxic Spikes, and Sticky Web, even if the user is a Flying type or has the Levitate Ability.", - shortDesc: "Traps/grounds user; heals 1/16 max HP per turn.", name: "Ingrain", pp: 20, priority: 0, @@ -9659,8 +8878,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target immediately uses its last used move. Fails if the target has not made a move, if the move has 0 PP, if the target is Dynamaxed, if the target is preparing to use Beak Blast, Focus Punch, or Shell Trap, or if the move is Assist, Beak Blast, Belch, Bide, Celebrate, Copycat, Dynamax Cannon, Focus Punch, Ice Ball, Instruct, King's Shield, Me First, Metronome, Mimic, Mirror Move, Nature Power, Outrage, Petal Dance, Rollout, Shell Trap, Sketch, Sleep Talk, Struggle, Thrash, Transform, Uproar, any two-turn move, any recharge move, any Z-Move, or any Max or G-Max Move.", - shortDesc: "The target immediately uses its last used move.", name: "Instruct", pp: 15, priority: 0, @@ -9694,8 +8911,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Causes Normal-type moves to become Electric type this turn. The effect happens after other effects that change a move's type.", - shortDesc: "Normal moves become Electric type this turn.", isNonstandard: "Past", name: "Ion Deluge", pp: 25, @@ -9726,8 +8941,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 2 stages.", - shortDesc: "Raises the user's Defense by 2.", name: "Iron Defense", pp: 15, priority: 0, @@ -9746,8 +8959,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Iron Head", pp: 15, priority: 0, @@ -9765,8 +8976,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 100, category: "Physical", - desc: "Has a 30% chance to lower the target's Defense by 1 stage.", - shortDesc: "30% chance to lower the target's Defense by 1.", name: "Iron Tail", pp: 15, priority: 0, @@ -9786,8 +8995,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Prevents the user and the target from switching out. The user and the target can still switch out if either of them is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if either the user or the target leaves the field.", - shortDesc: "Prevents both user and target from switching out.", name: "Jaw Lock", pp: 15, priority: 0, @@ -9805,8 +9012,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "This move's type depends on the user's held Plate.", - shortDesc: "Type varies based on the held Plate.", isNonstandard: "Past", name: "Judgment", pp: 10, @@ -9829,8 +9034,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Physical", - desc: "If this attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", - shortDesc: "User is hurt by 50% of its max HP if it misses.", isNonstandard: "Past", name: "Jump Kick", pp: 10, @@ -9850,8 +9053,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Each Pokemon on the user's side restores 1/4 of its maximum HP, rounded half up, and has its status condition cured.", - shortDesc: "User and allies: healed 1/4 max HP, status cured.", name: "Jungle Healing", pp: 10, priority: 0, @@ -9869,8 +9070,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", isNonstandard: "Past", name: "Karate Chop", pp: 25, @@ -9887,8 +9086,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 0, category: "Status", - desc: "Lowers the target's accuracy by 1 stage.", - shortDesc: "Lowers the target's accuracy by 1.", name: "Kinesis", pp: 15, priority: 0, @@ -9907,8 +9104,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Protects from damaging attacks. Contact: -1 Atk.", name: "King's Shield", pp: 10, priority: 4, @@ -9966,8 +9161,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Physical", - desc: "If the target is holding an item that can be removed from it, ignoring the Sticky Hold Ability, this move's power is multiplied by 1.5. If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item or cause a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, a Silvally, a Zacian, or a Zamazenta to lose their Blue Orb, Red Orb, Griseous Orb, Plate, Drive, Memory, Rusted Sword, or Rusted Shield respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "1.5x damage if foe holds an item. Removes item.", name: "Knock Off", pp: 20, priority: 0, @@ -9997,8 +9190,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent foes.", isNonstandard: "Past", name: "Land's Wrath", pp: 10, @@ -10015,8 +9206,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the next turn, the user's attacks will be critical hits.", - shortDesc: "Until the end of the next turn, user's moves crit.", name: "Laser Focus", pp: 30, priority: 0, @@ -10053,8 +9242,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "Power doubles if the user had a stat stage lowered this turn.", - shortDesc: "2x power if the user had a stat lowered this turn.", name: "Lash Out", pp: 5, priority: 0, @@ -10074,8 +9261,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 140, category: "Physical", - desc: "This move fails unless the user knows this move and at least one other move, and has used all the other moves it knows at least once each since it became active or Transformed.", - shortDesc: "Fails unless each known move has been used.", name: "Last Resort", pp: 5, priority: 0, @@ -10102,8 +9287,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 30% chance to burn the target.", - shortDesc: "30% chance to burn adjacent Pokemon.", name: "Lava Plume", pp: 15, priority: 0, @@ -10121,7 +9304,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - shortDesc: "No additional effect.", name: "Leafage", pp: 40, priority: 0, @@ -10136,8 +9318,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Leaf Blade", pp: 15, priority: 0, @@ -10153,8 +9333,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 130, category: "Special", - desc: "Lowers the user's Special Attack by 2 stages.", - shortDesc: "Lowers the user's Sp. Atk by 2.", name: "Leaf Storm", pp: 5, priority: 0, @@ -10174,8 +9352,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 65, category: "Special", - desc: "Has a 50% chance to lower the target's accuracy by 1 stage.", - shortDesc: "50% chance to lower the target's accuracy by 1.", name: "Leaf Tornado", pp: 10, priority: 0, @@ -10195,8 +9371,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Leech Life", pp: 10, priority: 0, @@ -10212,8 +9386,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 0, category: "Status", - desc: "The Pokemon at the user's position steals 1/8 of the target's maximum HP, rounded down, at the end of each turn. If Big Root is held by the recipient, the HP recovered is 1.3x normal, rounded half down. If the target uses Baton Pass, the replacement will continue being leeched. If the target switches out or uses Rapid Spin successfully, the effect ends. Grass-type Pokemon are immune to this move on use, but not its effect.", - shortDesc: "1/8 of target's HP is restored to user every turn.", name: "Leech Seed", pp: 10, priority: 0, @@ -10250,8 +9422,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Defense by 1 stage.", - shortDesc: "Lowers the foe(s) Defense by 1.", name: "Leer", pp: 30, priority: 0, @@ -10270,7 +9440,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 190, category: "Physical", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Let's Snuggle Forever", pp: 1, @@ -10287,8 +9456,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 30, category: "Physical", - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze the target.", name: "Lick", pp: 30, priority: 0, @@ -10306,8 +9473,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Each Pokemon on the user's side restores 1/4 of its maximum HP, rounded half up.", - shortDesc: "Heals the user and its allies by 1/4 their max HP.", name: "Life Dew", pp: 10, priority: 0, @@ -10322,8 +9487,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Special", - desc: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 1/2 recoil.", isNonstandard: "Past", name: "Light of Ruin", pp: 5, @@ -10340,8 +9503,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user and its party members take 0.5x damage from special attacks, or 0.66x damage if in a Double Battle. Damage is not reduced further with Aurora Veil. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, special damage to allies is halved.", name: "Light Screen", pp: 30, priority: 0, @@ -10384,8 +9545,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 200, category: "Special", - desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Physical if user's Atk > Sp. Atk. Ignores Abilities.", isNonstandard: "Past", name: "Light That Burns the Sky", pp: 1, @@ -10406,8 +9565,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Physical", - desc: "Has a 20% chance to lower the target's Defense by 1 stage.", - shortDesc: "20% chance to lower the target's Defense by 1.", name: "Liquidation", pp: 10, priority: 0, @@ -10427,8 +9584,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. The effect ends if either the user or the target leaves the field. Fails if this effect is active for the user.", - shortDesc: "User's next move will not miss the target.", name: "Lock-On", pp: 5, priority: 0, @@ -10462,7 +9617,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 0, category: "Status", - shortDesc: "Causes the target to fall asleep.", isNonstandard: "Past", name: "Lovely Kiss", pp: 10, @@ -10499,8 +9653,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 20; }, category: "Physical", - desc: "This move's power is 20 if the target weighs less than 10 kg, 40 if less than 25 kg, 60 if less than 50 kg, 80 if less than 100 kg, 100 if less than 200 kg, and 120 if greater than or equal to 200 kg.", - shortDesc: "More power the heavier the target.", name: "Low Kick", pp: 20, priority: 0, @@ -10523,8 +9675,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Physical", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the target's Speed by 1.", name: "Low Sweep", pp: 20, priority: 0, @@ -10544,8 +9694,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user and its party members cannot be struck by a critical hit. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, shields user's party from critical hits.", isNonstandard: "Past", name: "Lucky Chant", pp: 30, @@ -10575,8 +9723,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user faints and the Pokemon brought out to replace it has its HP and PP fully restored along with having any major status condition cured. The new Pokemon is sent out at the end of the turn, and the healing happens before hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", - shortDesc: "User faints. Replacement is fully healed, with PP.", isNonstandard: "Past", name: "Lunar Dance", pp: 10, @@ -10633,8 +9779,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 100% chance to lower the target's Attack by 1 stage.", - shortDesc: "100% chance to lower the target's Attack by 1.", name: "Lunge", pp: 15, priority: 0, @@ -10654,8 +9798,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "Has a 50% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "50% chance to lower the target's Sp. Def by 1.", isNonstandard: "Past", name: "Luster Purge", pp: 5, @@ -10676,8 +9818,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Mach Punch", pp: 30, priority: 1, @@ -10692,7 +9832,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Special", - shortDesc: "This move does not check accuracy.", name: "Magical Leaf", pp: 20, priority: 0, @@ -10707,8 +9846,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the turn, the user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. Moves reflected in this way are unable to be reflected again by this or the Magic Bounce Ability's effect. Spikes, Stealth Rock, Sticky Web, and Toxic Spikes can only be reflected once per side, by the leftmost Pokemon under this or the Magic Bounce Ability's effect. The Lightning Rod and Storm Drain Abilities redirect their respective moves before this move takes effect.", - shortDesc: "Bounces back certain non-damaging moves.", name: "Magic Coat", pp: 15, priority: 4, @@ -10755,8 +9892,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to become a Psychic type. Fails if the target is an Arceus or a Silvally, or if the target is already purely Psychic type.", - shortDesc: "Changes the target's type to Psychic.", name: "Magic Powder", pp: 20, priority: 0, @@ -10774,8 +9909,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the held items of all active Pokemon have no effect. An item's effect of causing forme changes is unaffected, but any other effects from such items are negated. During the effect, Fling and Natural Gift are prevented from being used by all active Pokemon. If this move is used during the effect, the effect ends.", - shortDesc: "For 5 turns, all held items have no effect.", name: "Magic Room", pp: 10, priority: 0, @@ -10813,8 +9946,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 100, category: "Special", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", isNonstandard: "Past", name: "Magma Storm", pp: 5, @@ -10831,7 +9962,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Physical", - shortDesc: "This move does not check accuracy.", isNonstandard: "Past", name: "Magnet Bomb", pp: 20, @@ -10847,8 +9977,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the Defense and Special Defense of Pokemon on the user's side with the Plus or Minus Abilities by 1 stage.", - shortDesc: "Raises Def, Sp. Def of allies with Plus/Minus by 1.", name: "Magnetic Flux", pp: 20, priority: 0, @@ -10878,8 +10006,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability as long as it remains active. If the user uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, Thousand Arrows, and Iron Ball override this move if the user is under any of their effects. Fails if the user is already under this effect or the effects of Ingrain, Smack Down, or Thousand Arrows.", - shortDesc: "For 5 turns, the user has immunity to Ground.", name: "Magnet Rise", pp: 10, priority: 0, @@ -10910,8 +10036,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Physical", - desc: "The power of this move varies; 5% chances for 10 and 150 power, 10% chances for 30 and 110 power, 20% chances for 50 and 90 power, and 30% chance for 70 power. Damage doubles if the target is using Dig.", - shortDesc: "Hits adjacent Pokemon. Power varies; 2x on Dig.", isNonstandard: "Past", name: "Magnitude", pp: 30, @@ -10957,8 +10081,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 180, category: "Physical", - desc: "Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "Damage doubles if the target used Minimize.", isNonstandard: "Past", name: "Malicious Moonsault", pp: 1, @@ -10975,8 +10097,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn. Fails unless it is the user's first turn on the field, if the user moves last this turn, or if this move is already in effect for the user's side.", - shortDesc: "Protects allies from damaging attacks. Turn 1 only.", name: "Mat Block", pp: 10, priority: 0, @@ -11023,8 +10143,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: +1 Speed.", name: "Max Airstream", pp: 5, priority: 0, @@ -11047,8 +10165,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Defense of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -1 Sp. Def.", name: "Max Darkness", pp: 5, priority: 0, @@ -11071,8 +10187,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 100, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Sunny Day begins.", - shortDesc: "Base move affects power. Starts Sunny Day.", name: "Max Flare", pp: 5, priority: 0, @@ -11093,8 +10207,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Attack of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -1 Sp. Atk.", name: "Max Flutterby", pp: 5, priority: 0, @@ -11117,8 +10229,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Rain Dance begins.", - shortDesc: "Base move affects power. Starts Rain Dance.", name: "Max Geyser", pp: 5, priority: 0, @@ -11139,8 +10249,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from nearly all attacks made by other Pokemon during this turn, including Max and G-Max Moves. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Protects user from moves & Max Moves this turn.", name: "Max Guard", pp: 5, priority: 4, @@ -11196,8 +10304,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Hail begins.", - shortDesc: "Base move affects power. Starts Hail.", name: "Max Hailstorm", pp: 5, priority: 0, @@ -11218,8 +10324,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Boosts the user and its allies' Attack by 1 stage. BP scales with the base move's BP.", - shortDesc: "Base move affects power. Allies: +1 Attack.", name: "Max Knuckle", pp: 5, priority: 0, @@ -11242,8 +10346,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Electric Terrain begins.", - shortDesc: "Base move affects power. Starts Electric Terrain.", name: "Max Lightning", pp: 5, priority: 0, @@ -11264,8 +10366,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Psychic Terrain begins.", - shortDesc: "Base move affects power. Starts Psychic Terrain.", name: "Max Mindstorm", pp: 5, priority: 0, @@ -11286,8 +10386,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Attack of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: +1 Sp. Atk.", name: "Max Ooze", pp: 5, priority: 0, @@ -11310,8 +10408,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Grassy Terrain begins.", - shortDesc: "Base move affects power. Starts Grassy Terrain.", name: "Max Overgrowth", pp: 5, priority: 0, @@ -11332,8 +10428,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Defense of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -1 Defense.", name: "Max Phantasm", pp: 5, priority: 0, @@ -11356,8 +10450,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Defense of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: +1 Sp. Def.", name: "Max Quake", pp: 5, priority: 0, @@ -11380,8 +10472,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Sandstorm begins.", - shortDesc: "Base move affects power. Starts Sandstorm.", name: "Max Rockfall", pp: 5, priority: 0, @@ -11402,8 +10492,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Misty Terrain begins.", - shortDesc: "Base move affects power. Starts Misty Terrain.", name: "Max Starfall", pp: 5, priority: 0, @@ -11424,8 +10512,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Defense of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Allies: +1 Defense.", name: "Max Steelspike", pp: 5, priority: 0, @@ -11448,8 +10534,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -1 Speed.", name: "Max Strike", pp: 5, priority: 0, @@ -11472,8 +10556,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 10, category: "Physical", - desc: "Power is equal to the base move's Max Move power. If this move is successful, the Attack of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", - shortDesc: "Base move affects power. Foes: -1 Attack.", name: "Max Wyrmwind", pp: 5, priority: 0, @@ -11496,8 +10578,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Prevents the target from switching out.", name: "Mean Look", pp: 5, priority: 0, @@ -11516,8 +10596,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack by 1 stage.", - shortDesc: "Raises the user's Attack by 1.", isNonstandard: "Past", name: "Meditate", pp: 40, @@ -11537,8 +10615,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move other than Beak Blast, Chatter, Counter, Covet, Focus Punch, Me First, Metal Burst, Mirror Coat, Shell Trap, Struggle, Thief, or any Z-Move. Fails if the target moves before the user. Ignores the target's substitute for the purpose of copying the move.", - shortDesc: "Copies a foe at 1.5x power. User must be faster.", isNonstandard: "Past", name: "Me First", pp: 20, @@ -11577,8 +10653,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Mega Drain", pp: 15, priority: 0, @@ -11595,7 +10669,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 120, category: "Physical", - shortDesc: "No additional effect.", name: "Megahorn", pp: 10, priority: 0, @@ -11610,7 +10683,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 120, category: "Physical", - shortDesc: "No additional effect.", name: "Mega Kick", pp: 5, priority: 0, @@ -11625,7 +10697,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "Mega Punch", pp: 20, priority: 0, @@ -11640,8 +10711,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack and Special Attack by 2 stages. The user faints unless this move misses or there is no target. Fails entirely if this move hits a substitute, but does not fail if the target's stats cannot be changed.", - shortDesc: "Lowers target's Attack, Sp. Atk by 2. User faints.", name: "Memento", pp: 10, priority: 0, @@ -11662,8 +10731,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 200, category: "Special", - desc: "This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Ignores the Abilities of other Pokemon.", isNonstandard: "Past", name: "Menacing Moonraze Maelstrom", pp: 1, @@ -11685,8 +10752,6 @@ export const Moves: {[moveid: string]: MoveData} = { return pokemon.volatiles['metalburst'].damage || 1; }, category: "Physical", - desc: "Deals damage to the last opposing Pokemon to hit the user with an attack this turn equal to 1.5 times the HP lost by the user from that attack, rounded down. If the user did not lose HP from the attack, this move deals 1 HP of damage instead. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's attack this turn.", - shortDesc: "If hit by an attack, returns 1.5x damage.", name: "Metal Burst", pp: 10, priority: 0, @@ -11727,8 +10792,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 50, category: "Physical", - desc: "Has a 10% chance to raise the user's Attack by 1 stage.", - shortDesc: "10% chance to raise the user's Attack by 1.", name: "Metal Claw", pp: 35, priority: 0, @@ -11750,8 +10813,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 0, category: "Status", - desc: "Lowers the target's Special Defense by 2 stages.", - shortDesc: "Lowers the target's Sp. Def by 2.", name: "Metal Sound", pp: 40, priority: 0, @@ -11770,8 +10831,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 150, category: "Physical", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Meteor Assault", pp: 5, priority: 0, @@ -11788,8 +10847,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 120, category: "Special", - desc: "This attack charges on the first turn and executes on the second. Raises the user's Special Attack by 1 stage on the first turn. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Raises user's Sp. Atk by 1 on turn 1. Hits turn 2.", name: "Meteor Beam", pp: 10, priority: 0, @@ -11815,8 +10872,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 90, category: "Physical", - desc: "Has a 20% chance to raise the user's Attack by 1 stage.", - shortDesc: "20% chance to raise the user's Attack by 1.", name: "Meteor Mash", pp: 10, priority: 0, @@ -11838,8 +10893,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "A random move is selected for use, other than After You, Apple Acid, Assist, Aura Wheel, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Body Press, Branch Poke, Breaking Swipe, Celebrate, Chatter, Clangorous Soul, Copycat, Counter, Covet, Crafty Shield, Decorate, Destiny Bond, Detect, Diamond Storm, Double Iron Bash, Dragon Ascent, Drum Beating, Dynamax Cannon, Endure, Eternabeam, False Surrender, Feint, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Grav Apple, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, King's Shield, Life Dew, Light of Ruin, Mat Block, Me First, Meteor Assault, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Moongeist Beam, Nature Power, Nature's Madness, Obstruct, Origin Pulse, Overdrive, Photon Geyser, Plasma Fists, Precipice Blades, Protect, Pyro Ball, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Shell Trap, Sketch, Sleep Talk, Snap Trap, Snarl, Snatch, Snore, Spectral Thief, Spiky Shield, Spirit Break, Spotlight, Steam Eruption, Steel Beam, Strange Steam, Struggle, Sunsteel Strike, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Transform, Trick, V-create, or Wide Guard.", - shortDesc: "Picks a random move.", name: "Metronome", pp: 10, priority: 0, @@ -11877,8 +10930,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up.", - shortDesc: "Heals the user by 50% of its max HP.", name: "Milk Drink", pp: 10, priority: 0, @@ -11895,8 +10946,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Chatter, Mimic, Sketch, Struggle, Transform, or any Z-Move.", - shortDesc: "The last move the target used replaces this one.", name: "Mimic", pp: 10, priority: 0, @@ -11934,8 +10983,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 150, category: "Special", - desc: "Whether or not this move is successful and even if it would cause fainting, the user loses 1/2 of its maximum HP, rounded up, unless the user has the Magic Guard Ability. This move is prevented from executing and the user does not lose HP if any active Pokemon has the Damp Ability, or if this move is Fire type and the user is affected by Powder or the weather is Primordial Sea.", - shortDesc: "User loses 50% max HP. Hits adjacent Pokemon.", isNonstandard: "Past", name: "Mind Blown", pp: 5, @@ -11957,8 +11004,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. The effect ends if either the user or the target leaves the field. Fails if this effect is active for the user.", - shortDesc: "User's next move will not miss the target.", name: "Mind Reader", pp: 5, priority: 0, @@ -11981,8 +11026,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Heavy Slam, Malicious Moonsault, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", - shortDesc: "Raises the user's evasiveness by 2.", name: "Minimize", pp: 10, priority: 0, @@ -12022,8 +11065,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Psychic-type attacks can hit the target if it is a Dark type. Fails if the target is already affected, or affected by Foresight or Odor Sleuth.", - shortDesc: "Psychic hits Dark. Evasiveness ignored.", isNonstandard: "Past", name: "Miracle Eye", pp: 40, @@ -12062,8 +11103,6 @@ export const Moves: {[moveid: string]: MoveData} = { return pokemon.volatiles['mirrorcoat'].damage || 1; }, category: "Special", - desc: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals 1 HP of damage instead. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn.", - shortDesc: "If hit by special attack, returns double damage.", name: "Mirror Coat", pp: 20, priority: -5, @@ -12104,8 +11143,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user uses the last move used by the target. The copied move is used against that target, if possible. Fails if the target has not made a move, or if the last move used cannot be copied by this move.", - shortDesc: "User uses the target's last used move against it.", isNonstandard: "Past", name: "Mirror Move", pp: 20, @@ -12130,8 +11167,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 65, category: "Special", - desc: "Has a 30% chance to lower the target's accuracy by 1 stage.", - shortDesc: "30% chance to lower the target's accuracy by 1.", isNonstandard: "Past", name: "Mirror Shot", pp: 10, @@ -12152,8 +11187,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user and its party members are protected from having their stat stages lowered by other Pokemon. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, protects user's party from stat drops.", name: "Mist", pp: 30, priority: 0, @@ -12197,8 +11230,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "Has a 50% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "50% chance to lower the target's Sp. Atk by 1.", isNonstandard: "Past", name: "Mist Ball", pp: 5, @@ -12219,8 +11250,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "If the current terrain is Misty Terrain and the user is grounded, this move's power is multiplied by 1.5. The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Damp Ability.", - shortDesc: "User faints. User on Misty Terrain: 1.5x power.", name: "Misty Explosion", pp: 5, priority: 0, @@ -12241,8 +11270,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the terrain becomes Misty Terrain. During the effect, the power of Dragon-type attacks used against grounded Pokemon is multiplied by 0.5 and grounded Pokemon cannot be inflicted with a major status condition nor confusion. Camouflage transforms the user into a Fairy type, Nature Power becomes Moonblast, and Secret Power has a 30% chance to lower Special Attack by 1 stage. Fails if the current terrain is Misty Terrain.", - shortDesc: "5 turns. Can't status,-Dragon power vs grounded.", name: "Misty Terrain", pp: 10, priority: 0, @@ -12301,8 +11328,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 95, category: "Special", - desc: "Has a 30% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "30% chance to lower the target's Sp. Atk by 1.", name: "Moonblast", pp: 15, priority: 0, @@ -12322,8 +11347,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Ignores the Abilities of other Pokemon.", name: "Moongeist Beam", pp: 5, priority: 0, @@ -12339,8 +11362,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - shortDesc: "Heals the user by a weather-dependent amount.", name: "Moonlight", pp: 5, priority: 0, @@ -12372,8 +11393,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - shortDesc: "Heals the user by a weather-dependent amount.", name: "Morning Sun", pp: 5, priority: 0, @@ -12405,8 +11424,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 65, category: "Special", - desc: "Has a 30% chance to lower the target's accuracy by 1 stage.", - shortDesc: "30% chance to lower the target's accuracy by 1.", isNonstandard: "Past", name: "Mud Bomb", pp: 10, @@ -12427,8 +11444,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 55, category: "Special", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the target's Speed by 1.", name: "Mud Shot", pp: 15, priority: 0, @@ -12448,8 +11463,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 20, category: "Special", - desc: "Has a 100% chance to lower the target's accuracy by 1 stage.", - shortDesc: "100% chance to lower the target's accuracy by 1.", name: "Mud-Slap", pp: 10, priority: 0, @@ -12469,8 +11482,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, all Electric-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active.", - shortDesc: "For 5 turns, Electric-type attacks have 1/3 power.", isNonstandard: "Past", name: "Mud Sport", pp: 15, @@ -12505,8 +11516,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 90, category: "Special", - desc: "Has a 30% chance to lower the target's accuracy by 1 stage.", - shortDesc: "30% chance to lower the foe(s) accuracy by 1.", name: "Muddy Water", pp: 10, priority: 0, @@ -12526,8 +11535,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "This move's type depends on the user's held Memory.", - shortDesc: "Type varies based on the held Memory.", name: "Multi-Attack", pp: 10, priority: 0, @@ -12548,8 +11555,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Special", - desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "100% chance to lower the target's Sp. Atk by 1.", name: "Mystical Fire", pp: 10, priority: 0, @@ -12569,8 +11574,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Attack by 2 stages.", - shortDesc: "Raises the user's Sp. Atk by 2.", name: "Nasty Plot", pp: 20, priority: 0, @@ -12589,8 +11592,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Physical", - desc: "The type and power of this move depend on the user's held Berry, and the Berry is lost. Fails if the user is not holding a Berry, if the user has the Klutz Ability, or if Embargo or Magic Room is in effect for the user.", - shortDesc: "Power and type depends on the user's Berry.", isNonstandard: "Past", name: "Natural Gift", pp: 15, @@ -12624,8 +11625,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "This move calls another move for use based on the battle terrain. Tri Attack on the regular Wi-Fi terrain, Thunderbolt during Electric Terrain, Moonblast during Misty Terrain, Energy Ball during Grassy Terrain, and Psychic during Psychic Terrain.", - shortDesc: "Attack depends on terrain (default Tri Attack).", name: "Nature Power", pp: 20, priority: 0, @@ -12657,8 +11656,6 @@ export const Moves: {[moveid: string]: MoveData} = { return this.clampIntRange(Math.floor(target.getUndynamaxedHP() / 2), 1); }, category: "Special", - desc: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP.", - shortDesc: "Does damage equal to 1/2 target's current HP.", isNonstandard: "Past", name: "Nature's Madness", pp: 10, @@ -12674,8 +11671,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", isNonstandard: "Past", name: "Needle Arm", pp: 15, @@ -12694,7 +11689,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Never-Ending Nightmare", pp: 1, @@ -12711,8 +11705,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 85, category: "Special", - desc: "Has a 40% chance to lower the target's accuracy by 1 stage.", - shortDesc: "40% chance to lower the target's accuracy by 1.", name: "Night Daze", pp: 10, priority: 0, @@ -12732,8 +11724,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to lose 1/4 of its maximum HP, rounded down, at the end of each turn as long as it is asleep. This move does not affect the target unless it is asleep. The effect ends when the target wakes up, even if it falls asleep again in the same turn.", - shortDesc: "A sleeping target is hurt by 1/4 max HP per turn.", isNonstandard: "Past", name: "Nightmare", pp: 15, @@ -12765,8 +11755,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 0, damage: 'level', category: "Special", - desc: "Deals damage to the target equal to the user's level.", - shortDesc: "Does damage equal to the user's level.", name: "Night Shade", pp: 15, priority: 0, @@ -12781,8 +11769,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Night Slash", pp: 15, priority: 0, @@ -12798,8 +11784,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack and Special Attack by 1 stage.", - shortDesc: "Lowers the target's Attack and Sp. Atk by 1.", name: "Noble Roar", pp: 30, priority: 0, @@ -12819,8 +11803,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage, but it becomes prevented from switching out. The user can still switch out if it uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped. Fails if the user has already been prevented from switching by this effect.", - shortDesc: "Raises all stats by 1 (not acc/eva). Traps user.", name: "No Retreat", pp: 5, priority: 0, @@ -12856,8 +11838,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 20, category: "Physical", - desc: "Has a 100% chance to paralyze the target.", - shortDesc: "100% chance to paralyze the target.", name: "Nuzzle", pp: 20, priority: 0, @@ -12875,8 +11855,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "The user recovers 3/4 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 75% of the damage dealt.", isNonstandard: "Past", name: "Oblivion Wing", pp: 10, @@ -12893,8 +11871,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Defense lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Protects from damaging attacks. Contact: -2 Def.", name: "Obstruct", pp: 10, priority: 4, @@ -12950,7 +11926,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 195, category: "Special", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Oceanic Operetta", pp: 1, @@ -12967,8 +11942,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 65, category: "Special", - desc: "Has a 50% chance to lower the target's accuracy by 1 stage.", - shortDesc: "50% chance to lower the target's accuracy by 1.", name: "Octazooka", pp: 10, priority: 0, @@ -12988,8 +11961,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Prevents the target from switching out. At the end of each turn during effect, the target's Defense and Special Defense are lowered by 1 stage. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Traps target, lowers Def and SpD by 1 each turn.", name: "Octolock", pp: 15, priority: 0, @@ -13025,8 +11996,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. Fails if the target is already affected, or affected by Foresight or Miracle Eye.", - shortDesc: "Fighting, Normal hit Ghost. Evasiveness ignored.", isNonstandard: "Past", name: "Odor Sleuth", pp: 40, @@ -13047,8 +12016,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "Has a 10% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", - shortDesc: "10% chance to raise all stats by 1 (not acc/eva).", isNonstandard: "Past", name: "Ominous Wind", pp: 5, @@ -13075,8 +12042,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 110, category: "Special", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent foes.", isNonstandard: "Past", name: "Origin Pulse", pp: 10, @@ -13091,8 +12056,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk and the user is asleep, the move is used for one turn and does not confuse the user.", - shortDesc: "Lasts 2-3 turns. Confuses the user afterwards.", name: "Outrage", pp: 10, priority: 0, @@ -13115,8 +12078,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits foe(s).", name: "Overdrive", pp: 10, priority: 0, @@ -13130,8 +12091,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 130, category: "Special", - desc: "Lowers the user's Special Attack by 2 stages.", - shortDesc: "Lowers the user's Sp. Atk by 2.", name: "Overheat", pp: 5, priority: 0, @@ -13151,8 +12110,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and the target's HP become the average of their current HP, rounded down, but not more than the maximum HP of either one.", - shortDesc: "Shares HP of user and target equally.", name: "Pain Split", pp: 20, priority: 0, @@ -13177,8 +12134,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Special", - desc: "Has a 20% chance to lower the target's Attack by 1 stage.", - shortDesc: "20% chance to lower the target's Attack by 1.", isNonstandard: "CAP", name: "Paleo Wave", pp: 15, @@ -13199,8 +12154,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", name: "Parabolic Charge", pp: 20, priority: 0, @@ -13216,8 +12169,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack and Special Attack by 1 stage. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if the target's Attack and Special Attack stat stages were both unchanged, or if there are no unfainted party members.", - shortDesc: "Lowers target's Atk, Sp. Atk by 1. User switches.", name: "Parting Shot", pp: 20, priority: 0, @@ -13248,8 +12199,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower * 2; }, category: "Physical", - desc: "Power doubles if the user moves after the target this turn, including actions taken through Instruct or the Dancer Ability. Switching in does not count as an action.", - shortDesc: "Power doubles if the user moves after the target.", name: "Payback", pp: 10, priority: 0, @@ -13264,8 +12213,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Scatters coins.", name: "Pay Day", pp: 20, priority: 0, @@ -13283,7 +12230,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 35, category: "Physical", - shortDesc: "No additional effect.", name: "Peck", pp: 35, priority: 0, @@ -13298,8 +12244,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Each active Pokemon receives a perish count of 4 if it doesn't already have a perish count. At the end of each turn including the turn used, the perish count of all active Pokemon lowers by 1 and Pokemon faint if the number reaches 0. The perish count is removed from Pokemon that switch out. If a Pokemon uses Baton Pass while it has a perish count, the replacement will gain the perish count and continue to count down.", - shortDesc: "All active Pokemon will faint in 3 turns.", name: "Perish Song", pp: 5, priority: 0, @@ -13346,8 +12290,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent Pokemon.", name: "Petal Blizzard", pp: 15, priority: 0, @@ -13362,8 +12304,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Special", - desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk and the user is asleep, the move is used for one turn and does not confuse the user.", - shortDesc: "Lasts 2-3 turns. Confuses the user afterwards.", name: "Petal Dance", pp: 10, priority: 0, @@ -13386,8 +12326,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection.", name: "Phantom Force", pp: 10, priority: 0, @@ -13418,8 +12356,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Physical if user's Atk > Sp. Atk. Ignores Abilities.", name: "Photon Geyser", pp: 5, priority: 0, @@ -13441,8 +12377,6 @@ export const Moves: {[moveid: string]: MoveData} = { return Math.floor((pokemon.happiness * 10) / 25) || 1; }, category: "Special", - desc: "Power is equal to the greater of (user's Happiness * 2/5), rounded down, or 1.", - shortDesc: "Max happiness: 102 power. Can't miss.", isNonstandard: "LGPE", name: "Pika Papow", pp: 20, @@ -13458,8 +12392,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 25, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Pin Missile", pp: 20, priority: 0, @@ -13477,8 +12409,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - desc: "If this move is successful, causes Normal-type moves to become Electric type this turn.", - shortDesc: "Normal moves become Electric type this turn.", name: "Plasma Fists", pp: 15, priority: 0, @@ -13494,8 +12424,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Lowers the target's Attack by 1 stage.", - shortDesc: "Lowers the target's Attack by 1.", name: "Play Nice", pp: 20, priority: 0, @@ -13514,8 +12442,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 90, category: "Physical", - desc: "Has a 10% chance to lower the target's Attack by 1 stage.", - shortDesc: "10% chance to lower the target's Attack by 1.", name: "Play Rough", pp: 10, priority: 0, @@ -13535,8 +12461,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "If this move is successful and the user has not fainted, it steals the target's held Berry if it is holding one and eats it immediately, gaining its effects even if the user's item is being ignored. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "User steals and eats the target's Berry.", name: "Pluck", pp: 20, priority: 0, @@ -13562,8 +12486,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "Has a 50% chance to badly poison the target.", - shortDesc: "50% chance to badly poison the target.", name: "Poison Fang", pp: 15, priority: 0, @@ -13581,8 +12503,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 0, category: "Status", - desc: "Poisons the target.", - shortDesc: "Poisons the foe(s).", name: "Poison Gas", pp: 40, priority: 0, @@ -13599,8 +12519,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 30% chance to poison the target.", - shortDesc: "30% chance to poison the target.", name: "Poison Jab", pp: 20, priority: 0, @@ -13618,8 +12536,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 0, category: "Status", - desc: "Poisons the target.", - shortDesc: "Poisons the target.", name: "Poison Powder", pp: 35, priority: 0, @@ -13636,8 +12552,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 15, category: "Physical", - desc: "Has a 30% chance to poison the target.", - shortDesc: "30% chance to poison the target.", name: "Poison Sting", pp: 35, priority: 0, @@ -13655,8 +12569,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "Has a 10% chance to poison the target and a higher chance for a critical hit.", - shortDesc: "High critical hit ratio. 10% chance to poison.", name: "Poison Tail", pp: 25, priority: 0, @@ -13675,8 +12587,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "If the target is an ally, this move restores 1/2 of its maximum HP, rounded down, instead of dealing damage.", - shortDesc: "If the target is an ally, heals 50% of its max HP.", name: "Pollen Puff", pp: 15, priority: 0, @@ -13701,7 +12611,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 110, category: "Physical", - shortDesc: "Fails if the target has no held item.", name: "Poltergeist", pp: 5, priority: 0, @@ -13725,7 +12634,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - shortDesc: "No additional effect.", name: "Pound", pp: 35, priority: 0, @@ -13740,8 +12648,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "If the target uses a Fire-type move this turn, it is prevented from executing and the target loses 1/4 of its maximum HP, rounded half up. This effect does not happen if the Fire-type move is prevented by Primordial Sea.", - shortDesc: "If using a Fire move, target loses 1/4 max HP.", isNonstandard: "Past", name: "Powder", pp: 20, @@ -13773,8 +12679,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 10% chance to freeze the target.", - shortDesc: "10% chance to freeze the foe(s).", name: "Powder Snow", pp: 25, priority: 0, @@ -13792,7 +12696,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - shortDesc: "No additional effect.", name: "Power Gem", pp: 20, priority: 0, @@ -13807,8 +12710,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and the target have their Attack and Special Attack stats set to be equal to the average of the user and the target's Attack and Special Attack stats, respectively, rounded down. Stat stage changes are unaffected.", - shortDesc: "Averages Attack and Sp. Atk stats with target.", name: "Power Split", pp: 10, priority: 0, @@ -13833,8 +12734,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps its Attack and Special Attack stat stage changes with the target.", - shortDesc: "Swaps Attack and Sp. Atk stat stages with target.", name: "Power Swap", pp: 10, priority: 0, @@ -13865,8 +12764,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps its Attack and Defense stats, and stat stage changes remain on their respective stats. This move can be used again to swap the stats back. If the user uses Baton Pass, the replacement will have its Attack and Defense stats swapped if the effect is active. If the user has its stats recalculated by changing forme while its stats are swapped, this effect is ignored but is still active for the purposes of Baton Pass.", - shortDesc: "Switches user's Attack and Defense stats.", name: "Power Trick", pp: 10, priority: 0, @@ -13911,8 +12808,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower + 20 * pokemon.positiveBoosts(); }, category: "Physical", - desc: "Power is equal to 20+(X*20), where X is the user's total stat stage changes that are greater than 0.", - shortDesc: " + 20 power for each of the user's stat boosts.", name: "Power Trip", pp: 10, priority: 0, @@ -13929,8 +12824,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "Has a 100% chance to raise the user's Attack by 1 stage.", - shortDesc: "100% chance to raise the user's Attack by 1.", name: "Power-Up Punch", pp: 20, priority: 0, @@ -13952,7 +12845,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 120, category: "Physical", - shortDesc: "No additional effect.", name: "Power Whip", pp: 10, priority: 0, @@ -13967,8 +12859,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 120, category: "Physical", - desc: "No additional effect.", - shortDesc: "No additional effect. Hits adjacent foes.", isNonstandard: "Past", name: "Precipice Blades", pp: 10, @@ -13983,8 +12873,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 0, category: "Physical", - desc: "If this move is successful, it deals damage or heals the target. 40% chance for 40 power, 30% chance for 80 power, 10% chance for 120 power, and 20% chance to heal the target by 1/4 of its maximum HP, rounded down.", - shortDesc: "40, 80, 120 power, or heals target 1/4 max HP.", name: "Present", pp: 15, priority: 0, @@ -14011,8 +12899,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 160, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Prismatic Laser", pp: 10, priority: 0, @@ -14030,8 +12916,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Prevents moves from affecting the user this turn.", name: "Protect", pp: 10, priority: 4, @@ -14081,8 +12965,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Has a 10% chance to confuse the target.", - shortDesc: "10% chance to confuse the target.", name: "Psybeam", pp: 20, priority: 0, @@ -14100,8 +12982,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user copies all of the target's current stat stage changes.", - shortDesc: "Copies the target's current stat stages.", name: "Psych Up", pp: 10, priority: 0, @@ -14133,8 +13013,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "10% chance to lower the target's Sp. Def by 1.", name: "Psychic", pp: 10, priority: 0, @@ -14154,8 +13032,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Physical", - desc: "If this attack does not miss, the effects of Reflect, Light Screen, and Aurora Veil end for the target's side of the field before damage is calculated.", - shortDesc: "Destroys screens, unless the target is immune.", name: "Psychic Fangs", pp: 10, priority: 0, @@ -14178,8 +13054,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the terrain becomes Psychic Terrain. During the effect, the power of Psychic-type attacks made by grounded Pokemon is multiplied by 1.3 and grounded Pokemon cannot be hit by moves with priority greater than 0, unless the target is an ally. Camouflage transforms the user into a Psychic type, Nature Power becomes Psychic, and Secret Power has a 30% chance to lower the target's Speed by 1 stage. Fails if the current terrain is Psychic Terrain.", - shortDesc: "5 turns. Grounded: +Psychic power, priority-safe.", name: "Psychic Terrain", pp: 10, priority: 0, @@ -14240,8 +13114,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Special", - desc: "Lowers the user's Special Attack by 2 stages.", - shortDesc: "Lowers the user's Sp. Atk by 2.", isNonstandard: "Past", name: "Psycho Boost", pp: 5, @@ -14262,8 +13134,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Psycho Cut", pp: 20, priority: 0, @@ -14279,8 +13149,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "The user's major status condition is transferred to the target, and the user is then cured. Fails if the user has no major status condition or if the target already has one.", - shortDesc: "Transfers the user's status ailment to the target.", name: "Psycho Shift", pp: 10, priority: 0, @@ -14306,8 +13174,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 80, category: "Special", defensiveCategory: "Physical", - desc: "Deals damage to the target based on its Defense instead of Special Defense.", - shortDesc: "Damages target based on Defense, not Sp. Def.", name: "Psyshock", pp: 10, priority: 0, @@ -14323,8 +13189,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 100, category: "Special", defensiveCategory: "Physical", - desc: "Deals damage to the target based on its Defense instead of Special Defense.", - shortDesc: "Damages target based on Defense, not Sp. Def.", name: "Psystrike", pp: 10, priority: 0, @@ -14342,8 +13206,6 @@ export const Moves: {[moveid: string]: MoveData} = { return (this.random(50, 151) * pokemon.level) / 100; }, category: "Special", - desc: "Deals damage to the target equal to (user's level) * (X + 50) / 100, where X is a random number from 0 to 100, rounded down, but not less than 1 HP.", - shortDesc: "Random damage equal to 0.5x-1.5x user's level.", isNonstandard: "Past", name: "Psywave", pp: 15, @@ -14359,7 +13221,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 210, category: "Physical", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Pulverizing Pancake", pp: 1, @@ -14381,8 +13242,6 @@ export const Moves: {[moveid: string]: MoveData} = { return power; }, category: "Physical", - desc: "Power is equal to 60+(X*20), where X is the target's total stat stage changes that are greater than 0, but not more than 200 power.", - shortDesc: "60 power +20 for each of the target's stat boosts.", isNonstandard: "Past", name: "Punishment", pp: 5, @@ -14400,8 +13259,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target is cured if it has a major status condition. If the target was cured, the user restores 1/2 of its maximum HP, rounded half up.", - shortDesc: "Cures target's status; heals user 1/2 max HP if so.", name: "Purify", pp: 20, priority: 0, @@ -14429,8 +13286,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using Parting Shot, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", - shortDesc: "If a foe is switching out, hits it at 2x power.", isNonstandard: "Past", name: "Pursuit", pp: 20, @@ -14490,8 +13345,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 120, category: "Physical", - desc: "Has a 10% chance to burn the target.", - shortDesc: "10% chance to burn the target. Thaws user.", name: "Pyro Ball", pp: 5, priority: 0, @@ -14508,8 +13361,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to take its turn after all other Pokemon this turn, no matter the priority of its selected move. Fails if the target already moved this turn.", - shortDesc: "Forces the target to move last this turn.", name: "Quash", pp: 15, priority: 0, @@ -14533,8 +13384,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Quick Attack", pp: 30, priority: 1, @@ -14549,8 +13398,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - shortDesc: "Protects allies from priority attacks this turn.", name: "Quick Guard", pp: 15, priority: 3, @@ -14598,8 +13445,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Attack, Special Defense, and Speed by 1 stage.", - shortDesc: "Raises the user's Sp. Atk, Sp. Def, Speed by 1.", name: "Quiver Dance", pp: 20, priority: 0, @@ -14620,8 +13465,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 20, category: "Physical", - desc: "Once this move is successfully used, the user's Attack is raised by 1 stage every time it is hit by another Pokemon's attack as long as this move is chosen for use.", - shortDesc: "Raises the user's Attack by 1 if hit during use.", isNonstandard: "Past", name: "Rage", pp: 20, @@ -14655,8 +13498,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double Battle or Battle Royal. This effect is ignored while the user is under the effect of Sky Drop.", - shortDesc: "The foes' moves target the user on the turn used.", name: "Rage Powder", pp: 20, priority: 2, @@ -14693,8 +13534,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the weather becomes Rain Dance. The damage of Water-type attacks is multiplied by 1.5 and the damage of Fire-type attacks is multiplied by 0.5 during the effect. Lasts for 8 turns if the user is holding Damp Rock. Fails if the current weather is Rain Dance.", - shortDesc: "For 5 turns, heavy rain powers Water moves.", name: "Rain Dance", pp: 5, priority: 0, @@ -14711,8 +13550,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "If this move is successful and the user has not fainted, the effects of Leech Seed and binding moves end for the user, and all hazards are removed from the user's side of the field. Has a 100% chance to raise the user's Speed by 1 stage.", - shortDesc: "Free user from hazards/bind/Leech Seed; +1 Spe.", name: "Rapid Spin", pp: 40, priority: 0, @@ -14762,8 +13599,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 55, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio. Hits adjacent foes.", name: "Razor Leaf", pp: 25, priority: 0, @@ -14779,8 +13614,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 75, category: "Physical", - desc: "Has a 50% chance to lower the target's Defense by 1 stage.", - shortDesc: "50% chance to lower the target's Defense by 1.", name: "Razor Shell", pp: 10, priority: 0, @@ -14800,8 +13633,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Charges, then hits foe(s) turn 2. High crit ratio.", isNonstandard: "Past", name: "Razor Wind", pp: 10, @@ -14829,8 +13660,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up.", - shortDesc: "Heals the user by 50% of its max HP.", name: "Recover", pp: 10, priority: 0, @@ -14847,8 +13676,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user regains the item it last used. Fails if the user is holding an item, if the user has not held an item, if the item was a popped Air Balloon, if the item was picked up by a Pokemon with the Pickup Ability, or if the item was lost to Bug Bite, Covet, Incinerate, Knock Off, Pluck, or Thief. Items thrown with Fling can be regained.", - shortDesc: "Restores the item the user last used.", name: "Recycle", pp: 10, priority: 0, @@ -14871,8 +13698,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user and its party members take 0.5x damage from physical attacks, or 0.66x damage if in a Double Battle. Damage is not reduced further with Aurora Veil. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, physical damage to allies is halved.", name: "Reflect", pp: 20, priority: 0, @@ -14914,8 +13739,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Causes the user's types to become the same as the current types of the target. If the target's current types include typeless and a non-added type, typeless is ignored. If the target's current types include typeless and an added type from Forest's Curse or Trick-or-Treat, typeless is copied as the Normal type instead. Fails if the user is an Arceus or a Silvally, or if the target's current type is typeless alone.", - shortDesc: "User becomes the same type as the target.", name: "Reflect Type", pp: 15, priority: 0, @@ -14946,8 +13769,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user cures its burn, poison, or paralysis. Fails if the user is not burned, poisoned, or paralyzed.", - shortDesc: "User cures its burn, poison, or paralysis.", isNonstandard: "Past", name: "Refresh", pp: 20, @@ -14968,8 +13789,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Special", - desc: "Has a 10% chance to cause the target to fall asleep. If this move is successful on at least one target and the user is a Meloetta, it changes to Pirouette Forme if it is currently in Aria Forme, or changes to Aria Forme if it is currently in Pirouette Forme. This forme change does not happen if the Meloetta has the Sheer Force Ability. The Pirouette Forme reverts to Aria Forme when Meloetta is not active.", - shortDesc: "10% chance to sleep foe(s). Meloetta transforms.", isNonstandard: "Past", name: "Relic Song", pp: 10, @@ -14999,8 +13818,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user falls asleep for the next two turns and restores all of its HP, curing itself of any major status condition in the process. Fails if the user has full HP, is already asleep, or if another effect is preventing sleep.", - shortDesc: "User sleeps 2 turns and restores HP and status.", name: "Rest", pp: 10, priority: 0, @@ -15032,8 +13849,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Power doubles if one of the user's party members fainted last turn.", - shortDesc: "Power doubles if an ally fainted last turn.", name: "Retaliate", pp: 5, priority: 0, @@ -15057,8 +13872,6 @@ export const Moves: {[moveid: string]: MoveData} = { return Math.floor((pokemon.happiness * 10) / 25) || 1; }, category: "Physical", - desc: "Power is equal to the greater of (user's Happiness * 2/5), rounded down, or 1.", - shortDesc: "Max 102 power at maximum Happiness.", isNonstandard: "Past", name: "Return", pp: 20, @@ -15076,8 +13889,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "This move's type depends on the user's primary type. If the user's primary type is typeless, this move's type is the user's secondary type if it has one, otherwise the added type from Forest's Curse or Trick-or-Treat. This move is typeless if the user's type is typeless alone.", - shortDesc: "Type varies based on the user's primary type.", isNonstandard: "Past", name: "Revelation Dance", pp: 15, @@ -15108,8 +13919,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the user was hit by the target this turn.", - shortDesc: "Power doubles if user is damaged by the target.", name: "Revenge", pp: 10, priority: -4, @@ -15143,8 +13952,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 20; }, category: "Physical", - desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", - shortDesc: "More power the less HP the user has left.", name: "Reversal", pp: 15, priority: 0, @@ -15160,8 +13967,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "If the current terrain is Electric Terrain and the target is grounded, this move's power is doubled.", - shortDesc: "2x power if target is grounded in Electric Terrain.", name: "Rising Voltage", pp: 20, priority: 0, @@ -15182,8 +13987,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the target used Ingrain previously or has the Suction Cups Ability.", - shortDesc: "Forces the target to switch to a random ally.", name: "Roar", pp: 20, priority: -6, @@ -15200,8 +14003,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", isNonstandard: "Past", name: "Roar of Time", pp: 5, @@ -15220,8 +14021,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 25, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Rock Blast", pp: 10, priority: 0, @@ -15239,8 +14038,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 90, category: "Physical", - desc: "Has a 20% chance to confuse the target.", - shortDesc: "20% chance to confuse the target.", isNonstandard: "Past", name: "Rock Climb", pp: 20, @@ -15259,8 +14056,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Speed by 2 stages.", - shortDesc: "Raises the user's Speed by 2.", name: "Rock Polish", pp: 20, priority: 0, @@ -15279,8 +14074,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 75, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the foe(s).", name: "Rock Slide", pp: 10, priority: 0, @@ -15298,8 +14091,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "Has a 50% chance to lower the target's Defense by 1 stage.", - shortDesc: "50% chance to lower the target's Defense by 1.", name: "Rock Smash", pp: 15, priority: 0, @@ -15319,7 +14110,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 50, category: "Physical", - shortDesc: "No additional effect.", name: "Rock Throw", pp: 15, priority: 0, @@ -15334,8 +14124,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 60, category: "Physical", - desc: "Has a 100% chance to lower the target's Speed by 1 stage.", - shortDesc: "100% chance to lower the target's Speed by 1.", name: "Rock Tomb", pp: 15, priority: 0, @@ -15355,8 +14143,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Physical", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", name: "Rock Wrecker", pp: 5, priority: 0, @@ -15374,8 +14160,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or already matches the target, or if the target's Ability is Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, or Zen Mode.", - shortDesc: "User replaces its Ability with the target's.", name: "Role Play", pp: 10, priority: 0, @@ -15412,8 +14196,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 60, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", isNonstandard: "Past", name: "Rolling Kick", pp: 15, @@ -15444,8 +14226,6 @@ export const Moves: {[moveid: string]: MoveData} = { return bp; }, category: "Physical", - desc: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn. If this move hits an active Disguise during the effect, the power multiplier is paused but the turn counter is not, potentially allowing the multiplier to be used on the user's next move after this effect ends.", - shortDesc: "Power doubles with each hit. Repeats for 5 turns.", name: "Rollout", pp: 20, priority: 0, @@ -15479,8 +14259,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up. Until the end of the turn, Flying-type users lose their Flying type and pure Flying-type users become Normal type. Does nothing if the user's HP is full.", - shortDesc: "Heals 50% HP. Flying-type removed 'til turn ends.", name: "Roost", pp: 10, priority: 0, @@ -15512,8 +14290,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the Attack and Special Attack of all grounded Grass-type Pokemon on the field by 1 stage.", - shortDesc: "Raises Atk/Sp. Atk of grounded Grass types by 1.", isNonstandard: "Past", name: "Rototiller", pp: 10, @@ -15555,8 +14331,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Special", - desc: "If there are other active Pokemon that chose this move for use this turn, those Pokemon take their turn immediately after the user, in Speed order, and this move's power is 120 for each other user.", - shortDesc: "Power doubles if others used Round this turn.", name: "Round", pp: 15, priority: 0, @@ -15583,8 +14357,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Physical", - desc: "Has a 50% chance to burn the target.", - shortDesc: "50% chance to burn the target. Thaws user.", isNonstandard: "Past", name: "Sacred Fire", pp: 5, @@ -15603,8 +14375,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "Ignores the target's stat stage changes, including evasiveness.", - shortDesc: "Ignores the target's stat stage changes.", name: "Sacred Sword", pp: 15, priority: 0, @@ -15621,8 +14391,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the user and its party members cannot have major status conditions or confusion inflicted on them by other Pokemon. It is removed from the user's side if the user or an ally is successfully hit by Defog. Fails if the effect is already active on the user's side.", - shortDesc: "For 5 turns, protects user's party from status.", name: "Safeguard", pp: 25, priority: 0, @@ -15677,8 +14445,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's accuracy by 1 stage.", - shortDesc: "Lowers the target's accuracy by 1.", name: "Sand Attack", pp: 15, priority: 0, @@ -15697,8 +14463,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Magic Guard, Overcoat, Sand Force, Sand Rush, or Sand Veil Abilities. During the effect, the Special Defense of Rock-type Pokemon is multiplied by 1.5 when taking damage from a special attack. Lasts for 8 turns if the user is holding Smooth Rock. Fails if the current weather is Sandstorm.", - shortDesc: "For 5 turns, a sandstorm rages.", name: "Sandstorm", pp: 10, priority: 0, @@ -15715,8 +14479,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 35, category: "Physical", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Sand Tomb", pp: 15, priority: 0, @@ -15732,8 +14494,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 100, category: "Physical", - desc: "This move summons Leech Seed on the foe.", - shortDesc: "Summons Leech Seed.", isNonstandard: "LGPE", name: "Sappy Seed", pp: 10, @@ -15753,7 +14513,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Savage Spin-Out", pp: 1, @@ -15770,8 +14529,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen.", - shortDesc: "30% chance to burn the target. Thaws target.", name: "Scald", pp: 15, priority: 0, @@ -15790,8 +14547,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 25, category: "Physical", - desc: "Hits two to five times. Lowers the user's Defense by 1 stage and raises the user's Speed by 1 stage after the last hit. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times. User: -1 Def, +1 Spe after last hit.", name: "Scale Shot", pp: 20, priority: 0, @@ -15814,8 +14569,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Speed by 2 stages.", - shortDesc: "Lowers the target's Speed by 2.", name: "Scary Face", pp: 10, priority: 0, @@ -15834,8 +14587,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen.", - shortDesc: "30% chance to burn the target. Thaws target.", name: "Scorching Sands", pp: 10, priority: 0, @@ -15853,7 +14604,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - shortDesc: "No additional effect.", name: "Scratch", pp: 35, priority: 0, @@ -15868,8 +14618,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 0, category: "Status", - desc: "Lowers the target's Defense by 2 stages.", - shortDesc: "Lowers the target's Defense by 2.", name: "Screech", pp: 40, priority: 0, @@ -15888,8 +14636,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - desc: "Has a 30% chance to burn the target.", - shortDesc: "30% chance to burn adjacent Pokemon.", isNonstandard: "Past", name: "Searing Shot", pp: 5, @@ -15908,8 +14654,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 200, category: "Physical", - desc: "This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Ignores the Abilities of other Pokemon.", isNonstandard: "Past", name: "Searing Sunraze Smash", pp: 1, @@ -15927,8 +14671,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Causes paralysis on the regular Wi-Fi terrain, causes paralysis during Electric Terrain, lowers Special Attack by 1 stage during Misty Terrain, causes sleep during Grassy Terrain and lowers Speed by 1 stage during Psychic Terrain.", - shortDesc: "Effect varies with terrain. (30% paralysis chance)", isNonstandard: "Past", name: "Secret Power", pp: 20, @@ -15977,8 +14719,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 85, category: "Special", defensiveCategory: "Physical", - desc: "Deals damage to the target based on its Defense instead of Special Defense.", - shortDesc: "Damages target based on Defense, not Sp. Def.", name: "Secret Sword", pp: 10, priority: 0, @@ -15993,7 +14733,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "Seed Bomb", pp: 15, priority: 0, @@ -16008,8 +14747,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 120, category: "Special", - desc: "Has a 40% chance to lower the target's Special Defense by 2 stages.", - shortDesc: "40% chance to lower the target's Sp. Def by 2.", isNonstandard: "Past", name: "Seed Flare", pp: 5, @@ -16031,8 +14768,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 0, damage: 'level', category: "Physical", - desc: "Deals damage to the target equal to the user's level.", - shortDesc: "Does damage equal to the user's level.", name: "Seismic Toss", pp: 20, priority: 0, @@ -16048,8 +14783,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 200, category: "Physical", - desc: "The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Damp Ability.", - shortDesc: "Hits adjacent Pokemon. The user faints.", name: "Self-Destruct", pp: 5, priority: 0, @@ -16065,8 +14798,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 20% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "20% chance to lower the target's Sp. Def by 1.", name: "Shadow Ball", pp: 15, priority: 0, @@ -16086,8 +14817,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Physical", - desc: "Has a 20% chance to lower the target's Defense by 1 stage.", - shortDesc: "20% chance to lower the target's Defense by 1.", name: "Shadow Bone", pp: 10, priority: 0, @@ -16107,8 +14836,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Shadow Claw", pp: 15, priority: 0, @@ -16124,8 +14851,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection.", isNonstandard: "Past", name: "Shadow Force", pp: 5, @@ -16157,7 +14882,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Physical", - shortDesc: "This move does not check accuracy.", name: "Shadow Punch", pp: 20, priority: 0, @@ -16172,8 +14896,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Shadow Sneak", pp: 30, priority: 1, @@ -16188,8 +14910,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 80, category: "Physical", - desc: "Has a 50% chance to lower the target's Defense by 1 stage.", - shortDesc: "50% chance to lower the target's Defense by 1.", isNonstandard: "CAP", name: "Shadow Strike", pp: 10, @@ -16210,8 +14930,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack by 1 stage.", - shortDesc: "Raises the user's Attack by 1.", isNonstandard: "Past", name: "Sharpen", pp: 30, @@ -16231,7 +14949,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Shattered Psyche", pp: 1, @@ -16248,8 +14965,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 30, basePower: 0, category: "Special", - desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + X)%, where X is 30 if the user is an Ice type and 20 otherwise, and fails if the target is at a higher level. Ice-type Pokemon and Pokemon with the Sturdy Ability are immune.", - shortDesc: "OHKOs non-Ice targets. Fails if user's lower level.", name: "Sheer Cold", pp: 5, priority: 0, @@ -16267,8 +14982,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 20% chance to poison the target. This move becomes a physical attack that makes contact if the value of ((((2 * the user's level / 5 + 2) * 90 * X) / Y) / 50), where X is the user's Attack stat and Y is the target's Defense stat, is greater than the same value where X is the user's Special Attack stat and Y is the target's Special Defense stat. No stat modifiers other than stat stage changes are considered for this purpose. If the two values are equal, this move chooses a damage category at random.", - shortDesc: "20% poison. Phys+contact if it would be stronger.", name: "Shell Side Arm", pp: 10, priority: 0, @@ -16303,8 +15016,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Lowers the user's Defense and Special Defense by 1 stage. Raises the user's Attack, Special Attack, and Speed by 2 stages.", - shortDesc: "Lowers Def, SpD by 1; raises Atk, SpA, Spe by 2.", name: "Shell Smash", pp: 15, priority: 0, @@ -16327,8 +15038,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 150, category: "Special", - desc: "Fails unless the user is hit by a physical attack from an opponent this turn before it can execute the move. If the user was hit and has not fainted, it attacks immediately after being hit, and the effect ends. If the opponent's physical attack had a secondary effect removed by the Sheer Force Ability, it does not count for the purposes of this effect.", - shortDesc: "User must take physical damage before moving.", name: "Shell Trap", pp: 5, priority: -3, @@ -16368,8 +15077,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Speed by 2 stages and its Attack by 1 stage.", - shortDesc: "Raises the user's Speed by 2 and Attack by 1.", name: "Shift Gear", pp: 10, priority: 0, @@ -16389,7 +15096,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Special", - shortDesc: "This move does not check accuracy.", name: "Shock Wave", pp: 20, priority: 0, @@ -16404,8 +15110,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half down. If the weather is Sandstorm, the user instead restores 2/3 of its maximum HP, rounded half down.", - shortDesc: "User restores 1/2 its max HP; 2/3 in Sandstorm.", name: "Shore Up", pp: 10, priority: 0, @@ -16428,8 +15132,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Special", - desc: "Has a 10% chance to confuse the target.", - shortDesc: "10% chance to confuse the target.", isNonstandard: "Past", name: "Signal Beam", pp: 15, @@ -16448,8 +15150,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "Has a 10% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", - shortDesc: "10% chance to raise all stats by 1 (not acc/eva).", isNonstandard: "Past", name: "Silver Wind", pp: 5, @@ -16476,8 +15176,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Simple, Stance Change, Truant, or Zen Mode.", - shortDesc: "The target's Ability becomes Simple.", name: "Simple Beam", pp: 15, priority: 0, @@ -16509,7 +15207,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 55, basePower: 0, category: "Status", - shortDesc: "Causes the target to fall asleep.", name: "Sing", pp: 15, priority: 0, @@ -16526,7 +15223,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 180, category: "Physical", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Sinister Arrow Raid", pp: 1, @@ -16543,8 +15239,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "Has a 100% chance to burn the foe.", - shortDesc: "100% chance to burn the foe.", isNonstandard: "LGPE", name: "Sizzly Slide", pp: 20, @@ -16563,8 +15257,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Chatter, Sketch, Struggle, or any move the user knows.", - shortDesc: "Permanently copies the last move target used.", isNonstandard: "Past", name: "Sketch", pp: 1, @@ -16602,8 +15294,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Battle Bond, Comatose, Disguise, Gulp Missile, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode.", - shortDesc: "The user and the target trade Abilities.", name: "Skill Swap", pp: 10, priority: 0, @@ -16649,8 +15339,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 70, category: "Physical", - desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "100% chance to lower target's Sp. Atk by 1.", name: "Skitter Smack", pp: 10, priority: 0, @@ -16669,8 +15357,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 130, category: "Physical", - desc: "This attack charges on the first turn and executes on the second. Raises the user's Defense by 1 stage on the first turn. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Raises user's Defense by 1 on turn 1. Hits turn 2.", name: "Skull Bash", pp: 10, priority: 0, @@ -16697,8 +15383,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Physical", - desc: "Has a 30% chance to flinch the target and a higher chance for a critical hit. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", - shortDesc: "Charges, then hits turn 2. 30% flinch. High crit.", name: "Sky Attack", pp: 5, priority: 0, @@ -16728,8 +15412,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "This attack takes the target into the air with the user on the first turn and executes on the second. Pokemon weighing 200 kg or more cannot be lifted. On the first turn, the user and the target avoid all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister. The user and the target cannot make a move between turns, but the target can select a move to use. This move cannot damage Flying-type Pokemon. Fails on the first turn if the target is an ally, if the target has a substitute, or if the target is using Bounce, Dig, Dive, Fly, Phantom Force, Shadow Force, or Sky Drop.", - shortDesc: "User and foe fly up turn 1. Damages on turn 2.", isNonstandard: "Past", name: "Sky Drop", pp: 10, @@ -16837,8 +15519,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 85, category: "Physical", - desc: "This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop.", - shortDesc: "Can hit Pokemon using Bounce, Fly, or Sky Drop.", isNonstandard: "Past", name: "Sky Uppercut", pp: 15, @@ -16854,8 +15534,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up.", - shortDesc: "Heals the user by 50% of its max HP.", name: "Slack Off", pp: 10, priority: 0, @@ -16872,7 +15550,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "Slam", pp: 20, priority: 0, @@ -16887,8 +15564,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Slash", pp: 20, priority: 0, @@ -16904,7 +15579,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 0, category: "Status", - shortDesc: "Causes the target to fall asleep.", name: "Sleep Powder", pp: 15, priority: 0, @@ -16921,8 +15595,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Beak Blast, Belch, Bide, Celebrate, Chatter, Copycat, Dynamax Cannon, Focus Punch, Hold Hands, Me First, Metronome, Mimic, Mirror Move, Nature Power, Shell Trap, Sketch, Sleep Talk, Struggle, Uproar, any two-turn move, or any Max Move.", - shortDesc: "User must be asleep. Uses another known move.", name: "Sleep Talk", pp: 10, priority: 0, @@ -16963,8 +15635,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Has a 30% chance to poison the target.", - shortDesc: "30% chance to poison the target.", name: "Sludge", pp: 20, priority: 0, @@ -16982,8 +15652,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 30% chance to poison the target.", - shortDesc: "30% chance to poison the target.", name: "Sludge Bomb", pp: 10, priority: 0, @@ -17001,8 +15669,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 95, category: "Special", - desc: "Has a 10% chance to poison the target.", - shortDesc: "10% chance to poison adjacent Pokemon.", name: "Sludge Wave", pp: 10, priority: 0, @@ -17020,8 +15686,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Physical", - desc: "This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If this move hits a target under the effect of Bounce, Fly, Magnet Rise, or Telekinesis, the effect ends. If the target is a Flying type that has not used Roost this turn or a Pokemon with the Levitate Ability, it loses its immunity to Ground-type attacks and the Arena Trap Ability as long as it remains active. During the effect, Magnet Rise fails for the target and Telekinesis fails against the target.", - shortDesc: "Removes the target's Ground immunity.", name: "Smack Down", pp: 15, priority: 0, @@ -17068,7 +15732,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 70, category: "Physical", - shortDesc: "This move does not check accuracy.", name: "Smart Strike", pp: 10, priority: 0, @@ -17087,8 +15750,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the target is paralyzed. If the user has not fainted, the target is cured of paralysis.", - shortDesc: "Power doubles if target is paralyzed, and cures it.", isNonstandard: "Past", name: "Smelling Salts", pp: 10, @@ -17107,8 +15768,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 70, basePower: 30, category: "Special", - desc: "Has a 40% chance to poison the target.", - shortDesc: "40% chance to poison the target.", name: "Smog", pp: 20, priority: 0, @@ -17126,8 +15785,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's accuracy by 1 stage.", - shortDesc: "Lowers the target's accuracy by 1.", name: "Smokescreen", pp: 20, priority: 0, @@ -17146,8 +15803,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 35, category: "Physical", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Snap Trap", pp: 15, priority: 0, @@ -17162,8 +15817,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 55, category: "Special", - desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "100% chance to lower the foe(s) Sp. Atk by 1.", name: "Snarl", pp: 15, priority: 0, @@ -17183,8 +15836,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "If another Pokemon uses certain non-damaging moves this turn, the user steals that move to use itself. If multiple Pokemon use one of those moves this turn, the applicable moves are all stolen by the first Pokemon in turn order that used this move this turn. This effect is ignored while the user is under the effect of Sky Drop.", - shortDesc: "User steals certain support moves to use itself.", isNonstandard: "Past", name: "Snatch", pp: 10, @@ -17220,8 +15871,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a higher chance for a critical hit. This move cannot be redirected to a different target by any effect.", - shortDesc: "High critical hit ratio. Cannot be redirected.", name: "Snipe Shot", pp: 15, priority: 0, @@ -17237,8 +15886,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Special", - desc: "Has a 30% chance to flinch the target. Fails if the user is not asleep.", - shortDesc: "User must be asleep. 30% chance to flinch target.", name: "Snore", pp: 15, priority: 0, @@ -17260,8 +15907,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to become a Water type. Fails if the target is an Arceus or a Silvally, or if the target is already purely Water type.", - shortDesc: "Changes the target's type to Water.", name: "Soak", pp: 20, priority: 0, @@ -17286,8 +15931,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up.", - shortDesc: "Heals the user by 50% of its max HP.", name: "Soft-Boiled", pp: 10, priority: 0, @@ -17304,8 +15947,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Special", - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Desolate Land or Sunny Day, the move still requires a turn to charge.", - shortDesc: "Charges turn 1. Hits turn 2. No charge in sunlight.", name: "Solar Beam", pp: 10, priority: 0, @@ -17342,8 +15983,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 125, category: "Physical", - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Desolate Land or Sunny Day, the move still requires a turn to charge.", - shortDesc: "Charges turn 1. Hits turn 2. No charge in sunlight.", name: "Solar Blade", pp: 10, priority: 0, @@ -17381,8 +16020,6 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 0, damage: 20, category: "Special", - desc: "Deals 20 HP of damage to the target.", - shortDesc: "Always does 20 HP of damage.", isNonstandard: "Past", name: "Sonic Boom", pp: 20, @@ -17398,7 +16035,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 195, category: "Physical", - shortDesc: "No additional effect.", isNonstandard: "Past", name: "Soul-Stealing 7-Star Strike", pp: 1, @@ -17415,8 +16051,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Special", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", isNonstandard: "Past", name: "Spacial Rend", pp: 5, @@ -17433,8 +16067,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Physical", - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze the target.", name: "Spark", pp: 20, priority: 0, @@ -17452,8 +16084,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "If the user has not fainted, the target is cured of its burn.", - shortDesc: "The target is cured of its burn.", name: "Sparkling Aria", pp: 10, priority: 0, @@ -17474,8 +16104,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 120, category: "Special", - desc: "Every Pokemon in the user's party is cured of its major status condition.", - shortDesc: "Cures the user's party of all status conditions.", isNonstandard: "LGPE", name: "Sparkly Swirl", pp: 5, @@ -17502,8 +16130,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "The target's stat stages greater than 0 are stolen from it and applied to the user before dealing damage.", - shortDesc: "Steals target's boosts before dealing damage.", name: "Spectral Thief", pp: 10, priority: 0, @@ -17520,8 +16146,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user swaps its Speed stat with the target. Stat stage changes are unaffected.", - shortDesc: "Swaps Speed stat with target.", name: "Speed Swap", pp: 10, priority: 0, @@ -17543,8 +16167,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Prevents the target from switching out.", isNonstandard: "Past", name: "Spider Web", pp: 10, @@ -17564,8 +16186,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 20, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", isNonstandard: "Past", name: "Spike Cannon", pp: 15, @@ -17583,8 +16203,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", - shortDesc: "Hurts grounded foes on switch-in. Max 3 layers.", name: "Spikes", pp: 20, priority: 0, @@ -17619,8 +16237,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", - shortDesc: "Protects from moves. Contact: loses 1/8 max HP.", name: "Spiky Shield", pp: 10, priority: 4, @@ -17678,8 +16294,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "100% chance to lower the target's Sp. Atk by 1.", name: "Spirit Break", pp: 10, priority: 0, @@ -17698,8 +16312,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Prevents the target from switching out.", name: "Spirit Shackle", pp: 10, priority: 0, @@ -17723,8 +16335,6 @@ export const Moves: {[moveid: string]: MoveData} = { return pokemon.volatiles['stockpile'].layers * 100; }, category: "Special", - desc: "Power is equal to 100 times the user's Stockpile count. Fails if the user's Stockpile count is 0. Whether or not this move is successful, the user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", - shortDesc: "More power with more uses of Stockpile.", name: "Spit Up", pp: 10, priority: 0, @@ -17747,8 +16357,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target's last move used to lose 4 PP. Fails if the target has not made a move, if the move has 0 PP, or if it no longer knows the move.", - shortDesc: "Lowers the PP of the target's last move by 4.", name: "Spite", pp: 10, priority: 0, @@ -17773,7 +16381,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "No competitive use.", name: "Splash", pp: 40, priority: 0, @@ -17792,8 +16399,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 190, category: "Physical", - desc: "Ends the effects of Electric Terrain, Grassy Terrain, Misty Terrain, and Psychic Terrain.", - shortDesc: "Ends the effects of terrain.", isNonstandard: "Past", name: "Splintered Stormshards", pp: 1, @@ -17813,8 +16418,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze the target.", isNonstandard: "LGPE", name: "Splishy Splash", pp: 15, @@ -17833,7 +16436,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Causes the target to fall asleep.", name: "Spore", pp: 15, priority: 0, @@ -17850,8 +16452,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Until the end of the turn, all single-target attacks from opponents of the target are redirected to the target. Such attacks are redirected to the target before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double Battle or Battle Royal.", - shortDesc: "Target's foes' moves are redirected to it this turn.", name: "Spotlight", pp: 15, priority: 3, @@ -17884,8 +16484,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", - shortDesc: "Hurts foes on switch-in. Factors Rock weakness.", name: "Stealth Rock", pp: 20, priority: 0, @@ -17913,8 +16511,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 110, category: "Special", - desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen.", - shortDesc: "30% chance to burn the target. Thaws target.", isNonstandard: "Past", name: "Steam Eruption", pp: 5, @@ -17934,8 +16530,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Physical", - desc: "Has a 30% chance to flinch the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "30% chance to flinch the target.", isNonstandard: "Past", name: "Steamroller", pp: 20, @@ -17954,8 +16548,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 140, category: "Special", - desc: "Whether or not this move is successful and even if it would cause fainting, the user loses 1/2 of its maximum HP, rounded up, unless the user has the Magic Guard Ability.", - shortDesc: "User loses 50% max HP.", name: "Steel Beam", pp: 5, priority: 0, @@ -17975,8 +16567,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 130, category: "Physical", - desc: "Fails if there is no terrain active. Ends the effects of Electric Terrain, Grassy Terrain, Misty Terrain, and Psychic Terrain.", - shortDesc: "Ends the effects of terrain; fails if none is active.", name: "Steel Roller", pp: 5, priority: 0, @@ -17996,8 +16586,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 70, category: "Physical", - desc: "Has a 10% chance to raise the user's Defense by 1 stage.", - shortDesc: "10% chance to raise the user's Defense by 1.", name: "Steel Wing", pp: 25, priority: 0, @@ -18019,8 +16607,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Sets up a hazard on the opposing side of the field, lowering the Speed by 1 stage of each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", - shortDesc: "Lowers Speed of grounded foes by 1 on switch-in.", name: "Sticky Web", pp: 20, priority: 0, @@ -18048,8 +16634,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense and Special Defense by 1 stage. The user's Stockpile count increases by 1. Fails if the user's Stockpile count is 3. The user's Stockpile count is reset to 0 when it is no longer active.", - shortDesc: "Raises user's Defense, Sp. Def by 1. Max 3 uses.", name: "Stockpile", pp: 20, priority: 0, @@ -18104,8 +16688,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 175, category: "Special", - desc: "Has a 100% chance to paralyze the target.", - shortDesc: "100% chance to paralyze the target.", isNonstandard: "Past", name: "Stoked Sparksurfer", pp: 1, @@ -18125,8 +16707,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Physical", - desc: "Has a 30% chance to flinch the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", - shortDesc: "30% chance to flinch the target.", name: "Stomp", pp: 20, priority: 0, @@ -18148,8 +16728,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the user's last move on the previous turn, including moves called by other moves or those used through Instruct, Magic Coat, Snatch, or the Dancer or Magic Bounce Abilities, failed to do any of its normal effects, not including damage from an unsuccessful High Jump Kick, Jump Kick, or Mind Blown, or if the user was prevented from moving by any effect other than recharging or Sky Drop. A move that was blocked by Baneful Bunker, Detect, King's Shield, Protect, Spiky Shield, Crafty Shield, Mat Block, Quick Guard, or Wide Guard will not double this move's power, nor will Bounce or Fly ending early due to the effect of Gravity, Smack Down, or Thousand Arrows.", - shortDesc: "Power doubles if the user's last move failed.", name: "Stomping Tantrum", pp: 10, priority: 0, @@ -18164,8 +16742,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 100, category: "Physical", - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", name: "Stone Edge", pp: 5, priority: 0, @@ -18184,8 +16760,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower + 20 * pokemon.positiveBoosts(); }, category: "Special", - desc: "Power is equal to 20+(X*20), where X is the user's total stat stage changes that are greater than 0.", - shortDesc: " + 20 power for each of the user's stat boosts.", name: "Stored Power", pp: 10, priority: 0, @@ -18202,8 +16776,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", - shortDesc: "Always results in a critical hit.", name: "Storm Throw", pp: 10, priority: 0, @@ -18219,8 +16791,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 90, category: "Special", - desc: "Has a 20% chance to confuse the target.", - shortDesc: "20% chance to confuse the target.", name: "Strange Steam", pp: 10, priority: 0, @@ -18237,7 +16807,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "Strength", pp: 15, priority: 0, @@ -18252,8 +16821,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack by 1 stage. The user restores its HP equal to the target's Attack stat calculated with its stat stage before this move was used. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. Fails if the target's Attack stat stage is -6.", - shortDesc: "User heals HP=target's Atk stat. Lowers Atk by 1.", name: "Strength Sap", pp: 10, priority: 0, @@ -18275,8 +16842,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 0, category: "Status", - desc: "Lowers the target's Speed by 2 stages.", - shortDesc: "Lowers the foe(s) Speed by 2.", name: "String Shot", pp: 40, priority: 0, @@ -18295,8 +16860,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 50, category: "Physical", - desc: "Deals typeless damage to a random opposing Pokemon. If this move was successful, the user loses 1/4 of its maximum HP, rounded half up, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", - shortDesc: "User loses 1/4 of its max HP.", name: "Struggle", pp: 1, noPPBoosts: true, @@ -18318,8 +16881,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Special", - desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", - shortDesc: "100% chance to lower the foe(s) Sp. Atk by 1.", name: "Struggle Bug", pp: 20, priority: 0, @@ -18339,8 +16900,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "This move cannot be selected unless the user is holding a Berry. The user eats its Berry and raises its Defense by 2 stages. This effect is not prevented by the Klutz or Unnerve Abilities, or the effects of Embargo or Magic Room. Fails if the user is not holding a Berry.", - shortDesc: "Must hold Berry to use. User eats Berry, Def +2.", name: "Stuff Cheeks", pp: 10, priority: 0, @@ -18363,8 +16922,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 0, category: "Status", - desc: "Paralyzes the target.", - shortDesc: "Paralyzes the target.", name: "Stun Spore", pp: 30, priority: 0, @@ -18381,8 +16938,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 80, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 1/4 recoil.", name: "Submission", pp: 20, priority: 0, @@ -18398,8 +16953,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. Sound-based moves and Pokemon with the Infiltrator Ability ignore substitutes. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", - shortDesc: "User takes 1/4 its max HP to put in a substitute.", name: "Substitute", pp: 10, priority: 0, @@ -18477,7 +17030,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Subzero Slammer", pp: 1, @@ -18494,8 +17046,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Fails if the target did not select a physical attack, special attack, or Me First for use this turn, or if the target moves before the user.", - shortDesc: "Usually goes first. Fails if target is not attacking.", name: "Sucker Punch", pp: 5, priority: 1, @@ -18519,8 +17069,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the weather becomes Sunny Day. The damage of Fire-type attacks is multiplied by 1.5 and the damage of Water-type attacks is multiplied by 0.5 during the effect. Lasts for 8 turns if the user is holding Heat Rock. Fails if the current weather is Sunny Day.", - shortDesc: "For 5 turns, intense sunlight powers Fire moves.", name: "Sunny Day", pp: 5, priority: 0, @@ -18537,8 +17085,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - desc: "This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Ignores the Abilities of other Pokemon.", name: "Sunsteel Strike", pp: 5, priority: 0, @@ -18557,8 +17103,6 @@ export const Moves: {[moveid: string]: MoveData} = { return this.clampIntRange(target.getUndynamaxedHP() / 2, 1); }, category: "Physical", - desc: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP.", - shortDesc: "Does damage equal to 1/2 target's current HP.", name: "Super Fang", pp: 10, priority: 0, @@ -18573,8 +17117,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "Lowers the user's Attack and Defense by 1 stage.", - shortDesc: "Lowers the user's Attack and Defense by 1.", name: "Superpower", pp: 5, priority: 0, @@ -18595,7 +17137,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 55, basePower: 0, category: "Status", - shortDesc: "Causes the target to become confused.", name: "Supersonic", pp: 20, priority: 0, @@ -18612,7 +17153,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Supersonic Skystrike", pp: 1, @@ -18629,8 +17169,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Damage doubles if the target is using Dive.", - shortDesc: "Hits adjacent Pokemon. Double damage on Dive.", name: "Surf", pp: 15, priority: 0, @@ -18645,8 +17183,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 25, category: "Physical", - desc: "Hits three times. This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", - shortDesc: "Always results in a critical hit. Hits 3 times.", name: "Surging Strikes", pp: 5, priority: 0, @@ -18664,8 +17200,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 0, category: "Status", - desc: "Raises the target's Attack by 2 stages and confuses it.", - shortDesc: "Raises the target's Attack by 2 and confuses it.", name: "Swagger", pp: 15, priority: 0, @@ -18685,8 +17219,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores its HP based on its Stockpile count. Restores 1/4 of its maximum HP if it's 1, 1/2 of its maximum HP if it's 2, both rounded half down, and all of its HP if it's 3. Fails if the user's Stockpile count is 0. The user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", - shortDesc: "Heals the user based on uses of Stockpile.", name: "Swallow", pp: 10, priority: 0, @@ -18711,7 +17243,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 75, basePower: 0, category: "Status", - shortDesc: "Causes the target to become confused.", name: "Sweet Kiss", pp: 10, priority: 0, @@ -18728,8 +17259,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's evasiveness by 2 stages.", - shortDesc: "Lowers the foe(s) evasiveness by 2.", name: "Sweet Scent", pp: 20, priority: 0, @@ -18748,8 +17277,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 60, category: "Special", - desc: "This move does not check accuracy.", - shortDesc: "This move does not check accuracy. Hits foes.", name: "Swift", pp: 20, priority: 0, @@ -18764,8 +17291,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Z-Crystal, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, a Drive, or a Memory to or from a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, or a Silvally, respectively. The target is immune to this move if it has the Sticky Hold Ability.", - shortDesc: "User switches its held item with the target's.", name: "Switcheroo", pp: 10, priority: 0, @@ -18814,8 +17339,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack by 2 stages.", - shortDesc: "Raises the user's Attack by 2.", name: "Swords Dance", pp: 20, priority: 0, @@ -18834,8 +17357,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Special", - desc: "The target is immune if it does not share a type with the user.", - shortDesc: "Hits adjacent Pokemon sharing the user's type.", isNonstandard: "Past", name: "Synchronoise", pp: 10, @@ -18854,8 +17375,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - shortDesc: "Heals the user by a weather-dependent amount.", name: "Synthesis", pp: 5, priority: 0, @@ -18887,7 +17406,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", - shortDesc: "No additional effect.", name: "Tackle", pp: 35, priority: 0, @@ -18902,8 +17420,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Special Attack by 3 stages.", - shortDesc: "Raises the user's Sp. Atk by 3.", isNonstandard: "Past", name: "Tail Glow", pp: 20, @@ -18923,8 +17439,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 25, category: "Physical", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", - shortDesc: "Hits 2-5 times in one turn.", name: "Tail Slap", pp: 10, priority: 0, @@ -18942,8 +17456,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Defense by 1 stage.", - shortDesc: "Lowers the foe(s) Defense by 1.", name: "Tail Whip", pp: 30, priority: 0, @@ -18962,8 +17474,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 4 turns, the user and its party members have their Speed doubled. Fails if this move is already in effect for the user's side.", - shortDesc: "For 4 turns, allies' Speed is doubled.", name: "Tailwind", pp: 15, priority: 0, @@ -19001,8 +17511,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 90, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 1/4 recoil.", name: "Take Down", pp: 20, priority: 0, @@ -19018,8 +17526,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Speed by 1 stage. Until the target switches out, the effectiveness of Fire-type moves is doubled against it.", - shortDesc: "Target gets -1 Spe and becomes weaker to Fire.", name: "Tar Shot", pp: 20, priority: 0, @@ -19049,8 +17555,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Prevents the target from using non-damaging moves for its next three turns. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune.", - shortDesc: "Target can't use status moves its next 3 turns.", name: "Taunt", pp: 20, priority: 0, @@ -19095,8 +17599,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Lowers the target's Attack and Special Attack by 1 stage.", - shortDesc: "Lowers the target's Attack and Sp. Atk by 1.", name: "Tearful Look", pp: 20, priority: 0, @@ -19116,8 +17618,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "All active Pokemon consume their held Berries. This effect is not prevented by substitutes, the Klutz or Unnerve Abilities, or the effects of Embargo or Magic Room. Fails if no active Pokemon is holding a Berry.", - shortDesc: "All active Pokemon consume held Berries.", name: "Teatime", pp: 10, priority: 0, @@ -19148,8 +17648,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Special", - desc: "This move's type depends on the user's held Drive.", - shortDesc: "Type varies based on the held Drive.", isNonstandard: "Past", name: "Techno Blast", pp: 5, @@ -19169,7 +17667,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Tectonic Rage", pp: 1, @@ -19186,8 +17683,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target to become confused.", - shortDesc: "Confuses adjacent Pokemon.", name: "Teeter Dance", pp: 20, priority: 0, @@ -19204,8 +17699,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 3 turns, the target cannot avoid any attacks made against it, other than OHKO moves, as long as it remains active. During the effect, the target is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability as long as it remains active. If the target uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, Thousand Arrows, and Iron Ball override this move if the target is under any of their effects. Fails if the target is already under this effect or the effects of Ingrain, Smack Down, or Thousand Arrows. The target is immune to this move on use if its species is Diglett, Dugtrio, Alolan Diglett, Alolan Dugtrio, Sandygast, Palossand, or Gengar while Mega-Evolved. Mega Gengar cannot be under this effect by any means.", - shortDesc: "For 3 turns, target floats but moves can't miss it.", isNonstandard: "Past", name: "Telekinesis", pp: 15, @@ -19252,8 +17745,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", - shortDesc: "User switches out.", name: "Teleport", pp: 20, priority: -6, @@ -19271,8 +17762,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Special", - desc: "Power doubles if the user is grounded and a terrain is active, and this move's type changes to match. Electric type during Electric Terrain, Grass type during Grassy Terrain, Fairy type during Misty Terrain, and Psychic type during Psychic Terrain.", - shortDesc: "User on terrain: power doubles, type varies.", name: "Terrain Pulse", pp: 10, priority: 0, @@ -19310,8 +17799,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Z-Crystal, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Silvally holding a Memory, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", - shortDesc: "If the user has no item, it steals the target's.", name: "Thief", pp: 25, priority: 0, @@ -19342,8 +17829,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "This move can hit airborne Pokemon, which includes Flying-type Pokemon, Pokemon with the Levitate Ability, Pokemon holding an Air Balloon, and Pokemon under the effect of Magnet Rise or Telekinesis. If the target is a Flying type and is not already grounded, this move deals neutral damage regardless of its other type(s). This move can hit a target using Bounce, Fly, or Sky Drop. If this move hits a target under the effect of Bounce, Fly, Magnet Rise, or Telekinesis, the effect ends. If the target is a Flying type that has not used Roost this turn or a Pokemon with the Levitate Ability, it loses its immunity to Ground-type attacks and the Arena Trap Ability as long as it remains active. During the effect, Magnet Rise fails for the target and Telekinesis fails against the target.", - shortDesc: "Grounds adjacent foes. First hit neutral on Flying.", isNonstandard: "Past", name: "Thousand Arrows", pp: 10, @@ -19370,8 +17855,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Hits adjacent foes. Prevents them from switching.", isNonstandard: "Past", name: "Thousand Waves", pp: 10, @@ -19390,8 +17873,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk and the user is asleep, the move is used for one turn and does not confuse the user.", - shortDesc: "Lasts 2-3 turns. Confuses the user afterwards.", name: "Thrash", pp: 10, priority: 0, @@ -19414,8 +17895,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "For 2 turns, the target cannot use sound-based moves.", - shortDesc: "For 2 turns, the target cannot use sound moves.", name: "Throat Chop", pp: 15, priority: 0, @@ -19459,8 +17938,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 70, basePower: 110, category: "Special", - desc: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 70%.", - shortDesc: "30% chance to paralyze. Can't miss in rain.", name: "Thunder", pp: 10, priority: 0, @@ -19490,8 +17967,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "Has a 10% chance to paralyze the target.", - shortDesc: "10% chance to paralyze the target.", name: "Thunderbolt", pp: 15, priority: 0, @@ -19509,8 +17984,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 65, category: "Physical", - desc: "Has a 10% chance to paralyze the target and a 10% chance to flinch it.", - shortDesc: "10% chance to paralyze. 10% chance to flinch.", name: "Thunder Fang", pp: 15, priority: 0, @@ -19533,8 +18006,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 75, category: "Physical", - desc: "Has a 10% chance to paralyze the target.", - shortDesc: "10% chance to paralyze the target.", name: "Thunder Punch", pp: 15, priority: 0, @@ -19552,8 +18023,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 10% chance to paralyze the target.", - shortDesc: "10% chance to paralyze the target.", name: "Thunder Shock", pp: 30, priority: 0, @@ -19571,8 +18040,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 0, category: "Status", - desc: "Paralyzes the target. This move does not ignore type immunity.", - shortDesc: "Paralyzes the target.", name: "Thunder Wave", pp: 20, priority: 0, @@ -19590,8 +18057,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack and Defense by 1 stage.", - shortDesc: "Lowers the target's Attack and Defense by 1.", name: "Tickle", pp: 20, priority: 0, @@ -19611,8 +18076,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target's positive stat stages become negative and vice versa. Fails if all of the target's stat stages are 0.", - shortDesc: "Inverts the target's stat stages.", name: "Topsy-Turvy", pp: 20, priority: 0, @@ -19639,8 +18102,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Prevents the target from selecting the same move for use two turns in a row. This effect ends when the target is no longer active.", - shortDesc: "Target can't select the same move twice in a row.", name: "Torment", pp: 15, priority: 0, @@ -19673,8 +18134,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 0, category: "Status", - desc: "Badly poisons the target. If a Poison-type Pokemon uses this move, the target cannot avoid the attack, even if the target is in the middle of a two-turn move.", - shortDesc: "Badly poisons the target. Poison types can't miss.", name: "Toxic", pp: 10, priority: 0, @@ -19692,8 +18151,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", - shortDesc: "Poisons grounded foes on switch-in. Max 2 layers.", name: "Toxic Spikes", pp: 20, priority: 0, @@ -19735,8 +18192,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Speed by 1 stage and poisons it.", - shortDesc: "Lowers the target's Speed by 1 and poisons it.", isNonstandard: "Past", name: "Toxic Thread", pp: 20, @@ -19757,8 +18212,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user transforms into the target. The target's current stats, stat stages, types, moves, Ability, weight, gender, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP, with a maximum of 5 PP each. The user can no longer change formes if it would have the ability to do so. This move fails if it hits a substitute, if either the user or the target is already transformed, or if either is behind an Illusion.", - shortDesc: "Copies target's stats, moves, types, and Ability.", name: "Transform", pp: 10, priority: 0, @@ -19779,8 +18232,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - desc: "Has a 20% chance to either burn, freeze, or paralyze the target.", - shortDesc: "20% chance to paralyze or burn or freeze target.", name: "Tri Attack", pp: 10, priority: 0, @@ -19807,8 +18258,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Z-Crystal, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, a Drive, or a Memory to or from a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, or a Silvally, respectively. The target is immune to this move if it has the Sticky Hold Ability.", - shortDesc: "User switches its held item with the target's.", name: "Trick", pp: 10, priority: 0, @@ -19857,8 +18306,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the Ghost type to be added to the target, effectively making it have two or three types. Fails if the target is already a Ghost type. If Forest's Curse adds a type to the target, it replaces the type added by this move and vice versa.", - shortDesc: "Adds Ghost to the target's type(s).", name: "Trick-or-Treat", pp: 20, priority: 0, @@ -19887,8 +18334,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, the Speed of every Pokemon is recalculated for the purposes of determining turn order. During the effect, each Pokemon's Speed is considered to be (10000 - its normal Speed), and if this value is greater than 8191, 8192 is subtracted from it. If this move is used during the effect, the effect ends.", - shortDesc: "Goes last. For 5 turns, turn order is reversed.", name: "Trick Room", pp: 5, priority: -7, @@ -19929,8 +18374,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 20 * move.hit; }, category: "Physical", - desc: "Hits three times. Power increases to 40 for the second hit and 60 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit three times.", - shortDesc: "Hits 3 times. Each hit can miss, but power rises.", name: "Triple Axel", pp: 10, priority: 0, @@ -19951,8 +18394,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 10 * move.hit; }, category: "Physical", - desc: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit three times.", - shortDesc: "Hits 3 times. Each hit can miss, but power rises.", name: "Triple Kick", pp: 10, priority: 0, @@ -19971,8 +18412,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "Has a 100% chance to lower the target's Attack by 1 stage.", - shortDesc: "100% chance to lower the target's Attack by 1.", name: "Trop Kick", pp: 15, priority: 0, @@ -20009,8 +18448,6 @@ export const Moves: {[moveid: string]: MoveData} = { } }, category: "Special", - desc: "The power of this move is based on the amount of PP remaining after normal PP reduction and the Pressure Ability resolve. 200 power for 0 PP, 80 power for 1 PP, 60 power for 2 PP, 50 power for 3 PP, and 40 power for 4 or more PP.", - shortDesc: "More power the fewer PP this move has left.", isNonstandard: "Past", name: "Trump Card", pp: 5, @@ -20029,8 +18466,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 25, category: "Physical", - desc: "Hits twice, with each hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times. Each hit has 20% chance to poison.", isNonstandard: "Past", name: "Twineedle", pp: 20, @@ -20051,7 +18486,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 1, category: "Physical", - shortDesc: "Power is equal to the base move's Z-Power.", isNonstandard: "Past", name: "Twinkle Tackle", pp: 1, @@ -20068,8 +18502,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "Has a 20% chance to flinch the target. Power doubles if the target is using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop.", - shortDesc: "20% chance to flinch the foe(s).", name: "Twister", pp: 20, priority: 0, @@ -20087,8 +18519,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Physical", - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", - shortDesc: "User switches out after damaging the target.", name: "U-turn", pp: 20, priority: 0, @@ -20104,8 +18534,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - desc: "The user spends three turns locked into this move. This move targets an opponent at random on each turn. On the first of the three turns, all sleeping active Pokemon wake up. During the three turns, no active Pokemon can fall asleep by any means, and Pokemon switched in during the effect do not wake up. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", - shortDesc: "Lasts 3 turns. Active Pokemon cannot fall asleep.", name: "Uproar", pp: 10, priority: 0, @@ -20157,8 +18585,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - desc: "No additional effect.", - shortDesc: "Usually goes first.", name: "Vacuum Wave", pp: 30, priority: 1, @@ -20173,8 +18599,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 180, category: "Physical", - desc: "Lowers the user's Speed, Defense, and Special Defense by 1 stage.", - shortDesc: "Lowers the user's Defense, Sp. Def, Speed by 1.", name: "V-create", pp: 5, priority: 0, @@ -20200,8 +18624,6 @@ export const Moves: {[moveid: string]: MoveData} = { return Math.floor((pokemon.happiness * 10) / 25) || 1; }, category: "Physical", - desc: "Power is equal to the greater of (user's Happiness * 2/5), rounded down, or 1.", - shortDesc: "Max happiness: 102 power. Can't miss.", isNonstandard: "LGPE", name: "Veevee Volley", pp: 20, @@ -20217,8 +18639,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Lowers the target's Attack, Special Attack, and Speed by 1 stage if the target is poisoned. Fails if the target is not poisoned.", - shortDesc: "Lowers Atk/Sp. Atk/Speed of poisoned foes by 1.", name: "Venom Drench", pp: 20, priority: 0, @@ -20240,8 +18660,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 65, category: "Special", - desc: "Power doubles if the target is poisoned.", - shortDesc: "Power doubles if the target is poisoned.", name: "Venoshock", pp: 10, priority: 0, @@ -20261,7 +18679,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 45, category: "Physical", - shortDesc: "No additional effect.", name: "Vine Whip", pp: 25, priority: 0, @@ -20276,7 +18693,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 55, category: "Physical", - shortDesc: "No additional effect.", name: "Vise Grip", pp: 30, priority: 0, @@ -20291,8 +18707,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 70, category: "Physical", - desc: "This move does not check accuracy.", - shortDesc: "This move does not check accuracy. Goes last.", name: "Vital Throw", pp: 10, priority: -1, @@ -20307,8 +18721,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 70, category: "Special", - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", - shortDesc: "User switches out after damaging the target.", name: "Volt Switch", pp: 20, priority: 0, @@ -20324,8 +18736,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "Has a 10% chance to paralyze the target. If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 33% recoil. 10% chance to paralyze target.", name: "Volt Tackle", pp: 15, priority: 0, @@ -20348,8 +18758,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Physical", - desc: "Power doubles if the target is asleep. If the user has not fainted, the target wakes up.", - shortDesc: "Power doubles if target is asleep, and wakes it.", isNonstandard: "Past", name: "Wake-Up Slap", pp: 10, @@ -20368,8 +18776,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 20% chance to flinch the target.", - shortDesc: "20% chance to flinch the target.", name: "Waterfall", pp: 15, priority: 0, @@ -20387,7 +18793,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Special", - shortDesc: "No additional effect.", name: "Water Gun", pp: 25, priority: 0, @@ -20409,8 +18814,6 @@ export const Moves: {[moveid: string]: MoveData} = { return 80; }, category: "Special", - desc: "If one of the user's allies chose to use Fire Pledge or Grass Pledge this turn and has not moved yet, it takes its turn immediately after the user and the user's move does nothing. If combined with Fire Pledge, the ally uses Water Pledge with 150 power and a rainbow appears on the user's side for 4 turns, which doubles secondary effect chances but does not stack with the Serene Grace Ability. If combined with Grass Pledge, the ally uses Grass Pledge with 150 power and a swamp appears on the target's side for 4 turns, which quarters the Speed of each Pokemon on that side. When used as a combined move, this move gains STAB no matter what the user's type is. This move does not consume the user's Water Gem, and cannot be redirected by the Storm Drain Ability.", - shortDesc: "Use with Grass or Fire Pledge for added effect.", name: "Water Pledge", pp: 10, priority: 0, @@ -20472,8 +18875,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Special", - desc: "Has a 20% chance to confuse the target.", - shortDesc: "20% chance to confuse the target.", name: "Water Pulse", pp: 20, priority: 0, @@ -20497,8 +18898,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Special", - desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is an Ash-Greninja with the Battle Bond Ability, this move has a power of 20 and always hits three times.", - shortDesc: "Usually goes first. Hits 2-5 times in one turn.", name: "Water Shuriken", pp: 20, priority: 1, @@ -20514,8 +18913,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, all Fire-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active.", - shortDesc: "For 5 turns, Fire-type attacks have 1/3 power.", isNonstandard: "Past", name: "Water Sport", pp: 15, @@ -20553,8 +18950,6 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower * pokemon.hp / pokemon.maxhp; }, category: "Special", - desc: "Power is equal to (user's current HP * 150 / user's maximum HP), rounded down, but not less than 1.", - shortDesc: "Less power as user's HP decreases. Hits foe(s).", name: "Water Spout", pp: 5, priority: 0, @@ -20569,8 +18964,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 50, category: "Special", - desc: "Power doubles if a weather condition other than Delta Stream is active, and this move's type changes to match. Ice type during Hail, Water type during Primordial Sea or Rain Dance, Rock type during Sandstorm, and Fire type during Desolate Land or Sunny Day. If the user is holding Utility Umbrella and uses Weather Ball during Primordial Sea, Rain Dance, Desolate Land, or Sunny Day, the move is still Normal-type and does not have a base power boost.", - shortDesc: "Power doubles and type varies in each weather.", name: "Weather Ball", pp: 10, priority: 0, @@ -20623,8 +19016,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 35, category: "Special", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Whirlpool", pp: 15, priority: 0, @@ -20640,8 +19031,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the target used Ingrain previously or has the Suction Cups Ability.", - shortDesc: "Forces the target to switch to a random ally.", name: "Whirlwind", pp: 20, priority: -6, @@ -20658,8 +19047,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", - shortDesc: "Always results in a critical hit.", name: "Wicked Blow", pp: 5, priority: 0, @@ -20674,8 +19061,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", - shortDesc: "Protects allies from multi-target moves this turn.", name: "Wide Guard", pp: 10, priority: 3, @@ -20725,8 +19110,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 1/4 recoil.", name: "Wild Charge", pp: 15, priority: 0, @@ -20742,8 +19125,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 0, category: "Status", - desc: "Burns the target.", - shortDesc: "Burns the target.", name: "Will-O-Wisp", pp: 15, priority: 0, @@ -20760,7 +19141,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - shortDesc: "No additional effect.", name: "Wing Attack", pp: 35, priority: 0, @@ -20775,8 +19155,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "At the end of the next turn, the Pokemon at the user's position has 1/2 of the user's maximum HP restored to it, rounded half up. Fails if this move is already in effect for the user's position.", - shortDesc: "Next turn, 50% of the user's max HP is restored.", name: "Wish", pp: 10, priority: 0, @@ -20806,8 +19184,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Defense by 1 stage.", - shortDesc: "Raises the user's Defense by 1.", name: "Withdraw", pp: 40, priority: 0, @@ -20826,8 +19202,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "For 5 turns, all active Pokemon have their Defense and Special Defense stats swapped. Stat stage changes are unaffected. If this move is used during the effect, the effect ends.", - shortDesc: "For 5 turns, all Defense and Sp. Def stats switch.", name: "Wonder Room", pp: 10, priority: 0, @@ -20865,8 +19239,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - desc: "If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "Has 33% recoil.", name: "Wood Hammer", pp: 15, priority: 0, @@ -20882,8 +19254,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Raises the user's Attack and Special Attack by 1 stage.", - shortDesc: "Raises the user's Attack and Sp. Atk by 1.", name: "Work Up", pp: 30, priority: 0, @@ -20903,8 +19273,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Battle Bond, Comatose, Disguise, Insomnia, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Truant, or Zen Mode.", - shortDesc: "The target's Ability becomes Insomnia.", name: "Worry Seed", pp: 10, priority: 0, @@ -20939,8 +19307,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 15, category: "Physical", - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", name: "Wrap", pp: 20, priority: 0, @@ -20959,8 +19325,6 @@ export const Moves: {[moveid: string]: MoveData} = { return Math.floor(Math.floor((120 * (100 * Math.floor(target.hp * 4096 / target.maxhp)) + 2048 - 1) / 4096) / 100) || 1; }, category: "Special", - desc: "Power is equal to 120 * (target's current HP / target's maximum HP), rounded half down, but not less than 1.", - shortDesc: "More power the more HP the target has left.", isNonstandard: "Past", name: "Wring Out", pp: 5, @@ -20978,7 +19342,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - shortDesc: "No additional effect.", name: "X-Scissor", pp: 15, priority: 0, @@ -20993,8 +19356,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "Causes the target to fall asleep at the end of the next turn. Fails when used if the target cannot fall asleep or if it already has a major status condition. At the end of the next turn, if the target is still active, does not have a major status condition, and can fall asleep, it falls asleep. If the target becomes affected, this effect cannot be prevented by Safeguard or a substitute, or by falling asleep and waking up during the effect.", - shortDesc: "Puts the target to sleep after 1 turn.", name: "Yawn", pp: 10, priority: 0, @@ -21028,8 +19389,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 50, basePower: 120, category: "Special", - desc: "Has a 100% chance to paralyze the target.", - shortDesc: "100% chance to paralyze the target.", name: "Zap Cannon", pp: 5, priority: 0, @@ -21047,8 +19406,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 80, category: "Physical", - desc: "Has a 20% chance to flinch the target.", - shortDesc: "20% chance to flinch the target.", name: "Zen Headbutt", pp: 15, priority: 0, @@ -21066,8 +19423,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 30% chance to flinch the target.", - shortDesc: "30% chance to flinch the target.", name: "Zing Zap", pp: 10, priority: 0, @@ -21085,8 +19440,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - desc: "Has a 100% chance to raise the user's evasion by 1 stage.", - shortDesc: "Goes first. Raises user's evasion by 1.", isNonstandard: "LGPE", name: "Zippy Zap", pp: 10, diff --git a/data/tags.ts b/data/tags.ts new file mode 100644 index 0000000000..84460d5eff --- /dev/null +++ b/data/tags.ts @@ -0,0 +1,233 @@ +interface TagData { + name: string; + desc?: string; + pokemonFilter?: (species: Species) => boolean; + moveFilter?: (move: Move) => boolean; +} + +export const Tags: {[id: string]: TagData} = { + // Categories + // ---------- + physical: { + name: "Physical", + desc: "Move deals damage with the Attack and Defense stats.", + moveFilter: move => move.category === 'Physical', + }, + special: { + name: "Special", + desc: "Move deals damage with the Special Attack and Special Defense stats.", + moveFilter: move => move.category === 'Special', + }, + status: { + name: "Status", + desc: "Move does not deal damage.", + moveFilter: move => move.category === 'Status', + }, + + // Pokemon tags + // ------------ + mega: { + name: "Mega", + pokemonFilter: species => !!species.isMega, + }, + + // Move tags + // --------- + zmove: { + name: "Z-Move", + moveFilter: move => !!move.isZ, + }, + maxmove: { + name: "Max Move", + moveFilter: move => !!move.isMax, + }, + contact: { + name: "Contact", + desc: "Affected by a variety of moves, abilities, and items. Moves affected by contact moves include: Spiky Shield, King's Shield. Abilities affected by contact moves include: Iron Barbs, Rough Skin, Gooey, Flame Body, Static, Tough Claws. Items affected by contact moves include: Rocky Helmet, Sticky Barb.", + moveFilter: move => 'contact' in move.flags, + }, + sound: { + name: "Sound", + desc: "Doesn't affect Soundproof Pokémon. (All sound moves also bypass Substitute.)", + moveFilter: move => 'sound' in move.flags, + }, + powder: { + name: "Powder", + desc: "Doesn't affect Grass-type Pokémon, Overcoat Pokémon, or Safety Goggles holders.", + moveFilter: move => 'powder' in move.flags, + }, + fist: { + name: "Fist", + desc: "Boosted 1.2x by Iron Fist.", + moveFilter: move => 'punch' in move.flags, + }, + pulse: { + name: "Pulse", + desc: "Boosted 1.5x by Mega Launcher.", + moveFilter: move => 'pulse' in move.flags, + }, + bite: { + name: "Bite", + desc: "Boosted 1.5x by Strong Jaw.", + moveFilter: move => 'bite' in move.flags, + }, + ballistic: { + name: "Ballistic", + desc: "Doesn't affect Bulletproof Pokémon.", + moveFilter: move => 'bullet' in move.flags, + }, + bypassprotect: { + name: "Bypass Protect", + desc: "Bypasses Protect, Detect, King's Shield, and Spiky Shield.", + moveFilter: move => move.target !== 'self' && !('protect' in move.flags), + }, + nonreflectable: { + name: "Nonreflectable", + desc: "Can't be bounced by Magic Coat or Magic Bounce.", + moveFilter: move => move.target !== 'self' && move.category === 'Status' && !('reflectable' in move.flags), + }, + nonmirror: { + name: "Nonmirror", + desc: "Can't be copied by Mirror Move.", + moveFilter: move => move.target !== 'self' && !('mirror' in move.flags), + }, + nonsnatchable: { + name: "Nonsnatchable", + desc: "Can't be copied by Snatch.", + moveFilter: move => ['allyTeam', 'self', 'adjacentAllyOrSelf'].includes(move.target) && !('snatch' in move.flags), + }, + bypasssubstitute: { + name: "Bypass Substitute", + desc: "Bypasses but does not break a Substitute.", + moveFilter: move => 'authentic' in move.flags, + }, + gmaxmove: { + name: "G-Max Move", + moveFilter: move => typeof move.isMax === 'string', + }, + + // Tiers + // ----- + uber: { + name: "Uber", + pokemonFilter: species => species.tier === 'Uber', + }, + ou: { + name: "OU", + pokemonFilter: species => species.tier === 'OU', + }, + uubl: { + name: "UUBL", + pokemonFilter: species => species.tier === 'UUBL', + }, + uu: { + name: "UU", + pokemonFilter: species => species.tier === 'UU', + }, + rubl: { + name: "RUBL", + pokemonFilter: species => species.tier === 'RUBL', + }, + ru: { + name: "RU", + pokemonFilter: species => species.tier === 'RU', + }, + nubl: { + name: "NUBL", + pokemonFilter: species => species.tier === 'NUBL', + }, + nu: { + name: "NU", + pokemonFilter: species => species.tier === 'NU', + }, + publ: { + name: "PUBL", + pokemonFilter: species => species.tier === 'PUBL', + }, + pu: { + name: "PU", + pokemonFilter: species => species.tier === 'PU', + }, + zu: { + name: "ZU", + pokemonFilter: species => species.tier === '(PU)', + }, + nfe: { + name: "NFE", + pokemonFilter: species => species.tier === 'NFE', + }, + lcuber: { + name: "LC Uber", + pokemonFilter: species => species.doublesTier === 'LC Uber', + }, + lc: { + name: "LC", + pokemonFilter: species => species.doublesTier === 'LC', + }, + cap: { + name: "CAP", + pokemonFilter: species => species.tier === 'CAP', + }, + caplc: { + name: "CAP LC", + pokemonFilter: species => species.tier === 'CAP LC', + }, + capnfe: { + name: "CAP NFE", + pokemonFilter: species => species.tier === 'CAP NFE', + }, + ag: { + name: "AG", + pokemonFilter: species => species.tier === 'AG', + }, + + // Doubles tiers + // ------------- + duber: { + name: "DUber", + pokemonFilter: species => species.doublesTier === 'DUber', + }, + dou: { + name: "DOU", + pokemonFilter: species => species.doublesTier === 'DOU', + }, + dbl: { + name: "DBL", + pokemonFilter: species => species.doublesTier === 'DBL', + }, + duu: { + name: "DUU", + pokemonFilter: species => species.doublesTier === 'DUU', + }, + dnu: { + name: "DNU", + pokemonFilter: species => species.doublesTier === '(DUU)', + }, + + // Legality tags + past: { + name: "Past", + pokemonFilter: species => species.isNonstandard === 'Past', + moveFilter: move => move.isNonstandard === 'Past', + }, + future: { + name: "Future", + pokemonFilter: species => species.isNonstandard === 'Future', + moveFilter: move => move.isNonstandard === 'Future', + }, + unobtainable: { + name: "Unobtainable", + pokemonFilter: species => species.isNonstandard === 'Unobtainable', + moveFilter: move => move.isNonstandard === 'Unobtainable', + }, + lgpe: { + name: "LGPE", + pokemonFilter: species => species.isNonstandard === 'LGPE', + moveFilter: move => move.isNonstandard === 'LGPE', + }, + custom: { + name: "Custom", + pokemonFilter: species => species.isNonstandard === 'Custom', + moveFilter: move => move.isNonstandard === 'Custom', + }, +}; diff --git a/data/text/abilities.ts b/data/text/abilities.ts new file mode 100644 index 0000000000..4c9312da57 --- /dev/null +++ b/data/text/abilities.ts @@ -0,0 +1,1480 @@ +export const AbilitiesText = { + noability: { + name: "No Ability", + shortDesc: "Does nothing.", + }, + adaptability: { + name: "Adaptability", + desc: "This Pokemon's moves that match one of its types have a same-type attack bonus (STAB) of 2 instead of 1.5.", + shortDesc: "This Pokemon's same-type attack bonus (STAB) is 2 instead of 1.5.", + }, + aerilate: { + name: "Aerilate", + desc: "This Pokemon's Normal-type moves become Flying-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDesc: "This Pokemon's Normal-type moves become Flying type and have 1.2x power.", + descGen6: "This Pokemon's Normal-type moves become Flying-type moves and have their power multiplied by 1.3. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDescGen6: "This Pokemon's Normal-type moves become Flying type and have 1.3x power.", + }, + aftermath: { + name: "Aftermath", + desc: "If this Pokemon is knocked out with a contact move, that move's user loses 1/4 of its maximum HP, rounded down. If any active Pokemon has the Damp Ability, this effect is prevented.", + shortDesc: "If this Pokemon is KOed with a contact move, that move's user loses 1/4 its max HP.", + + damage: " [POKEMON] was hurt!", + }, + airlock: { + name: "Air Lock", + shortDesc: "While this Pokemon is active, the effects of weather conditions are disabled.", + + start: " The effects of the weather disappeared.", + }, + analytic: { + name: "Analytic", + desc: "The power of this Pokemon's move is multiplied by 1.3 if it is the last to move in a turn. Does not affect Doom Desire and Future Sight.", + shortDesc: "This Pokemon's attacks have 1.3x power if it is the last to move in a turn.", + }, + angerpoint: { + name: "Anger Point", + desc: "If this Pokemon, but not its substitute, is struck by a critical hit, its Attack is raised by 12 stages.", + shortDesc: "If this Pokemon (not its substitute) takes a critical hit, its Attack is raised 12 stages.", + descGen4: "If this Pokemon, or its substitute, is struck by a critical hit, its Attack is raised by 12 stages.", + shortDescGen4: "If this Pokemon or its substitute takes a critical hit, its Attack is raised 12 stages.", + + boost: " [POKEMON] maxed its Attack!", + }, + anticipation: { + name: "Anticipation", + desc: "On switch-in, this Pokemon is alerted if any opposing Pokemon has an attack that is super effective on this Pokemon, or an OHKO move. Counter, Metal Burst, and Mirror Coat count as attacking moves of their respective types, Hidden Power counts as its determined type, and Judgment, Multi-Attack, Natural Gift, Revelation Dance, Techno Blast, and Weather Ball are considered Normal-type moves.", + shortDesc: "On switch-in, this Pokemon shudders if any foe has a supereffective or OHKO move.", + descGen6: "On switch-in, this Pokemon is alerted if any opposing Pokemon has an attack that is super effective against this Pokemon, or an OHKO move. Counter, Metal Burst, and Mirror Coat count as attacking moves of their respective types, Hidden Power counts as its determined type, and Judgment, Natural Gift, Techno Blast, and Weather Ball are considered Normal-type moves.", + descGen5: "On switch-in, this Pokemon is alerted if any opposing Pokemon has an attack that is super effective on this Pokemon, or an OHKO move. Counter, Metal Burst, and Mirror Coat count as attacking moves of their respective types, while Hidden Power, Judgment, Natural Gift, Techno Blast, and Weather Ball are considered Normal-type moves.", + + activate: " [POKEMON] shuddered!", + }, + arenatrap: { + name: "Arena Trap", + desc: "Prevents adjacent opposing Pokemon from choosing to switch out unless they are immune to trapping or are airborne.", + shortDesc: "Prevents adjacent foes from choosing to switch unless they are airborne.", + }, + aromaveil: { + name: "Aroma Veil", + desc: "This Pokemon and its allies cannot be affected by Attract, Disable, Encore, Heal Block, Taunt, or Torment.", + shortDesc: "Protects user/allies from Attract, Disable, Encore, Heal Block, Taunt, and Torment.", + + block: " [POKEMON] is protected by an aromatic veil!", + }, + aurabreak: { + name: "Aura Break", + desc: "While this Pokemon is active, the effects of the Dark Aura and Fairy Aura Abilities are reversed, multiplying the power of Dark- and Fairy-type moves, respectively, by 3/4 instead of 1.33.", + shortDesc: "While this Pokemon is active, the Dark Aura and Fairy Aura power modifier is 0.75x.", + + start: " [POKEMON] reversed all other Pok\u00E9mon's auras!", + }, + baddreams: { + name: "Bad Dreams", + desc: "Causes adjacent opposing Pokemon to lose 1/8 of their maximum HP, rounded down, at the end of each turn if they are asleep.", + shortDesc: "Causes sleeping adjacent foes to lose 1/8 of their max HP at the end of each turn.", + + damage: " [POKEMON] is tormented!", + }, + ballfetch: { + name: "Ball Fetch", + shortDesc: "No competitive use.", + }, + battery: { + name: "Battery", + shortDesc: "This Pokemon's allies have the power of their special attacks multiplied by 1.3.", + }, + battlearmor: { + name: "Battle Armor", + shortDesc: "This Pokemon cannot be struck by a critical hit.", + }, + battlebond: { + name: "Battle Bond", + desc: "If this Pokemon is a Greninja, it transforms into Ash-Greninja after knocking out a Pokemon. As Ash-Greninja, its Water Shuriken has 20 base power and always hits 3 times.", + shortDesc: "After KOing a Pokemon: becomes Ash-Greninja, Water Shuriken: 20 power, hits 3x.", + + activate: " [POKEMON] became fully charged due to its bond with its Trainer!", + transform: "[POKEMON] became Ash-Greninja!", + }, + beastboost: { + name: "Beast Boost", + desc: "This Pokemon's highest stat is raised by 1 stage if it attacks and knocks out another Pokemon.", + shortDesc: "This Pokemon's highest stat is raised by 1 if it attacks and KOes another Pokemon.", + }, + berserk: { + name: "Berserk", + desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage from an attack bringing it to 1/2 or less of its maximum HP, its Special Attack is raised by 1 stage. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect.", + shortDesc: "This Pokemon's Sp. Atk is raised by 1 when it reaches 1/2 or less of its max HP.", + }, + bigpecks: { + name: "Big Pecks", + shortDesc: "Prevents other Pokemon from lowering this Pokemon's Defense stat stage.", + }, + blaze: { + name: "Blaze", + desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Fire-type attack.", + shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Fire attacks.", + descGen4: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Fire-type attacks have their power multiplied by 1.5.", + shortDescGen4: "At 1/3 or less of its max HP, this Pokemon's Fire-type attacks have 1.5x power.", + }, + bulletproof: { + name: "Bulletproof", + desc: "This Pokemon is immune to ballistic moves. Ballistic moves include Bullet Seed, Octazooka, Barrage, Rock Wrecker, Zap Cannon, Acid Spray, Aura Sphere, Focus Blast, and all moves with Ball or Bomb in their name.", + shortDesc: "Makes user immune to ballistic moves (Shadow Ball, Sludge Bomb, Focus Blast, etc).", + }, + cheekpouch: { + name: "Cheek Pouch", + desc: "If this Pokemon eats a Berry, it restores 1/3 of its maximum HP, rounded down, in addition to the Berry's effect.", + shortDesc: "If this Pokemon eats a Berry, it restores 1/3 of its max HP after the Berry's effect.", + }, + chlorophyll: { + name: "Chlorophyll", + desc: "If Sunny Day is active and this Pokemon is not holding Utility Umbrella, this Pokemon's Speed is doubled.", + shortDesc: "If Sunny Day is active, this Pokemon's Speed is doubled.", + descGen7: "If Sunny Day is active, this Pokemon's Speed is doubled.", + }, + clearbody: { + name: "Clear Body", + shortDesc: "Prevents other Pokemon from lowering this Pokemon's stat stages.", + }, + cloudnine: { + name: "Cloud Nine", + shortDesc: "While this Pokemon is active, the effects of weather conditions are disabled.", + + start: "#airlock", + }, + colorchange: { + name: "Color Change", + desc: "This Pokemon's type changes to match the type of the last move that hit it, unless that type is already one of its types. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect.", + shortDesc: "This Pokemon's type changes to the type of a move it's hit by, unless it has the type.", + descGen4: "This Pokemon's type changes to match the type of the last move that hit it, unless that type is already one of its types. This effect applies after each hit from a multi-hit move. This effect does not happen if this Pokemon did not lose HP from the attack.", + }, + comatose: { + name: "Comatose", + desc: "This Pokemon cannot be statused, and is considered to be asleep. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", + shortDesc: "This Pokemon cannot be statused, and is considered to be asleep.", + + start: " [POKEMON] is drowsing!", + }, + competitive: { + name: "Competitive", + desc: "This Pokemon's Special Attack is raised by 2 stages for each of its stat stages that is lowered by an opposing Pokemon.", + shortDesc: "This Pokemon's Sp. Atk is raised by 2 for each of its stats that is lowered by a foe.", + }, + compoundeyes: { + name: "Compound Eyes", + shortDesc: "This Pokemon's moves have their accuracy multiplied by 1.3.", + }, + contrary: { + name: "Contrary", + desc: "If this Pokemon has a stat stage raised it is lowered instead, and vice versa. This Ability does not affect stat stage increases received from Z-Power effects that happen before a Z-Move is used.", + shortDesc: "If this Pokemon has a stat stage raised it is lowered instead, and vice versa.", + descGen6: "If this Pokemon has a stat stage raised it is lowered instead, and vice versa.", + }, + corrosion: { + name: "Corrosion", + shortDesc: "This Pokemon can poison or badly poison other Pokemon regardless of their typing.", + }, + cottondown: { + name: "Cotton Down", + desc: "When this Pokemon is hit by an attack, the Speed of all other Pokemon on the field is lowered by 1 stage.", + shortDesc: "If this Pokemon is hit, it lowers the Speed of all other Pokemon on the field 1 stage.", + }, + cursedbody: { + name: "Cursed Body", + desc: "If this Pokemon is hit by an attack, there is a 30% chance that move gets disabled unless one of the attacker's moves is already disabled.", + shortDesc: "If this Pokemon is hit by an attack, there is a 30% chance that move gets disabled.", + }, + cutecharm: { + name: "Cute Charm", + desc: "There is a 30% chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender.", + shortDesc: "30% chance of infatuating Pokemon of the opposite gender if they make contact.", + descGen4: "There is a 30% chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender. This effect does not happen if this Pokemon did not lose HP from the attack.", + descGen3: "There is a 1/3 chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender. This effect does not happen if this Pokemon did not lose HP from the attack.", + shortdescGen3: "1/3 chance of infatuating Pokemon of the opposite gender if they make contact.", + }, + damp: { + name: "Damp", + desc: "While this Pokemon is active, Explosion, Mind Blown, Misty Explosion, Self-Destruct, and the Aftermath Ability are prevented from having an effect.", + shortDesc: "Prevents Explosion/Mind Blown/Misty Explosion/Self-Destruct/Aftermath while active.", + descGen7: "While this Pokemon is active, Explosion, Mind Blown, Self-Destruct, and the Aftermath Ability are prevented from having an effect.", + shortDescGen7: "Prevents Explosion/Mind Blown/Self-Destruct/Aftermath while this Pokemon is active.", + descGen6: "While this Pokemon is active, Explosion, Self-Destruct, and the Aftermath Ability are prevented from having an effect.", + shortDescGen6: "Prevents Explosion/Self-Destruct/Aftermath while this Pokemon is active.", + + block: " [SOURCE] cannot use [MOVE]!", + }, + dancer: { + name: "Dancer", + desc: "After another Pokemon uses a dance move, this Pokemon uses the same move. Moves used by this Ability cannot be copied again.", + shortDesc: "After another Pokemon uses a dance move, this Pokemon uses the same move.", + }, + darkaura: { + name: "Dark Aura", + desc: "While this Pokemon is active, the power of Dark-type moves used by active Pokemon is multiplied by 1.33.", + shortDesc: "While this Pokemon is active, a Dark move used by any Pokemon has 1.33x power.", + + start: " [POKEMON] is radiating a dark aura!", + }, + dauntlessshield: { + name: "Dauntless Shield", + shortDesc: "On switch-in, this Pokemon's Defense is raised by 1 stage.", + }, + dazzling: { + name: "Dazzling", + desc: "While this Pokemon is active, priority moves from opposing Pokemon targeted at allies are prevented from having an effect.", + shortDesc: "While this Pokemon is active, allies are protected from opposing priority moves.", + + block: "#damp", + }, + defeatist: { + name: "Defeatist", + desc: "While this Pokemon has 1/2 or less of its maximum HP, its Attack and Special Attack are halved.", + shortDesc: "While this Pokemon has 1/2 or less of its max HP, its Attack and Sp. Atk are halved.", + }, + defiant: { + name: "Defiant", + desc: "This Pokemon's Attack is raised by 2 stages for each of its stat stages that is lowered by an opposing Pokemon.", + shortDesc: "This Pokemon's Attack is raised by 2 for each of its stats that is lowered by a foe.", + }, + deltastream: { + name: "Delta Stream", + desc: "On switch-in, the weather becomes strong winds that remove the weaknesses of the Flying type from Flying-type Pokemon. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Desolate Land or Primordial Sea.", + shortDesc: "On switch-in, strong winds begin until this Ability is not active in battle.", + }, + desolateland: { + name: "Desolate Land", + desc: "On switch-in, the weather becomes extremely harsh sunlight that prevents damaging Water-type moves from executing, in addition to all the effects of Sunny Day. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Delta Stream or Primordial Sea.", + shortDesc: "On switch-in, extremely harsh sunlight begins until this Ability is not active in battle.", + }, + disguise: { + name: "Disguise", + desc: "If this Pokemon is a Mimikyu, the first hit it takes in battle deals 0 neutral damage. Its disguise is then broken, it changes to Busted Form, and it loses 1/8 of its max HP. Confusion damage also breaks the disguise.", + shortDesc: "(Mimikyu only) The first hit it takes is blocked, and it takes 1/8 HP damage instead.", + descGen7: "If this Pokemon is a Mimikyu, the first hit it takes in battle deals 0 neutral damage. Its disguise is then broken and it changes to Busted Form. Confusion damage also breaks the disguise.", + shortDescGen7: "(Mimikyu only) First hit deals 0 damage, breaks disguise.", + + block: " Its disguise served it as a decoy!", + transform: "[POKEMON]'s disguise was busted!", + }, + download: { + name: "Download", + desc: "On switch-in, this Pokemon's Attack or Special Attack is raised by 1 stage based on the weaker combined defensive stat of all opposing Pokemon. Attack is raised if their Defense is lower, and Special Attack is raised if their Special Defense is the same or lower.", + shortDesc: "On switch-in, Attack or Sp. Atk is raised 1 stage based on the foes' weaker Defense.", + }, + drizzle: { + name: "Drizzle", + shortDesc: "On switch-in, this Pokemon summons Rain Dance.", + }, + drought: { + name: "Drought", + shortDesc: "On switch-in, this Pokemon summons Sunny Day.", + }, + dryskin: { + name: "Dry Skin", + desc: "This Pokemon is immune to Water-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Water-type move. The power of Fire-type moves is multiplied by 1.25 when used on this Pokemon. At the end of each turn, this Pokemon restores 1/8 of its maximum HP, rounded down, if the weather is Rain Dance, and loses 1/8 of its maximum HP, rounded down, if the weather is Sunny Day. If this Pokemon is holding Utility Umbrella, the effects of weather are nullified.", + shortDesc: "This Pokemon is healed 1/4 by Water, 1/8 by Rain; is hurt 1.25x by Fire, 1/8 by Sun.", + descGen7: "This Pokemon is immune to Water-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Water-type move. The power of Fire-type moves is multiplied by 1.25 when used on this Pokemon. At the end of each turn, this Pokemon restores 1/8 of its maximum HP, rounded down, if the weather is Rain Dance, and loses 1/8 of its maximum HP, rounded down, if the weather is Sunny Day.", + + damage: " ([POKEMON] was hurt by its Dry Skin.)", + }, + earlybird: { + name: "Early Bird", + shortDesc: "This Pokemon's sleep counter drops by 2 instead of 1.", + }, + effectspore: { + name: "Effect Spore", + desc: "30% chance a Pokemon making contact with this Pokemon will be poisoned, paralyzed, or fall asleep.", + shortDesc: "30% chance of poison/paralysis/sleep on others making contact with this Pokemon.", + descGen4: "30% chance a Pokemon making contact with this Pokemon will be poisoned, paralyzed, or fall asleep. This effect does not happen if this Pokemon did not lose HP from the attack.", + descGen3: "10% chance a Pokemon making contact with this Pokemon will be poisoned, paralyzed, or fall asleep. This effect does not happen if this Pokemon did not lose HP from the attack.", + shortDescGen3: "10% chance of poison/paralysis/sleep on others making contact with this Pokemon.", + }, + electricsurge: { + name: "Electric Surge", + shortDesc: "On switch-in, this Pokemon summons Electric Terrain.", + }, + emergencyexit: { + name: "Emergency Exit", + desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage bringing it to 1/2 or less of its maximum HP, it immediately switches out to a chosen ally. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect. This effect applies to both direct and indirect damage, except Curse and Substitute on use, Belly Drum, Pain Split, and confusion damage.", + shortDesc: "This Pokemon switches out when it reaches 1/2 or less of its maximum HP.", + }, + fairyaura: { + name: "Fairy Aura", + desc: "While this Pokemon is active, the power of Fairy-type moves used by active Pokemon is multiplied by 1.33.", + shortDesc: "While this Pokemon is active, a Fairy move used by any Pokemon has 1.33x power.", + + start: " [POKEMON] is radiating a fairy aura!", + }, + filter: { + name: "Filter", + shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks.", + }, + flamebody: { + name: "Flame Body", + shortDesc: "30% chance a Pokemon making contact with this Pokemon will be burned.", + descGen4: "30% chance a Pokemon making contact with this Pokemon will be burned. This effect does not happen if this Pokemon did not lose HP from the attack.", + descGen3: "1/3 chance a Pokemon making contact with this Pokemon will be burned. This effect does not happen if this Pokemon did not lose HP from the attack.", + shortDescGen3: "1/3 chance a Pokemon making contact with this Pokemon will be burned.", + }, + flareboost: { + name: "Flare Boost", + desc: "While this Pokemon is burned, the power of its special attacks is multiplied by 1.5.", + shortDesc: "While this Pokemon is burned, its special attacks have 1.5x power.", + }, + flashfire: { + name: "Flash Fire", + desc: "This Pokemon is immune to Fire-type moves. The first time it is hit by a Fire-type move, its attacking stat is multiplied by 1.5 while using a Fire-type attack as long as it remains active and has this Ability. If this Pokemon is frozen, it cannot be defrosted by Fire-type attacks.", + shortDesc: "This Pokemon's Fire attacks do 1.5x damage if hit by one Fire move; Fire immunity.", + descGen3: "This Pokemon is immune to Fire-type moves, as long as it is not frozen. The first time it is hit by a Fire-type move, damage from its Fire-type attacks will be multiplied by 1.5 as long as it remains active and has this Ability. If this Pokemon has a major status condition, is a Fire type, or has a substitute, Will-O-Wisp will not activate this Ability.", + + start: " The power of [POKEMON]'s Fire-type moves rose!", + }, + flowergift: { + name: "Flower Gift", + desc: "If this Pokemon is a Cherrim and Sunny Day is active, it changes to Sunshine Form and the Attack and Special Defense of it and its allies are multiplied by 1.5. If this Pokemon is a Cherrim and it is holding Utility Umbrella, it remains in its regular form and the Attack and Special Defense stats of it and its allies are not boosted. If this Pokemon is a Cherrim in its Sunshine form and is given Utility Umbrella, it will immediately switch back to its regular form. If this Pokemon is a Cherrim holding Utility Umbrella and its item is removed while Sunny Day is active, it will transform into its Sunshine Form. If an ally is holding Utility Umbrella while Cherrim is in its Sunshine Form, they will not receive the Attack and Special Defense boosts.", + shortDesc: "If user is Cherrim and Sunny Day is active, it and allies' Attack and Sp. Def are 1.5x.", + descGen7: "If this Pokemon is a Cherrim and Sunny Day is active, it changes to Sunshine Form and the Attack and Special Defense of it and its allies are multiplied by 1.5.", + descGen4: "If Sunny Day is active, the Attack and Special Defense of this Pokemon and its allies are multiplied by 1.5.", + shortDescGen4: "If Sunny Day is active, Attack and Sp. Def of this Pokemon and its allies are 1.5x.", + }, + flowerveil: { + name: "Flower Veil", + desc: "Grass-type Pokemon on this Pokemon's side cannot have their stat stages lowered by other Pokemon or have a major status condition inflicted on them by other Pokemon.", + shortDesc: "This side's Grass types can't have stats lowered or status inflicted by other Pokemon.", + + block: " [POKEMON] surrounded itself with a veil of petals!", + }, + fluffy: { + name: "Fluffy", + desc: "This Pokemon receives 1/2 damage from contact moves, but double damage from Fire moves.", + shortDesc: "This Pokemon takes 1/2 damage from contact moves, 2x damage from Fire moves.", + }, + forecast: { + name: "Forecast", + desc: "If this Pokemon is a Castform, its type changes to the current weather condition's type, except Sandstorm. If this Pokemon is holding Utility Umbrella and the weather condition is Sunny Day, Desolate Land, Rain Dance, or Primordial Sea, it will not change types.", + shortDesc: "Castform's type changes to the current weather condition's type, except Sandstorm.", + descGen7: "If this Pokemon is a Castform, its type changes to the current weather condition's type, except Sandstorm.", + }, + forewarn: { + name: "Forewarn", + desc: "On switch-in, this Pokemon is alerted to the move with the highest power, at random, known by an opposing Pokemon.", + shortDesc: "On switch-in, this Pokemon is alerted to the foes' move with the highest power.", + + activate: " [TARGET]'s [MOVE] was revealed!", + activateNoTarget: " [POKEMON]'s Forewarn alerted it to [MOVE]!", + }, + friendguard: { + name: "Friend Guard", + shortDesc: "This Pokemon's allies receive 3/4 damage from other Pokemon's attacks.", + }, + frisk: { + name: "Frisk", + shortDesc: "On switch-in, this Pokemon identifies the held items of all opposing Pokemon.", + shortDescGen5: "On switch-in, this Pokemon identifies a random foe's held item.", + + activate: " [POKEMON] frisked [TARGET] and found its [ITEM]!", + activateNoTarget: " [POKEMON] frisked its target and found one [ITEM]!", + }, + fullmetalbody: { + name: "Full Metal Body", + desc: "Prevents other Pokemon from lowering this Pokemon's stat stages. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", + shortDesc: "Prevents other Pokemon from lowering this Pokemon's stat stages.", + }, + furcoat: { + name: "Fur Coat", + shortDesc: "This Pokemon's Defense is doubled.", + }, + galewings: { + name: "Gale Wings", + shortDesc: "If this Pokemon is at full HP, its Flying-type moves have their priority increased by 1.", + shortDescGen6: "This Pokemon's Flying-type moves have their priority increased by 1.", + }, + galvanize: { + name: "Galvanize", + desc: "This Pokemon's Normal-type moves become Electric-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDesc: "This Pokemon's Normal-type moves become Electric type and have 1.2x power.", + }, + gluttony: { + name: "Gluttony", + shortDesc: "When this Pokemon has 1/2 or less of its maximum HP, it uses certain Berries early.", + }, + gooey: { + name: "Gooey", + shortDesc: "Pokemon making contact with this Pokemon have their Speed lowered by 1 stage.", + }, + gorillatactics: { + name: "Gorilla Tactics", + shortDesc: "This Pokemon's Attack is 1.5x, but it can only select the first move it executes.", + }, + grasspelt: { + name: "Grass Pelt", + shortDesc: "If Grassy Terrain is active, this Pokemon's Defense is multiplied by 1.5.", + }, + grassysurge: { + name: "Grassy Surge", + shortDesc: "On switch-in, this Pokemon summons Grassy Terrain.", + }, + gulpmissile: { + name: "Gulp Missile", + desc: "If this Pokemon is a Cramorant, it changes forme when it hits a target with Surf or uses the first turn of Dive successfully. It becomes Gulping Form with an Arrokuda in its mouth if it has more than 1/2 of its maximum HP remaining, or Gorging Form with a Pikachu in its mouth if it has 1/2 or less of its maximum HP remaining. If Cramorant gets hit in Gulping or Gorging Form, it spits the Arrokuda or Pikachu at its attacker, even if it has no HP remaining. The projectile deals damage equal to 1/4 of the target's maximum HP, rounded down; this damage is blocked by the Magic Guard Ability but not by a substitute. An Arrokuda also lowers the target's Defense by 1 stage, and a Pikachu paralyzes the target. Cramorant will return to normal if it spits out a projectile, switches out, or Dynamaxes.", + shortDesc: "When hit after Surf/Dive, attacker takes 1/4 max HP and -1 Defense or paralysis.", + }, + guts: { + name: "Guts", + desc: "If this Pokemon has a major status condition, its Attack is multiplied by 1.5; burn's physical damage halving is ignored.", + shortDesc: "If this Pokemon is statused, its Attack is 1.5x; ignores burn halving physical damage.", + }, + harvest: { + name: "Harvest", + desc: "If the last item this Pokemon used is a Berry, there is a 50% chance it gets restored at the end of each turn. If Sunny Day is active, this chance is 100%.", + shortDesc: "If last item used is a Berry, 50% chance to restore it each end of turn. 100% in Sun.", + + addItem: " [POKEMON] harvested one [ITEM]!", + }, + healer: { + name: "Healer", + desc: "There is a 30% chance of curing an adjacent ally's major status condition at the end of each turn.", + shortDesc: "30% chance of curing an adjacent ally's status at the end of each turn.", + }, + heatproof: { + name: "Heatproof", + desc: "The power of Fire-type attacks against this Pokemon is halved, and burn damage taken is halved.", + shortDesc: "The power of Fire-type attacks against this Pokemon is halved; burn damage halved.", + }, + heavymetal: { + name: "Heavy Metal", + shortDesc: "This Pokemon's weight is doubled.", + }, + honeygather: { + name: "Honey Gather", + shortDesc: "No competitive use.", + }, + hugepower: { + name: "Huge Power", + shortDesc: "This Pokemon's Attack is doubled.", + }, + hungerswitch: { + name: "Hunger Switch", + shortDesc: "If Morpeko, it changes between Full Belly and Hangry Mode at the end of each turn.", + }, + hustle: { + name: "Hustle", + desc: "This Pokemon's Attack is multiplied by 1.5 and the accuracy of its physical attacks is multiplied by 0.8.", + shortDesc: "This Pokemon's Attack is 1.5x and accuracy of its physical attacks is 0.8x.", + }, + hydration: { + name: "Hydration", + desc: "This Pokemon has its major status condition cured at the end of each turn if Rain Dance is active. If this Pokemon is holding Utility Umbrella, its major status condition will not be cured.", + shortDesc: "This Pokemon has its status cured at the end of each turn if Rain Dance is active.", + descGen7: "This Pokemon has its major status condition cured at the end of each turn if Rain Dance is active.", + }, + hypercutter: { + name: "Hyper Cutter", + shortDesc: "Prevents other Pokemon from lowering this Pokemon's Attack stat stage.", + }, + icebody: { + name: "Ice Body", + desc: "If Hail is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn. This Pokemon takes no damage from Hail.", + shortDesc: "If Hail is active, this Pokemon heals 1/16 of its max HP each turn; immunity to Hail.", + }, + iceface: { + name: "Ice Face", + desc: "If this Pokemon is an Eiscue, the first physical hit it takes in battle deals 0 neutral damage. Its ice face is then broken and it changes forme to Noice Face. Eiscue regains its Ice Face forme when Hail begins or when Eiscue switches in while Hail is active. Confusion damage also breaks the ice face.", + shortDesc: "If Eiscue, the first physical hit it takes deals 0 damage. This effect is restored in Hail.", + }, + icescales: { + name: "Ice Scales", + shortDesc: "This Pokemon receives 1/2 damage from special attacks.", + }, + illuminate: { + name: "Illuminate", + shortDesc: "No competitive use.", + }, + illusion: { + name: "Illusion", + desc: "When this Pokemon switches in, it appears as the last unfainted Pokemon in its party until it takes direct damage from another Pokemon's attack. This Pokemon's actual level and HP are displayed instead of those of the mimicked Pokemon.", + shortDesc: "This Pokemon appears as the last Pokemon in the party until it takes direct damage.", + + end: " [POKEMON]'s illusion wore off!", + }, + immunity: { + name: "Immunity", + shortDesc: "This Pokemon cannot be poisoned. Gaining this Ability while poisoned cures it.", + }, + imposter: { + name: "Imposter", + desc: "On switch-in, this Pokemon Transforms into the opposing Pokemon that is facing it. If there is no Pokemon at that position, this Pokemon does not Transform.", + shortDesc: "On switch-in, this Pokemon Transforms into the opposing Pokemon that is facing it.", + }, + infiltrator: { + name: "Infiltrator", + desc: "This Pokemon's moves ignore substitutes and the opposing side's Reflect, Light Screen, Safeguard, Mist and Aurora Veil.", + shortDesc: "Moves ignore substitutes and foe's Reflect/Light Screen/Safeguard/Mist/Aurora Veil.", + descGen6: "This Pokemon's moves ignore substitutes and the opposing side's Reflect, Light Screen, Safeguard, and Mist.", + shortDescGen6: "Moves ignore substitutes and the foe's Reflect, Light Screen, Safeguard, and Mist.", + descGen5: "This Pokemon's moves ignore the opposing side's Reflect, Light Screen, Safeguard, and Mist.", + shortDescGen5: "This Pokemon's moves ignore the foe's Reflect, Light Screen, Safeguard, and Mist.", + }, + innardsout: { + name: "Innards Out", + desc: "If this Pokemon is knocked out with a move, that move's user loses HP equal to the amount of damage inflicted on this Pokemon.", + shortDesc: "If this Pokemon is KOed with a move, that move's user loses an equal amount of HP.", + + damage: "#aftermath", + }, + innerfocus: { + name: "Inner Focus", + shortDesc: "This Pokemon cannot be made to flinch. Immune to Intimidate.", + shortDescGen7: "This Pokemon cannot be made to flinch.", + }, + insomnia: { + name: "Insomnia", + shortDesc: "This Pokemon cannot fall asleep. Gaining this Ability while asleep cures it.", + }, + intimidate: { + name: "Intimidate", + desc: "On switch-in, this Pokemon lowers the Attack of adjacent opposing Pokemon by 1 stage. Inner Focus, Oblivious, Own Tempo, Scrappy, and Pokemon behind a substitute are immune.", + shortDesc: "On switch-in, this Pokemon lowers the Attack of adjacent opponents by 1 stage.", + descGen7: "On switch-in, this Pokemon lowers the Attack of adjacent opposing Pokemon by 1 stage. Pokemon behind a substitute are immune.", + }, + intrepidsword: { + name: "Intrepid Sword", + shortDesc: "On switch-in, this Pokemon's Attack is raised by 1 stage.", + }, + ironbarbs: { + name: "Iron Barbs", + desc: "Pokemon making contact with this Pokemon lose 1/8 of their maximum HP, rounded down.", + shortDesc: "Pokemon making contact with this Pokemon lose 1/8 of their max HP.", + + damage: "#roughskin", + }, + ironfist: { + name: "Iron Fist", + desc: "This Pokemon's punch-based attacks have their power multiplied by 1.2.", + shortDesc: "This Pokemon's punch-based attacks have 1.2x power. Sucker Punch is not boosted.", + }, + justified: { + name: "Justified", + shortDesc: "This Pokemon's Attack is raised by 1 stage after it is damaged by a Dark-type move.", + }, + keeneye: { + name: "Keen Eye", + desc: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage. This Pokemon ignores a target's evasiveness stat stage.", + shortDesc: "This Pokemon's accuracy can't be lowered by others; ignores their evasiveness stat.", + descGen5: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage.", + shortDescGen5: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage.", + }, + klutz: { + name: "Klutz", + desc: "This Pokemon's held item has no effect. This Pokemon cannot use Fling successfully. Macho Brace, Power Anklet, Power Band, Power Belt, Power Bracer, Power Lens, and Power Weight still have their effects.", + shortDesc: "This Pokemon's held item has no effect, except Macho Brace. Fling cannot be used.", + }, + leafguard: { + name: "Leaf Guard", + desc: "If Sunny Day is active and this Pokemon is not holding Utility Umbrella, this Pokemon cannot gain a major status condition and Rest will fail for it.", + shortDesc: "If Sunny Day is active, this Pokemon cannot be statused and Rest will fail for it.", + descGen7: "If Sunny Day is active, this Pokemon cannot gain a major status condition and Rest will fail for it.", + descGen4: "If Sunny Day is active, this Pokemon cannot gain a major status condition, but can use Rest normally.", + shortDescGen4: "If Sunny Day is active, this Pokemon cannot be statused, but Rest works normally.", + }, + levitate: { + name: "Levitate", + desc: "This Pokemon is immune to Ground. Gravity, Ingrain, Smack Down, Thousand Arrows, and Iron Ball nullify the immunity.", + shortDesc: "This Pokemon is immune to Ground; Gravity/Ingrain/Smack Down/Iron Ball nullify it.", + }, + libero: { + name: "Libero", + desc: "This Pokemon's type changes to match the type of the move it is about to use. This effect comes after all effects that change a move's type.", + shortDesc: "This Pokemon's type changes to match the type of the move it is about to use.", + }, + lightmetal: { + name: "Light Metal", + shortDesc: "This Pokemon's weight is halved.", + }, + lightningrod: { + name: "Lightning Rod", + desc: "This Pokemon is immune to Electric-type moves and raises its Special Attack by 1 stage when hit by an Electric-type move. If this Pokemon is not the target of a single-target Electric-type move used by another Pokemon, this Pokemon redirects that move to itself if it is within the range of that move.", + shortDesc: "This Pokemon draws Electric moves to itself to raise Sp. Atk by 1; Electric immunity.", + descGen4: "If this Pokemon is not the target of a single-target Electric-type move used by another Pokemon, this Pokemon redirects that move to itself.", + shortDescGen4: "This Pokemon draws single-target Electric moves to itself.", + descGen3: "If this Pokemon is not the target of a single-target Electric-type move used by an opposing Pokemon, this Pokemon redirects that move to itself. This effect considers Hidden Power a Normal-type move.", + shortDescGen3: "This Pokemon draws single-target Electric moves used by opponents to itself.", + + activate: " [POKEMON] took the attack!", + }, + limber: { + name: "Limber", + shortDesc: "This Pokemon cannot be paralyzed. Gaining this Ability while paralyzed cures it.", + }, + liquidooze: { + name: "Liquid Ooze", + shortDesc: "This Pokemon damages those draining HP from it for as much as they would heal.", + + damage: " [POKEMON] sucked up the liquid ooze!", + }, + liquidvoice: { + name: "Liquid Voice", + desc: "This Pokemon's sound-based moves become Water-type moves. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDesc: "This Pokemon's sound-based moves become Water type.", + }, + longreach: { + name: "Long Reach", + shortDesc: "This Pokemon's attacks do not make contact with the target.", + }, + magicbounce: { + name: "Magic Bounce", + desc: "This Pokemon blocks certain status moves and instead uses the move against the original user.", + shortDesc: "This Pokemon blocks certain status moves and bounces them back to the user.", + + move: '#magiccoat', + }, + magicguard: { + name: "Magic Guard", + desc: "This Pokemon can only be damaged by direct attacks. Curse and Substitute on use, Belly Drum, Pain Split, Struggle recoil, and confusion damage are considered direct damage.", + shortDesc: "This Pokemon can only be damaged by direct attacks.", + descGen4: "This Pokemon can only be damaged by direct attacks. Curse and Substitute on use, Belly Drum, Pain Split, Struggle recoil, and confusion damage are considered direct damage. This Pokemon cannot lose its turn because of paralysis, and is unaffected by Toxic Spikes on switch-in.", + shortDescGen4: "This Pokemon can only be damaged by direct attacks, and can't be fully paralyzed.", + }, + magician: { + name: "Magician", + desc: "If this Pokemon has no item, it steals the item off a Pokemon it hits with an attack. Does not affect Doom Desire and Future Sight.", + shortDesc: "If this Pokemon has no item, it steals the item off a Pokemon it hits with an attack.", + }, + magmaarmor: { + name: "Magma Armor", + shortDesc: "This Pokemon cannot be frozen. Gaining this Ability while frozen cures it.", + }, + magnetpull: { + name: "Magnet Pull", + desc: "Prevents adjacent opposing Steel-type Pokemon from choosing to switch out unless they are immune to trapping.", + shortDesc: "Prevents adjacent Steel-type foes from choosing to switch.", + }, + marvelscale: { + name: "Marvel Scale", + desc: "If this Pokemon has a major status condition, its Defense is multiplied by 1.5.", + shortDesc: "If this Pokemon is statused, its Defense is 1.5x.", + }, + megalauncher: { + name: "Mega Launcher", + desc: "This Pokemon's pulse moves have their power multiplied by 1.5. Heal Pulse restores 3/4 of a target's maximum HP, rounded half down.", + shortDesc: "This Pokemon's pulse moves have 1.5x power. Heal Pulse heals 3/4 target's max HP.", + }, + merciless: { + name: "Merciless", + shortDesc: "This Pokemon's attacks are critical hits if the target is poisoned.", + }, + mimicry: { + name: "Mimicry", + shortDesc: "This Pokemon's type changes to match the Terrain. Type reverts when Terrain ends.", + + activate: " [POKEMON] returned to its original type!", + }, + minus: { + name: "Minus", + desc: "If an active ally has this Ability or the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", + shortDesc: "If an active ally has this Ability or the Plus Ability, this Pokemon's Sp. Atk is 1.5x.", + descGen4: "If an active ally has the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", + shortDescGen4: "If an active ally has the Plus Ability, this Pokemon's Sp. Atk is 1.5x.", + descGen3: "If an active Pokemon has the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", + shortDescGen3: "If an active Pokemon has the Plus Ability, this Pokemon's Sp. Atk is 1.5x.", + }, + mirrorarmor: { + name: "Mirror Armor", + desc: "When one of this Pokemon's stat stages would be lowered by another Pokemon, that Pokemon's stat stage is lowered instead. This effect does not happen if this Pokemon's stat stage was already -6.", + shortDesc: "If this Pokemon's stat stages would be lowered, the attacker's are lowered instead.", + }, + mistysurge: { + name: "Misty Surge", + shortDesc: "On switch-in, this Pokemon summons Misty Terrain.", + }, + moldbreaker: { + name: "Mold Breaker", + shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", + + start: " [POKEMON] breaks the mold!", + }, + moody: { + name: "Moody", + desc: "This Pokemon has a random stat other than accuracy or evasion raised by 2 stages and another stat lowered by 1 stage at the end of each turn.", + shortDesc: "Boosts a random stat (except accuracy/evasion) +2 and another stat -1 every turn.", + descGen7: "This Pokemon has a random stat raised by 2 stages and another stat lowered by 1 stage at the end of each turn.", + shortDescGen7: "Raises a random stat by 2 and lowers another stat by 1 at the end of each turn.", + }, + motordrive: { + name: "Motor Drive", + desc: "This Pokemon is immune to Electric-type moves and raises its Speed by 1 stage when hit by an Electric-type move.", + shortDesc: "This Pokemon's Speed is raised 1 stage if hit by an Electric move; Electric immunity.", + }, + moxie: { + name: "Moxie", + desc: "This Pokemon's Attack is raised by 1 stage if it attacks and knocks out another Pokemon.", + shortDesc: "This Pokemon's Attack is raised by 1 stage if it attacks and KOes another Pokemon.", + }, + multiscale: { + name: "Multiscale", + shortDesc: "If this Pokemon is at full HP, damage taken from attacks is halved.", + }, + multitype: { + name: "Multitype", + shortDesc: "If this Pokemon is an Arceus, its type changes to match its held Plate or Z-Crystal.", + shortDescGen6: "If this Pokemon is an Arceus, its type changes to match its held Plate.", + }, + mummy: { + name: "Mummy", + desc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect the Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, and Zen Mode Abilities.", + shortDesc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy.", + descGen6: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect the Multitype or Stance Change Abilities.", + + changeAbility: " [TARGET]'s Ability became Mummy!", + }, + naturalcure: { + name: "Natural Cure", + shortDesc: "This Pokemon has its major status condition cured when it switches out.", + + activate: " ([POKEMON] is cured by its Natural Cure!)", + }, + neuroforce: { + name: "Neuroforce", + shortDesc: "This Pokemon's attacks that are super effective against the target do 1.25x damage.", + }, + neutralizinggas: { + name: "Neutralizing Gas", + desc: "While this Pokemon is active, Abilities have no effect. Does not affect the Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode Abilities.", + shortDesc: "While this Pokemon is active, Abilities have no effect.", + + start: " Neutralizing gas filled the area!", + end: " The effects of the neutralizing gas wore off!", + }, + noguard: { + name: "No Guard", + shortDesc: "Every move used by or against this Pokemon will always hit.", + }, + normalize: { + name: "Normalize", + desc: "This Pokemon's moves are changed to be Normal type and have their power multiplied by 1.2. This effect comes before other effects that change a move's type.", + shortDesc: "This Pokemon's moves are changed to be Normal type and have 1.2x power.", + descGen6: "This Pokemon's moves are changed to be Normal type. This effect comes before other effects that change a move's type.", + shortDescGen6: "This Pokemon's moves are changed to be Normal type.", + }, + oblivious: { + name: "Oblivious", + desc: "This Pokemon cannot be infatuated or taunted. Gaining this Ability while affected cures it. Immune to Intimidate.", + shortDesc: "This Pokemon cannot be infatuated or taunted. Immune to Intimidate.", + descGen7: "This Pokemon cannot be infatuated or taunted. Gaining this Ability while affected cures it.", + shortDescGen7: "This Pokemon cannot be infatuated or taunted.", + descGen5: "This Pokemon cannot be infatuated. Gaining this Ability while infatuated cures it.", + shortDescGen5: "This Pokemon cannot be infatuated. Gaining this Ability while infatuated cures it.", + }, + overcoat: { + name: "Overcoat", + shortDesc: "This Pokemon is immune to powder moves and damage from Sandstorm or Hail.", + shortDescGen5: "This Pokemon is immune to damage from Sandstorm or Hail.", + }, + overgrow: { + name: "Overgrow", + desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Grass-type attack.", + shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Grass attacks.", + descGen4: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Grass-type attacks have their power multiplied by 1.5.", + shortDescGen4: "At 1/3 or less of its max HP, this Pokemon's Grass-type attacks have 1.5x power.", + }, + owntempo: { + name: "Own Tempo", + desc: "This Pokemon cannot be confused. Gaining this Ability while confused cures it. Immune to Intimidate.", + shortDesc: "This Pokemon cannot be confused. Immune to Intimidate.", + descGen7: "This Pokemon cannot be confused. Gaining this Ability while confused cures it.", + shortDescGen7: "This Pokemon cannot be confused.", + + block: " [POKEMON] cannot be confused!", + }, + parentalbond: { + name: "Parental Bond", + desc: "This Pokemon's damaging moves become multi-hit moves that hit twice. The second hit has its damage quartered. Does not affect multi-hit moves or moves that have multiple targets.", + shortDesc: "This Pokemon's damaging moves hit twice. The second hit has its damage quartered.", + descGen6: "This Pokemon's damaging moves become multi-hit moves that hit twice. The second hit has its damage halved. Does not affect multi-hit moves or moves that have multiple targets.", + shortDescGen6: "This Pokemon's damaging moves hit twice. The second hit has its damage halved.", + }, + pastelveil: { + name: "Pastel Veil", + shortDesc: "This Pokemon and its allies cannot be poisoned. On switch-in, cures poisoned allies.", + }, + perishbody: { + name: "Perish Body", + desc: "Making contact with this Pokemon starts the Perish Song effect for it and the attacker. This effect does not happen if this Pokemon already has a perish count.", + shortDesc: "Making contact with this Pokemon starts the Perish Song effect for it and the attacker.", + + start: " Both Pok\u00E9mon will faint in three turns!", + }, + pickpocket: { + name: "Pickpocket", + desc: "If this Pokemon has no item and is hit by a contact move, it steals the attacker's item. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect.", + shortDesc: "If this Pokemon has no item and is hit by a contact move, it steals the attacker's item.", + }, + pickup: { + name: "Pickup", + shortDesc: "If this Pokemon has no item, it finds one used by an adjacent Pokemon this turn.", + descGen4: "No competitive use.", + shortDescGen4: "No competitive use.", + + addItem: '#recycle', + }, + pixilate: { + name: "Pixilate", + desc: "This Pokemon's Normal-type moves become Fairy-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDesc: "This Pokemon's Normal-type moves become Fairy type and have 1.2x power.", + descGen6: "This Pokemon's Normal-type moves become Fairy-type moves and have their power multiplied by 1.3. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDescGen6: "This Pokemon's Normal-type moves become Fairy type and have 1.3x power.", + }, + plus: { + name: "Plus", + desc: "If an active ally has this Ability or the Minus Ability, this Pokemon's Special Attack is multiplied by 1.5.", + shortDesc: "If an active ally has this Ability or the Minus Ability, this Pokemon's Sp. Atk is 1.5x.", + descGen4: "If an active ally has the Minus Ability, this Pokemon's Special Attack is multiplied by 1.5.", + shortDescGen4: "If an active ally has the Minus Ability, this Pokemon's Sp. Atk is 1.5x.", + descGen3: "If an active Pokemon has the Minus Ability, this Pokemon's Special Attack is multiplied by 1.5.", + shortDescGen3: "If an active Pokemon has the Minus Ability, this Pokemon's Sp. Atk is 1.5x.", + }, + poisonheal: { + name: "Poison Heal", + desc: "If this Pokemon is poisoned, it restores 1/8 of its maximum HP, rounded down, at the end of each turn instead of losing HP.", + shortDesc: "This Pokemon is healed by 1/8 of its max HP each turn when poisoned; no HP loss.", + }, + poisonpoint: { + name: "Poison Point", + shortDesc: "30% chance a Pokemon making contact with this Pokemon will be poisoned.", + descGen4: "30% chance a Pokemon making contact with this Pokemon will be poisoned. This effect does not happen if this Pokemon did not lose HP from the attack.", + descGen3: "1/3 chance a Pokemon making contact with this Pokemon will be poisoned. This effect does not happen if this Pokemon did not lose HP from the attack.", + shortDescGen3: "1/3 chance a Pokemon making contact with this Pokemon will be poisoned.", + }, + poisontouch: { + name: "Poison Touch", + shortDesc: "This Pokemon's contact moves have a 30% chance of poisoning.", + }, + powerconstruct: { + name: "Power Construct", + desc: "If this Pokemon is a Zygarde in its 10% or 50% Forme, it changes to Complete Forme when it has 1/2 or less of its maximum HP at the end of the turn.", + shortDesc: "If Zygarde 10%/50%, changes to Complete if at 1/2 max HP or less at end of turn.", + + activate: " You sense the presence of many!", + transform: "[POKEMON] transformed into its Complete Forme!", + }, + powerofalchemy: { + name: "Power of Alchemy", + desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Stance Change, Trace, Wonder Guard, and Zen Mode.", + shortDesc: "This Pokemon copies the Ability of an ally that faints.", + + changeAbility: "#receiver", + }, + powerspot: { + name: "Power Spot", + shortDesc: "This Pokemon's allies have the power of their moves multiplied by 1.3.", + }, + prankster: { + name: "Prankster", + shortDesc: "This Pokemon's Status moves have priority raised by 1, but Dark types are immune.", + shortDescGen6: "This Pokemon's non-damaging moves have their priority increased by 1.", + }, + pressure: { + name: "Pressure", + desc: "If this Pokemon is the target of an opposing Pokemon's move, that move loses one additional PP.", + shortDesc: "If this Pokemon is the target of a foe's move, that move loses one additional PP.", + descGen4: "If this Pokemon is the target of another Pokemon's move, that move loses one additional PP.", + shortDescGen4: "If this Pokemon is the target of a move, that move loses one additional PP.", + + start: " [POKEMON] is exerting its pressure!", + }, + primordialsea: { + name: "Primordial Sea", + desc: "On switch-in, the weather becomes heavy rain that prevents damaging Fire-type moves from executing, in addition to all the effects of Rain Dance. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Delta Stream or Desolate Land.", + shortDesc: "On switch-in, heavy rain begins until this Ability is not active in battle.", + }, + prismarmor: { + name: "Prism Armor", + desc: "This Pokemon receives 3/4 damage from supereffective attacks. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", + shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks.", + }, + propellertail: { + name: "Propeller Tail", + shortDesc: "This Pokemon's moves cannot be redirected to a different target by any effect.", + }, + protean: { + name: "Protean", + desc: "This Pokemon's type changes to match the type of the move it is about to use. This effect comes after all effects that change a move's type.", + shortDesc: "This Pokemon's type changes to match the type of the move it is about to use.", + }, + psychicsurge: { + name: "Psychic Surge", + shortDesc: "On switch-in, this Pokemon summons Psychic Terrain.", + }, + punkrock: { + name: "Punk Rock", + desc: "This Pokemon's sound-based moves have their power multiplied by 1.3. This Pokemon takes halved damage from sound-based moves.", + shortDesc: "This Pokemon receives 1/2 damage from sound moves. Its own have 1.3x power.", + }, + purepower: { + name: "Pure Power", + shortDesc: "This Pokemon's Attack is doubled.", + }, + queenlymajesty: { + name: "Queenly Majesty", + desc: "While this Pokemon is active, priority moves from opposing Pokemon targeted at allies are prevented from having an effect.", + shortDesc: "While this Pokemon is active, allies are protected from opposing priority moves.", + + block: "#damp", + }, + quickdraw: { + name: "Quick Draw", + shortDesc: "This Pokemon has a 30% chance to move first in its priority bracket with attacking moves.", + + activate: " Quick Draw made [POKEMON] move faster!", + }, + quickfeet: { + name: "Quick Feet", + desc: "If this Pokemon has a major status condition, its Speed is multiplied by 1.5; the Speed drop from paralysis is ignored.", + shortDesc: "If this Pokemon is statused, its Speed is 1.5x; ignores Speed drop from paralysis.", + }, + raindish: { + name: "Rain Dish", + desc: "If Rain Dance is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn. If this Pokemon is holding Utility Umbrella, its HP does not get restored.", + shortDesc: "If Rain Dance is active, this Pokemon heals 1/16 of its max HP each turn.", + descGen7: "If Rain Dance is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn.", + }, + rattled: { + name: "Rattled", + desc: "This Pokemon's Speed is raised by 1 stage if hit by a Bug-, Dark-, or Ghost-type attack, or Intimidate.", + shortDesc: "Speed is raised 1 stage if hit by a Bug-, Dark-, or Ghost-type attack, or Intimidated.", + descGen7: "This Pokemon's Speed is raised by 1 stage if hit by a Bug-, Dark-, or Ghost-type attack.", + shortDescGen7: "This Pokemon's Speed is raised 1 stage if hit by a Bug-, Dark-, or Ghost-type attack.", + }, + receiver: { + name: "Receiver", + desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Stance Change, Trace, Wonder Guard, and Zen Mode.", + shortDesc: "This Pokemon copies the Ability of an ally that faints.", + + changeAbility: " [SOURCE]'s [ABILITY] was taken over!", + }, + reckless: { + name: "Reckless", + desc: "This Pokemon's attacks with recoil or crash damage have their power multiplied by 1.2. Does not affect Struggle.", + shortDesc: "This Pokemon's attacks with recoil or crash damage have 1.2x power; not Struggle.", + }, + refrigerate: { + name: "Refrigerate", + desc: "This Pokemon's Normal-type moves become Ice-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDesc: "This Pokemon's Normal-type moves become Ice type and have 1.2x power.", + descGen6: "This Pokemon's Normal-type moves become Ice-type moves and have their power multiplied by 1.3. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", + shortDescGen6: "This Pokemon's Normal-type moves become Ice type and have 1.3x power.", + }, + regenerator: { + name: "Regenerator", + shortDesc: "This Pokemon restores 1/3 of its maximum HP, rounded down, when it switches out.", + }, + ripen: { + name: "Ripen", + // TODO Needs research. Following berries aren't supported currently: + // Custap, Jacoba, Rowap, Lanslat, Leppa, Micle + // Check if they are affected by ripen. + shortDesc: "When this Pokemon eats a Berry, its effect is doubled.", + }, + rivalry: { + name: "Rivalry", + desc: "This Pokemon's attacks have their power multiplied by 1.25 against targets of the same gender or multiplied by 0.75 against targets of the opposite gender. There is no modifier if either this Pokemon or the target is genderless.", + shortDesc: "This Pokemon's attacks do 1.25x on same gender targets; 0.75x on opposite gender.", + }, + rkssystem: { + name: "RKS System", + shortDesc: "If this Pokemon is a Silvally, its type changes to match its held Memory.", + }, + rockhead: { + name: "Rock Head", + desc: "This Pokemon does not take recoil damage besides Struggle, Life Orb, and crash damage.", + shortDesc: "This Pokemon does not take recoil damage besides Struggle/Life Orb/crash damage.", + }, + roughskin: { + name: "Rough Skin", + desc: "Pokemon making contact with this Pokemon lose 1/8 of their maximum HP, rounded down.", + shortDesc: "Pokemon making contact with this Pokemon lose 1/8 of their max HP.", + descGen4: "Pokemon making contact with this Pokemon lose 1/16 of their maximum HP, rounded down. This effect does not happen if this Pokemon did not lose HP from the attack.", + descGen3: "Pokemon making contact with this Pokemon lose 1/16 of their maximum HP, rounded down. This effect does not happen if this Pokemon did not lose HP from the attack.", + shortDescGen3: "Pokemon making contact with this Pokemon lose 1/16 of their max HP.", + + damage: " [POKEMON] was hurt!", + }, + runaway: { + name: "Run Away", + shortDesc: "No competitive use.", + }, + sandforce: { + name: "Sand Force", + desc: "If Sandstorm is active, this Pokemon's Ground-, Rock-, and Steel-type attacks have their power multiplied by 1.3. This Pokemon takes no damage from Sandstorm.", + shortDesc: "This Pokemon's Ground/Rock/Steel attacks do 1.3x in Sandstorm; immunity to it.", + }, + sandrush: { + name: "Sand Rush", + desc: "If Sandstorm is active, this Pokemon's Speed is doubled. This Pokemon takes no damage from Sandstorm.", + shortDesc: "If Sandstorm is active, this Pokemon's Speed is doubled; immunity to Sandstorm.", + }, + sandspit: { + name: "Sand Spit", + desc: "When this Pokemon is hit by an attack, Sandstorm begins. This effect happens after the effects of Max and G-Max Moves.", + shortDesc: "When this Pokemon is hit, Sandstorm begins.", + }, + sandstream: { + name: "Sand Stream", + shortDesc: "On switch-in, this Pokemon summons Sandstorm.", + }, + sandveil: { + name: "Sand Veil", + desc: "If Sandstorm is active, this Pokemon's evasiveness is multiplied by 1.25. This Pokemon takes no damage from Sandstorm.", + shortDesc: "If Sandstorm is active, this Pokemon's evasiveness is 1.25x; immunity to Sandstorm.", + }, + sapsipper: { + name: "Sap Sipper", + desc: "This Pokemon is immune to Grass-type moves and raises its Attack by 1 stage when hit by a Grass-type move.", + shortDesc: "This Pokemon's Attack is raised 1 stage if hit by a Grass move; Grass immunity.", + }, + schooling: { + name: "Schooling", + desc: "On switch-in, if this Pokemon is a Wishiwashi that is level 20 or above and has more than 1/4 of its maximum HP left, it changes to School Form. If it is in School Form and its HP drops to 1/4 of its maximum HP or less, it changes to Solo Form at the end of the turn. If it is in Solo Form and its HP is greater than 1/4 its maximum HP at the end of the turn, it changes to School Form.", + shortDesc: "If user is Wishiwashi, changes to School Form if it has > 1/4 max HP, else Solo Form.", + + transform: "[POKEMON] formed a school!", + transformEnd: "[POKEMON] stopped schooling!", + }, + scrappy: { + name: "Scrappy", + desc: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves. Immune to Intimidate.", + shortDesc: "Fighting, Normal moves hit Ghost. Immune to Intimidate.", + descGen7: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves.", + shortDescGen7: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves.", + }, + screencleaner: { + name: "Screen Cleaner", + shortDesc: "On switch-in, the effects of Aurora Veil, Light Screen, and Reflect end for both sides.", + }, + serenegrace: { + name: "Serene Grace", + shortDesc: "This Pokemon's moves have their secondary effect chance doubled.", + }, + shadowshield: { + name: "Shadow Shield", + desc: "If this Pokemon is at full HP, damage taken from attacks is halved. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", + shortDesc: "If this Pokemon is at full HP, damage taken from attacks is halved.", + }, + shadowtag: { + name: "Shadow Tag", + desc: "Prevents adjacent opposing Pokemon from choosing to switch out unless they are immune to trapping or also have this Ability.", + shortDesc: "Prevents adjacent foes from choosing to switch unless they also have this Ability.", + descGen3: "Prevents opposing Pokemon from choosing to switch out.", + shortDescGen3: "Prevents opposing Pokemon from choosing to switch out.", + }, + shedskin: { + name: "Shed Skin", + desc: "This Pokemon has a 33% chance to have its major status condition cured at the end of each turn.", + shortDesc: "This Pokemon has a 33% chance to have its status cured at the end of each turn.", + }, + sheerforce: { + name: "Sheer Force", + desc: "This Pokemon's attacks with secondary effects have their power multiplied by 1.3, but the secondary effects are removed.", + shortDesc: "This Pokemon's attacks with secondary effects have 1.3x power; nullifies the effects.", + }, + shellarmor: { + name: "Shell Armor", + shortDesc: "This Pokemon cannot be struck by a critical hit.", + }, + shielddust: { + name: "Shield Dust", + shortDesc: "This Pokemon is not affected by the secondary effect of another Pokemon's attack.", + }, + shieldsdown: { + name: "Shields Down", + desc: "If this Pokemon is a Minior, it changes to its Core forme if it has 1/2 or less of its maximum HP, and changes to Meteor Form if it has more than 1/2 its maximum HP. This check is done on switch-in and at the end of each turn. While in its Meteor Form, it cannot become affected by major status conditions. Moongeist Beam, Sunsteel Strike, and the Mold Breaker, Teravolt, and Turboblaze Abilities cannot ignore this Ability.", + shortDesc: "If Minior, switch-in/end of turn it changes to Core at 1/2 max HP or less, else Meteor.", + // n.b. this isn't a bug, the game actually says "Shields Down deactivated" on first transformation + // https://www.youtube.com/watch?v=SThjYBz4SEA + + transform: "Shields Down deactivated!\n([POKEMON] shielded itself.)", + transformEnd: "Shields Down activated!\n([POKEMON] stopped shielding itself.)", + }, + simple: { + name: "Simple", + desc: "When this Pokemon's stat stages are raised or lowered, the effect is doubled instead. This Ability does not affect stat stage increases received from Z-Power effects that happen before a Z-Move is used.", + shortDesc: "When this Pokemon's stat stages are raised or lowered, the effect is doubled instead.", + descGen6: "When this Pokemon's stat stages are raised or lowered, the effect is doubled instead.", + shortDescGen4: "This Pokemon's stat stages are considered doubled during stat calculations.", + }, + skilllink: { + name: "Skill Link", + shortDesc: "This Pokemon's multi-hit attacks always hit the maximum number of times.", + }, + slowstart: { + name: "Slow Start", + shortDesc: "On switch-in, this Pokemon's Attack and Speed are halved for 5 turns.", + + start: " [POKEMON] can't get it going!", + end: " [POKEMON] finally got its act together!", + }, + slushrush: { + name: "Slush Rush", + shortDesc: "If Hail is active, this Pokemon's Speed is doubled.", + }, + sniper: { + name: "Sniper", + shortDesc: "If this Pokemon strikes with a critical hit, the damage is multiplied by 1.5.", + }, + snowcloak: { + name: "Snow Cloak", + desc: "If Hail is active, this Pokemon's evasiveness is multiplied by 1.25. This Pokemon takes no damage from Hail.", + shortDesc: "If Hail is active, this Pokemon's evasiveness is 1.25x; immunity to Hail.", + }, + snowwarning: { + name: "Snow Warning", + shortDesc: "On switch-in, this Pokemon summons Hail.", + }, + solarpower: { + name: "Solar Power", + desc: "If Sunny Day is active, this Pokemon's Special Attack is multiplied by 1.5 and it loses 1/8 of its maximum HP, rounded down, at the end of each turn. If this Pokemon is holding Utility Umbrella, its Special Attack remains the same and it does not lose any HP.", + shortDesc: "If Sunny Day is active, this Pokemon's Sp. Atk is 1.5x; loses 1/8 max HP per turn.", + descGen7: "If Sunny Day is active, this Pokemon's Special Attack is multiplied by 1.5 and it loses 1/8 of its maximum HP, rounded down, at the end of each turn.", + }, + solidrock: { + name: "Solid Rock", + shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks.", + }, + soulheart: { + name: "Soul-Heart", + desc: "This Pokemon's Special Attack is raised by 1 stage when another Pokemon faints.", + shortDesc: "This Pokemon's Sp. Atk is raised by 1 stage when another Pokemon faints.", + }, + soundproof: { + name: "Soundproof", + shortDesc: "This Pokemon is immune to sound-based moves, including Heal Bell.", + shortDescGen5: "This Pokemon is immune to sound-based moves, except Heal Bell.", + shortDescGen4: "This Pokemon is immune to sound-based moves, including Heal Bell.", + }, + speedboost: { + name: "Speed Boost", + desc: "This Pokemon's Speed is raised by 1 stage at the end of each full turn it has been on the field.", + shortDesc: "This Pokemon's Speed is raised 1 stage at the end of each full turn on the field.", + }, + stakeout: { + name: "Stakeout", + shortDesc: "This Pokemon's attacking stat is doubled against a target that switched in this turn.", + }, + stall: { + name: "Stall", + shortDesc: "This Pokemon moves last among Pokemon using the same or greater priority moves.", + }, + stalwart: { + name: "Stalwart", + shortDesc: "This Pokemon's moves cannot be redirected to a different target by any effect.", + }, + stamina: { + name: "Stamina", + shortDesc: "This Pokemon's Defense is raised by 1 stage after it is damaged by a move.", + }, + stancechange: { + name: "Stance Change", + desc: "If this Pokemon is an Aegislash, it changes to Blade Forme before attempting to use an attacking move, and changes to Shield Forme before attempting to use King's Shield.", + shortDesc: "If Aegislash, changes Forme to Blade before attacks and Shield before King's Shield.", + + transform: "Changed to Blade Forme!", + transformEnd: "Changed to Shield Forme!", + }, + static: { + name: "Static", + shortDesc: "30% chance a Pokemon making contact with this Pokemon will be paralyzed.", + descGen4: "30% chance a Pokemon making contact with this Pokemon will be paralyzed. This effect does not happen if this Pokemon did not lose HP from the attack.", + descGen3: "1/3 chance a Pokemon making contact with this Pokemon will be paralyzed. This effect does not happen if this Pokemon did not lose HP from the attack.", + shortDescGen3: "1/3 chance a Pokemon making contact with this Pokemon will be paralyzed.", + }, + steadfast: { + name: "Steadfast", + shortDesc: "If this Pokemon flinches, its Speed is raised by 1 stage.", + }, + steamengine: { + name: "Steam Engine", + shortDesc: "This Pokemon's Speed is raised by 6 stages after it is damaged by Fire/Water moves.", + }, + steelworker: { + name: "Steelworker", + shortDesc: "This Pokemon's attacking stat is multiplied by 1.5 while using a Steel-type attack.", + }, + steelyspirit: { + name: "Steely Spirit", + shortDesc: "This Pokemon and its allies' Steel-type moves have their power multiplied by 1.5.", + }, + stench: { + name: "Stench", + shortDesc: "This Pokemon's attacks without a chance to flinch have a 10% chance to flinch.", + descGen4: "No competitive use.", + shortDescGen4: "No competitive use.", + }, + stickyhold: { + name: "Sticky Hold", + shortDesc: "This Pokemon cannot lose its held item due to another Pokemon's attack.", + + block: " [POKEMON]'s item cannot be removed!", + }, + stormdrain: { + name: "Storm Drain", + desc: "This Pokemon is immune to Water-type moves and raises its Special Attack by 1 stage when hit by a Water-type move. If this Pokemon is not the target of a single-target Water-type move used by another Pokemon, this Pokemon redirects that move to itself if it is within the range of that move.", + shortDesc: "This Pokemon draws Water moves to itself to raise Sp. Atk by 1; Water immunity.", + descGen4: "If this Pokemon is not the target of a single-target Water-type move used by another Pokemon, this Pokemon redirects that move to itself.", + shortDescGen4: "This Pokemon draws single-target Water moves to itself.", + + activate: "#lightningrod", + }, + strongjaw: { + name: "Strong Jaw", + desc: "This Pokemon's bite-based attacks have their power multiplied by 1.5.", + shortDesc: "This Pokemon's bite-based attacks have 1.5x power. Bug Bite is not boosted.", + }, + sturdy: { + name: "Sturdy", + desc: "If this Pokemon is at full HP, it survives one hit with at least 1 HP. OHKO moves fail when used against this Pokemon.", + shortDesc: "If this Pokemon is at full HP, it survives one hit with at least 1 HP. Immune to OHKO.", + descGen4: "OHKO moves fail when used against this Pokemon.", + shortDescGen4: "OHKO moves fail when used against this Pokemon.", + + activate: " [POKEMON] endured the hit!", + }, + suctioncups: { + name: "Suction Cups", + shortDesc: "This Pokemon cannot be forced to switch out by another Pokemon's attack or item.", + + block: " [POKEMON] is anchored in place with its suction cups!", + }, + superluck: { + name: "Super Luck", + shortDesc: "This Pokemon's critical hit ratio is raised by 1 stage.", + }, + surgesurfer: { + name: "Surge Surfer", + shortDesc: "If Electric Terrain is active, this Pokemon's Speed is doubled.", + }, + swarm: { + name: "Swarm", + desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Bug-type attack.", + shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Bug attacks.", + descGen4: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Bug-type attacks have their power multiplied by 1.5.", + shortDescGen4: "At 1/3 or less of its max HP, this Pokemon's Bug-type attacks have 1.5x power.", + }, + sweetveil: { + name: "Sweet Veil", + shortDesc: "This Pokemon and its allies cannot fall asleep.", + + block: " [POKEMON] can't fall asleep due to a veil of sweetness!", + }, + swiftswim: { + name: "Swift Swim", + desc: "If Rain Dance is active and this Pokemon is not holding Utility Umbrella, this Pokemon's Speed is doubled.", + shortDesc: "If Rain Dance is active, this Pokemon's Speed is doubled.", + descGen7: "If Rain Dance is active, this Pokemon's Speed is doubled.", + }, + symbiosis: { + name: "Symbiosis", + desc: "If an ally uses its item, this Pokemon gives its item to that ally immediately. Does not activate if the ally's item was stolen or knocked off.", + shortDesc: "If an ally uses its item, this Pokemon gives its item to that ally immediately.", + + activate: " [POKEMON] shared its [ITEM] with [TARGET]!", + }, + synchronize: { + name: "Synchronize", + desc: "If another Pokemon burns, paralyzes, poisons, or badly poisons this Pokemon, that Pokemon receives the same major status condition.", + shortDesc: "If another Pokemon burns/poisons/paralyzes this Pokemon, it also gets that status.", + descGen4: "If another Pokemon burns, paralyzes, or poisons this Pokemon, that Pokemon receives the same major status condition. If another Pokemon badly poisons this Pokemon, that Pokemon becomes poisoned.", + }, + tangledfeet: { + name: "Tangled Feet", + shortDesc: "This Pokemon's evasiveness is doubled as long as it is confused.", + }, + tanglinghair: { + name: "Tangling Hair", + shortDesc: "Pokemon making contact with this Pokemon have their Speed lowered by 1 stage.", + }, + technician: { + name: "Technician", + desc: "This Pokemon's moves of 60 power or less have their power multiplied by 1.5. Does affect Struggle.", + shortDesc: "This Pokemon's moves of 60 power or less have 1.5x power. Includes Struggle.", + }, + telepathy: { + name: "Telepathy", + shortDesc: "This Pokemon does not take damage from attacks made by its allies.", + + block: " [POKEMON] can't be hit by attacks from its ally Pok\u00E9mon!", + }, + teravolt: { + name: "Teravolt", + shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", + + start: " [POKEMON] is radiating a bursting aura!", + }, + thickfat: { + name: "Thick Fat", + desc: "If a Pokemon uses a Fire- or Ice-type attack against this Pokemon, that Pokemon's attacking stat is halved when calculating the damage to this Pokemon.", + shortDesc: "Fire/Ice-type moves against this Pokemon deal damage with a halved attacking stat.", + shortDescGen4: "The power of Fire- and Ice-type attacks against this Pokemon is halved.", + }, + tintedlens: { + name: "Tinted Lens", + shortDesc: "This Pokemon's attacks that are not very effective on a target deal double damage.", + }, + torrent: { + name: "Torrent", + desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Water-type attack.", + shortDesc: "At 1/3 or less of its max HP, this Pokemon's attacking stat is 1.5x with Water attacks.", + descGen4: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its Water-type attacks have their power multiplied by 1.5.", + shortDescGen4: "At 1/3 or less of its max HP, this Pokemon's Water-type attacks have 1.5x power.", + }, + toughclaws: { + name: "Tough Claws", + shortDesc: "This Pokemon's contact moves have their power multiplied by 1.3.", + }, + toxicboost: { + name: "Toxic Boost", + desc: "While this Pokemon is poisoned, the power of its physical attacks is multiplied by 1.5.", + shortDesc: "While this Pokemon is poisoned, its physical attacks have 1.5x power.", + }, + trace: { + name: "Trace", + desc: "On switch-in, or when this Pokemon acquires this ability, this Pokemon copies a random adjacent opposing Pokemon's Ability. However, if one or more adjacent Pokemon has the Ability \"No Ability\", Trace won't copy anything even if there is another valid Ability it could normally copy. Otherwise, if there is no Ability that can be copied at that time, this Ability will activate as soon as an Ability can be copied. Abilities that cannot be copied are the previously mentioned \"No Ability\", as well as Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, and Zen Mode.", + shortDesc: "On switch-in, or when it can, this Pokemon copies a random adjacent foe's Ability.", + + changeAbility: " [POKEMON] traced [SOURCE]'s [ABILITY]!", + }, + triage: { + name: "Triage", + shortDesc: "This Pokemon's healing moves have their priority increased by 3.", + }, + truant: { + name: "Truant", + shortDesc: "This Pokemon skips every other turn instead of using a move.", + + cant: "[POKEMON] is loafing around!", + }, + turboblaze: { + name: "Turboblaze", + shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", + + start: " [POKEMON] is radiating a blazing aura!", + }, + unaware: { + name: "Unaware", + desc: "This Pokemon ignores other Pokemon's Attack, Special Attack, and accuracy stat stages when taking damage, and ignores other Pokemon's Defense, Special Defense, and evasiveness stat stages when dealing damage.", + shortDesc: "This Pokemon ignores other Pokemon's stat stages when taking or doing damage.", + }, + unburden: { + name: "Unburden", + desc: "If this Pokemon loses its held item for any reason, its Speed is doubled. This boost is lost if it switches out or gains a new item or Ability.", + shortDesc: "Speed is doubled on held item loss; boost is lost if it switches, gets new item/Ability.", + }, + unnerve: { + name: "Unnerve", + desc: "While this Pokemon is active, it prevents opposing Pokemon from using their Berries. Activation message broadcasts before other Abilities regardless of the Pokemon's Speed tiers.", + shortDesc: "While this Pokemon is active, it prevents opposing Pokemon from using their Berries.", + + start: " [TEAM] is too nervous to eat Berries!", + }, + unseenfist: { + name: "Unseen Fist", + desc: "All of this Pokemon's moves that make contact bypass protection.", + shortDesc: "All contact moves hit through protection.", + }, + victorystar: { + name: "Victory Star", + shortDesc: "This Pokemon and its allies' moves have their accuracy multiplied by 1.1.", + }, + vitalspirit: { + name: "Vital Spirit", + shortDesc: "This Pokemon cannot fall asleep. Gaining this Ability while asleep cures it.", + }, + voltabsorb: { + name: "Volt Absorb", + desc: "This Pokemon is immune to Electric-type moves and restores 1/4 of its maximum HP, rounded down, when hit by an Electric-type move.", + shortDesc: "This Pokemon heals 1/4 of its max HP when hit by Electric moves; Electric immunity.", + descGen3: "This Pokemon is immune to damaging Electric-type moves and restores 1/4 of its maximum HP, rounded down, when hit by one.", + shortDescGen3: "This Pokemon heals 1/4 its max HP when hit by a damaging Electric move; immunity.", + }, + wanderingspirit: { + name: "Wandering Spirit", + shortDesc: "Pokemon making contact with this Pokemon have their Ability swapped with this one.", + + activate: "#skillswap", + }, + waterabsorb: { + name: "Water Absorb", + desc: "This Pokemon is immune to Water-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Water-type move.", + shortDesc: "This Pokemon heals 1/4 of its max HP when hit by Water moves; Water immunity.", + }, + waterbubble: { + name: "Water Bubble", + desc: "This Pokemon's attacking stat is doubled while using a Water-type attack. If a Pokemon uses a Fire-type attack against this Pokemon, that Pokemon's attacking stat is halved when calculating the damage to this Pokemon. This Pokemon cannot be burned. Gaining this Ability while burned cures it.", + shortDesc: "This Pokemon's Water power is 2x; it can't be burned; Fire power against it is halved.", + }, + watercompaction: { + name: "Water Compaction", + shortDesc: "This Pokemon's Defense is raised 2 stages after it is damaged by a Water-type move.", + }, + waterveil: { + name: "Water Veil", + shortDesc: "This Pokemon cannot be burned. Gaining this Ability while burned cures it.", + }, + weakarmor: { + name: "Weak Armor", + desc: "If a physical attack hits this Pokemon, its Defense is lowered by 1 stage and its Speed is raised by 2 stages.", + shortDesc: "If a physical attack hits this Pokemon, Defense is lowered by 1, Speed is raised by 2.", + descGen6: "If a physical attack hits this Pokemon, its Defense is lowered by 1 stage and its Speed is raised by 1 stage.", + shortDescGen6: "If a physical attack hits this Pokemon, Defense is lowered by 1, Speed is raised by 1.", + }, + whitesmoke: { + name: "White Smoke", + shortDesc: "Prevents other Pokemon from lowering this Pokemon's stat stages.", + }, + wimpout: { + name: "Wimp Out", + desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage bringing it to 1/2 or less of its maximum HP, it immediately switches out to a chosen ally. This effect applies after all hits from a multi-hit move; Sheer Force prevents it from activating if the move has a secondary effect. This effect applies to both direct and indirect damage, except Curse and Substitute on use, Belly Drum, Pain Split, and confusion damage.", + shortDesc: "This Pokemon switches out when it reaches 1/2 or less of its maximum HP.", + }, + wonderguard: { + name: "Wonder Guard", + shortDesc: "This Pokemon can only be damaged by supereffective moves and indirect damage.", + shortDescGen4: "This Pokemon is only damaged by Fire Fang, supereffective moves, indirect damage.", + shortDescGen3: "This Pokemon is only damaged by supereffective moves and indirect damage.", + }, + wonderskin: { + name: "Wonder Skin", + desc: "All non-damaging moves that check accuracy have their accuracy changed to 50% when used on this Pokemon. This change is done before any other accuracy modifying effects.", + shortDesc: "Status moves with accuracy checks are 50% accurate when used on this Pokemon.", + }, + zenmode: { + name: "Zen Mode", + desc: "If this Pokemon is a Darmanitan or Darmanitan-Galar, it changes to Zen Mode if it has 1/2 or less of its maximum HP at the end of a turn. If Darmanitan's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Standard Mode. This Ability cannot be removed or suppressed.", + shortDesc: "If Darmanitan, at end of turn changes Mode to Standard if > 1/2 max HP, else Zen.", + descGen6: "If this Pokemon is a Darmanitan, it changes to Zen Mode if it has 1/2 or less of its maximum HP at the end of a turn. If Darmanitan's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Standard Mode. If Darmanitan loses this Ability while in Zen Mode, it reverts to Standard Mode immediately.", + + transform: 'Zen Mode triggered!', + transformEnd: 'Zen Mode ended!', + }, + + // CAP + mountaineer: { + name: "Mountaineer", + shortDesc: "On switch-in, this Pokemon avoids all Rock-type attacks and Stealth Rock.", + }, + rebound: { + name: "Rebound", + desc: "On switch-in, this Pokemon blocks certain status moves and instead uses the move against the original user.", + shortDesc: "On switch-in, blocks certain status moves and bounces them back to the user.", + + move: '#magiccoat', + }, + persistent: { + name: "Persistent", + desc: "The duration of Gravity, Heal Block, Magic Room, Safeguard, Tailwind, Trick Room, and Wonder Room is increased by 2 turns if the effect is started by this Pokemon.", + shortDesc: "When used, Gravity/Heal Block/Safeguard/Tailwind/Room effects last 2 more turns.", + + activate: " [POKEMON] extends [MOVE] by 2 turns!", + }, +}; diff --git a/data/text/items.ts b/data/text/items.ts new file mode 100644 index 0000000000..c6cd28ac1f --- /dev/null +++ b/data/text/items.ts @@ -0,0 +1,2189 @@ +export const ItemsText = { + abomasite: { + name: "Abomasite", + desc: "If held by an Abomasnow, this item allows it to Mega Evolve in battle.", + }, + absolite: { + name: "Absolite", + desc: "If held by an Absol, this item allows it to Mega Evolve in battle.", + }, + absorbbulb: { + name: "Absorb Bulb", + desc: "Raises holder's Sp. Atk by 1 stage if hit by a Water-type attack. Single use.", + }, + adamantorb: { + name: "Adamant Orb", + desc: "If held by a Dialga, its Steel- and Dragon-type attacks have 1.2x power.", + }, + adrenalineorb: { + name: "Adrenaline Orb", + desc: "Raises holder's Speed by 1 stage if it gets affected by Intimidate. Single use.", + }, + aerodactylite: { + name: "Aerodactylite", + desc: "If held by an Aerodactyl, this item allows it to Mega Evolve in battle.", + }, + aggronite: { + name: "Aggronite", + desc: "If held by an Aggron, this item allows it to Mega Evolve in battle.", + }, + aguavberry: { + name: "Aguav Berry", + desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", + descGen7: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", + descGen6: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -SpD Nature. Single use.", + }, + airballoon: { + name: "Air Balloon", + desc: "Holder is immune to Ground-type attacks. Pops when holder is hit.", + + start: " [POKEMON] floats in the air with its Air Balloon!", + end: " [POKEMON]'s Air Balloon popped!", + }, + alakazite: { + name: "Alakazite", + desc: "If held by an Alakazam, this item allows it to Mega Evolve in battle.", + }, + aloraichiumz: { + name: "Aloraichium Z", + desc: "If held by an Alolan Raichu with Thunderbolt, it can use Stoked Sparksurfer.", + }, + altarianite: { + name: "Altarianite", + desc: "If held by an Altaria, this item allows it to Mega Evolve in battle.", + }, + ampharosite: { + name: "Ampharosite", + desc: "If held by an Ampharos, this item allows it to Mega Evolve in battle.", + }, + apicotberry: { + name: "Apicot Berry", + desc: "Raises holder's Sp. Def by 1 stage when at 1/4 max HP or less. Single use.", + }, + armorfossil: { + name: "Armor Fossil", + desc: "Can be revived into Shieldon.", + }, + aspearberry: { + name: "Aspear Berry", + desc: "Holder is cured if it is frozen. Single use.", + }, + assaultvest: { + name: "Assault Vest", + desc: "Holder's Sp. Def is 1.5x, but it can only select damaging moves.", + }, + audinite: { + name: "Audinite", + desc: "If held by an Audino, this item allows it to Mega Evolve in battle.", + }, + babiriberry: { + name: "Babiri Berry", + desc: "Halves damage taken from a supereffective Steel-type attack. Single use.", + }, + banettite: { + name: "Banettite", + desc: "If held by a Banette, this item allows it to Mega Evolve in battle.", + }, + beastball: { + name: "Beast Ball", + desc: "A special Poke Ball designed to catch Ultra Beasts.", + }, + beedrillite: { + name: "Beedrillite", + desc: "If held by a Beedrill, this item allows it to Mega Evolve in battle.", + }, + belueberry: { + name: "Belue Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + berryjuice: { + name: "Berry Juice", + desc: "Restores 20 HP when at 1/2 max HP or less. Single use.", + }, + berrysweet: { + name: "Berry Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + bigroot: { + name: "Big Root", + desc: "Holder gains 1.3x HP from draining/Aqua Ring/Ingrain/Leech Seed/Strength Sap.", + descGen6: "Holder gains 1.3x HP from draining moves, Aqua Ring, Ingrain, and Leech Seed.", + }, + bindingband: { + name: "Binding Band", + desc: "Holder's partial-trapping moves deal 1/6 max HP per turn instead of 1/8.", + }, + blackbelt: { + name: "Black Belt", + desc: "Holder's Fighting-type attacks have 1.2x power.", + descGen3: "Holder's Fighting-type attacks have 1.1x power.", + }, + blacksludge: { + name: "Black Sludge", + desc: "Each turn, if holder is a Poison type, restores 1/16 max HP; loses 1/8 if not.", + + heal: " [POKEMON] restored a little HP using its Black Sludge!", + }, + blackglasses: { + name: "Black Glasses", + desc: "Holder's Dark-type attacks have 1.2x power.", + descGen3: "Holder's Dark-type attacks have 1.1x power.", + }, + blastoisinite: { + name: "Blastoisinite", + desc: "If held by a Blastoise, this item allows it to Mega Evolve in battle.", + }, + blazikenite: { + name: "Blazikenite", + desc: "If held by a Blaziken, this item allows it to Mega Evolve in battle.", + }, + blueorb: { + name: "Blue Orb", + desc: "If held by a Kyogre, this item triggers its Primal Reversion in battle.", + }, + blukberry: { + name: "Bluk Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + blunderpolicy: { + name: "Blunder Policy", + desc: "If the holder misses due to accuracy, its Speed is raised by 2 stages. Single use.", + }, + bottlecap: { + name: "Bottle Cap", + desc: "Used for Hyper Training. One of a Pokemon's stats is calculated with an IV of 31.", + }, + brightpowder: { + name: "Bright Powder", + desc: "The accuracy of attacks against the holder is 0.9x.", + descGen2: "An attack against the holder has its accuracy out of 255 lowered by 20.", + }, + buggem: { + name: "Bug Gem", + desc: "Holder's first successful Bug-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Bug-type attack will have 1.5x power. Single use.", + }, + bugmemory: { + name: "Bug Memory", + desc: "Holder's Multi-Attack is Bug type.", + }, + buginiumz: { + name: "Buginium Z", + desc: "If holder has a Bug move, this item allows it to use a Bug Z-Move.", + }, + burndrive: { + name: "Burn Drive", + desc: "Holder's Techno Blast is Fire type.", + }, + cameruptite: { + name: "Cameruptite", + desc: "If held by a Camerupt, this item allows it to Mega Evolve in battle.", + }, + cellbattery: { + name: "Cell Battery", + desc: "Raises holder's Attack by 1 if hit by an Electric-type attack. Single use.", + }, + charcoal: { + name: "Charcoal", + desc: "Holder's Fire-type attacks have 1.2x power.", + descGen3: "Holder's Fire-type attacks have 1.1x power.", + }, + charizarditex: { + name: "Charizardite X", + desc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", + }, + charizarditey: { + name: "Charizardite Y", + desc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", + }, + chartiberry: { + name: "Charti Berry", + desc: "Halves damage taken from a supereffective Rock-type attack. Single use.", + }, + cheriberry: { + name: "Cheri Berry", + desc: "Holder cures itself if it is paralyzed. Single use.", + }, + cherishball: { + name: "Cherish Ball", + desc: "A rare Poke Ball that has been crafted to commemorate an occasion.", + }, + chestoberry: { + name: "Chesto Berry", + desc: "Holder wakes up if it is asleep. Single use.", + }, + chilanberry: { + name: "Chilan Berry", + desc: "Halves damage taken from a Normal-type attack. Single use.", + }, + chilldrive: { + name: "Chill Drive", + desc: "Holder's Techno Blast is Ice type.", + }, + chippedpot: { + name: "Chipped Pot", + desc: "Evolves Sinistea-Antique into Polteageist-Antique when used.", + }, + choiceband: { + name: "Choice Band", + desc: "Holder's Attack is 1.5x, but it can only select the first move it executes.", + }, + choicescarf: { + name: "Choice Scarf", + desc: "Holder's Speed is 1.5x, but it can only select the first move it executes.", + }, + choicespecs: { + name: "Choice Specs", + desc: "Holder's Sp. Atk is 1.5x, but it can only select the first move it executes.", + }, + chopleberry: { + name: "Chople Berry", + desc: "Halves damage taken from a supereffective Fighting-type attack. Single use.", + }, + clawfossil: { + name: "Claw Fossil", + desc: "Can be revived into Anorith.", + }, + cloversweet: { + name: "Clover Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + cobaberry: { + name: "Coba Berry", + desc: "Halves damage taken from a supereffective Flying-type attack. Single use.", + }, + colburberry: { + name: "Colbur Berry", + desc: "Halves damage taken from a supereffective Dark-type attack. Single use.", + }, + cornnberry: { + name: "Cornn Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + coverfossil: { + name: "Cover Fossil", + desc: "Can be revived into Tirtouga.", + }, + crackedpot: { + name: "Cracked Pot", + desc: "Evolves Sinistea into Polteageist when used.", + }, + custapberry: { + name: "Custap Berry", + desc: "Holder moves first in its priority bracket when at 1/4 max HP or less. Single use.", + + activate: " [POKEMON] can act faster than normal, thanks to its Custap Berry!", + }, + damprock: { + name: "Damp Rock", + desc: "Holder's use of Rain Dance lasts 8 turns instead of 5.", + }, + darkgem: { + name: "Dark Gem", + desc: "Holder's first successful Dark-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Dark-type attack will have 1.5x power. Single use.", + }, + darkmemory: { + name: "Dark Memory", + desc: "Holder's Multi-Attack is Dark type.", + }, + darkiniumz: { + name: "Darkinium Z", + desc: "If holder has a Dark move, this item allows it to use a Dark Z-Move.", + }, + dawnstone: { + name: "Dawn Stone", + desc: "Evolves male Kirlia into Gallade and female Snorunt into Froslass when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + decidiumz: { + name: "Decidium Z", + desc: "If held by a Decidueye with Spirit Shackle, it can use Sinister Arrow Raid.", + }, + deepseascale: { + name: "Deep Sea Scale", + desc: "If held by a Clamperl, its Sp. Def is doubled. Evolves Clamperl into Gorebyss when traded.", + shortDesc: "If held by a Clamperl, its Sp. Def is doubled.", + }, + deepseatooth: { + name: "Deep Sea Tooth", + desc: "If held by a Clamperl, its Sp. Atk is doubled. Evolves Clamperl into Huntail when traded.", + shortDesc: "If held by a Clamperl, its Sp. Atk is doubled.", + }, + destinyknot: { + name: "Destiny Knot", + desc: "If holder becomes infatuated, the other Pokemon also becomes infatuated.", + }, + diancite: { + name: "Diancite", + desc: "If held by a Diancie, this item allows it to Mega Evolve in battle.", + }, + diveball: { + name: "Dive Ball", + desc: "A Poke Ball that works especially well on Pokemon that live underwater.", + }, + domefossil: { + name: "Dome Fossil", + desc: "Can be revived into Kabuto.", + }, + dousedrive: { + name: "Douse Drive", + desc: "Holder's Techno Blast is Water type.", + }, + dracoplate: { + name: "Draco Plate", + desc: "Holder's Dragon-type attacks have 1.2x power. Judgment is Dragon type.", + }, + dragonfang: { + name: "Dragon Fang", + desc: "Holder's Dragon-type attacks have 1.2x power.", + descGen3: "Holder's Dragon-type attacks have 1.1x power.", + descGen2: "No competitive use.", + }, + dragongem: { + name: "Dragon Gem", + desc: "Holder's first successful Dragon-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Dragon-type attack will have 1.5x power. Single use.", + }, + dragonmemory: { + name: "Dragon Memory", + desc: "Holder's Multi-Attack is Dragon type.", + }, + dragonscale: { + name: "Dragon Scale", + desc: "Evolves Seadra into Kingdra when traded.", + descGen2: "Holder's Dragon-type attacks have 1.1x power. Evolves Seadra (trade).", + }, + dragoniumz: { + name: "Dragonium Z", + desc: "If holder has a Dragon move, this item allows it to use a Dragon Z-Move.", + }, + dreadplate: { + name: "Dread Plate", + desc: "Holder's Dark-type attacks have 1.2x power. Judgment is Dark type.", + }, + dreamball: { + name: "Dream Ball", + desc: "A Poke Ball that makes it easier to catch wild Pokémon while they're asleep.", + descGen7: "A special Poke Ball that appears out of nowhere in a bag at the Entree Forest.", + }, + dubiousdisc: { + name: "Dubious Disc", + desc: "Evolves Porygon2 into Porygon-Z when traded.", + }, + durinberry: { + name: "Durin Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + duskball: { + name: "Dusk Ball", + desc: "A Poke Ball that makes it easier to catch wild Pokemon at night or in caves.", + }, + duskstone: { + name: "Dusk Stone", + desc: "Evolves Murkrow into Honchkrow, Misdreavus into Mismagius, Lampent into Chandelure, and Doublade into Aegislash when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + earthplate: { + name: "Earth Plate", + desc: "Holder's Ground-type attacks have 1.2x power. Judgment is Ground type.", + }, + eeviumz: { + name: "Eevium Z", + desc: "If held by an Eevee with Last Resort, it can use Extreme Evoboost.", + }, + ejectbutton: { + name: "Eject Button", + desc: "If holder survives a hit, it immediately switches out to a chosen ally. Single use.", + + end: " [POKEMON] is switched out with the Eject Button!", + }, + ejectpack: { + name: "Eject Pack", + desc: "If the holder's stat stages are lowered, it switches to a chosen ally. Single use.", + }, + electirizer: { + name: "Electirizer", + desc: "Evolves Electabuzz into Electivire when traded.", + }, + electricgem: { + name: "Electric Gem", + desc: "Holder's first successful Electric-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Electric-type attack will have 1.5x power. Single use.", + }, + electricmemory: { + name: "Electric Memory", + desc: "Holder's Multi-Attack is Electric type.", + }, + electricseed: { + name: "Electric Seed", + desc: "If the terrain is Electric Terrain, raises holder's Defense by 1 stage. Single use.", + }, + electriumz: { + name: "Electrium Z", + desc: "If holder has an Electric move, this item allows it to use an Electric Z-Move.", + }, + energypowder: { + name: "Energy Powder", + desc: "Restores 60 HP to one Pokemon.", + descGen6: "Restores 50 HP to one Pokemon but lowers Happiness.", + }, + enigmaberry: { + name: "Enigma Berry", + desc: "Restores 1/4 max HP after holder is hit by a supereffective move. Single use.", + descGen3: "No competitive use.", + }, + eviolite: { + name: "Eviolite", + desc: "If holder's species can evolve, its Defense and Sp. Def are 1.5x.", + }, + expertbelt: { + name: "Expert Belt", + desc: "Holder's attacks that are super effective against the target do 1.2x damage.", + }, + fairiumz: { + name: "Fairium Z", + desc: "If holder has a Fairy move, this item allows it to use a Fairy Z-Move.", + }, + fairygem: { + name: "Fairy Gem", + desc: "Holder's first successful Fairy-type attack will have 1.3x power. Single use.", + }, + fairymemory: { + name: "Fairy Memory", + desc: "Holder's Multi-Attack is Fairy type.", + }, + fastball: { + name: "Fast Ball", + desc: "A Poke Ball that makes it easier to catch Pokemon which are quick to run away.", + }, + fightinggem: { + name: "Fighting Gem", + desc: "Holder's first successful Fighting-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Fighting-type attack will have 1.5x power. Single use.", + }, + fightingmemory: { + name: "Fighting Memory", + desc: "Holder's Multi-Attack is Fighting type.", + }, + fightiniumz: { + name: "Fightinium Z", + desc: "If holder has a Fighting move, this item allows it to use a Fighting Z-Move.", + }, + figyberry: { + name: "Figy Berry", + desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", + descGen7: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", + descGen6: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Atk Nature. Single use.", + }, + firegem: { + name: "Fire Gem", + desc: "Holder's first successful Fire-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Fire-type attack will have 1.5x power. Single use.", + }, + firememory: { + name: "Fire Memory", + desc: "Holder's Multi-Attack is Fire type.", + }, + firestone: { + name: "Fire Stone", + desc: "Evolves Vulpix into Ninetales, Growlithe into Arcanine, Eevee into Flareon, and Pansear into Simisear when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + firiumz: { + name: "Firium Z", + desc: "If holder has a Fire move, this item allows it to use a Fire Z-Move.", + }, + fistplate: { + name: "Fist Plate", + desc: "Holder's Fighting-type attacks have 1.2x power. Judgment is Fighting type.", + }, + flameorb: { + name: "Flame Orb", + desc: "At the end of every turn, this item attempts to burn the holder.", + }, + flameplate: { + name: "Flame Plate", + desc: "Holder's Fire-type attacks have 1.2x power. Judgment is Fire type.", + }, + floatstone: { + name: "Float Stone", + desc: "Holder's weight is halved.", + }, + flowersweet: { + name: "Flower Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + flyinggem: { + name: "Flying Gem", + desc: "Holder's first successful Flying-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Flying-type attack will have 1.5x power. Single use.", + }, + flyingmemory: { + name: "Flying Memory", + desc: "Holder's Multi-Attack is Flying type.", + }, + flyiniumz: { + name: "Flyinium Z", + desc: "If holder has a Flying move, this item allows it to use a Flying Z-Move.", + }, + focusband: { + name: "Focus Band", + desc: "Holder has a 10% chance to survive an attack that would KO it with 1 HP.", + descGen2: "Holder has a ~11.7% chance to survive an attack that would KO it with 1 HP.", + + activate: " [POKEMON] hung on using its Focus Band!", + }, + focussash: { + name: "Focus Sash", + desc: "If holder's HP is full, will survive an attack that would KO it with 1 HP. Single use.", + descGen4: "If holder's HP is full, survives all hits of one attack with at least 1 HP. Single use.", + + end: " [POKEMON] hung on using its Focus Sash!", + }, + fossilizedbird: { + name: "Fossilized Bird", + desc: "Can revive into Arctovish with Fossilized Fish or Arctozolt with Fossilized Dino.", + }, + fossilizeddino: { + name: "Fossilized Dino", + desc: "Can revive into Dracozolt with Fossilized Drake or Arctozolt with Fossilized Bird.", + }, + fossilizeddrake: { + name: "Fossilized Drake", + desc: "Can revive into Dracozolt with Fossilized Dino or Dracovish with Fossilized Fish.", + }, + fossilizedfish: { + name: "Fossilized Fish", + desc: "Can revive into Dracovish with Fossilized Drake or Arctovish with Fossilized Bird.", + }, + friendball: { + name: "Friend Ball", + desc: "A Poke Ball that makes caught Pokemon more friendly.", + }, + fullincense: { + name: "Full Incense", + desc: "Holder moves last in its priority bracket.", + }, + galladite: { + name: "Galladite", + desc: "If held by a Gallade, this item allows it to Mega Evolve in battle.", + }, + ganlonberry: { + name: "Ganlon Berry", + desc: "Raises holder's Defense by 1 stage when at 1/4 max HP or less. Single use.", + }, + garchompite: { + name: "Garchompite", + desc: "If held by a Garchomp, this item allows it to Mega Evolve in battle.", + }, + gardevoirite: { + name: "Gardevoirite", + desc: "If held by a Gardevoir, this item allows it to Mega Evolve in battle.", + }, + gengarite: { + name: "Gengarite", + desc: "If held by a Gengar, this item allows it to Mega Evolve in battle.", + }, + ghostgem: { + name: "Ghost Gem", + desc: "Holder's first successful Ghost-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Ghost-type attack will have 1.5x power. Single use.", + }, + ghostmemory: { + name: "Ghost Memory", + desc: "Holder's Multi-Attack is Ghost type.", + }, + ghostiumz: { + name: "Ghostium Z", + desc: "If holder has a Ghost move, this item allows it to use a Ghost Z-Move.", + }, + glalitite: { + name: "Glalitite", + desc: "If held by a Glalie, this item allows it to Mega Evolve in battle.", + }, + goldbottlecap: { + name: "Gold Bottle Cap", + desc: "Used for Hyper Training. All of a Pokemon's stats are calculated with an IV of 31.", + }, + grassgem: { + name: "Grass Gem", + desc: "Holder's first successful Grass-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Grass-type attack will have 1.5x power. Single use.", + }, + grassmemory: { + name: "Grass Memory", + desc: "Holder's Multi-Attack is Grass type.", + }, + grassiumz: { + name: "Grassium Z", + desc: "If holder has a Grass move, this item allows it to use a Grass Z-Move.", + }, + grassyseed: { + name: "Grassy Seed", + desc: "If the terrain is Grassy Terrain, raises holder's Defense by 1 stage. Single use.", + }, + greatball: { + name: "Great Ball", + desc: "A high-performance Ball that provides a higher catch rate than a Poke Ball.", + }, + grepaberry: { + name: "Grepa Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + gripclaw: { + name: "Grip Claw", + desc: "Holder's partial-trapping moves always last 7 turns.", + }, + griseousorb: { + name: "Griseous Orb", + desc: "If held by a Giratina, its Ghost- and Dragon-type attacks have 1.2x power.", + descGen4: "Can only be held by Giratina. Its Ghost- & Dragon-type attacks have 1.2x power.", + }, + groundgem: { + name: "Ground Gem", + desc: "Holder's first successful Ground-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Ground-type attack will have 1.5x power. Single use.", + }, + groundmemory: { + name: "Ground Memory", + desc: "Holder's Multi-Attack is Ground type.", + }, + groundiumz: { + name: "Groundium Z", + desc: "If holder has a Ground move, this item allows it to use a Ground Z-Move.", + }, + gyaradosite: { + name: "Gyaradosite", + desc: "If held by a Gyarados, this item allows it to Mega Evolve in battle.", + }, + habanberry: { + name: "Haban Berry", + desc: "Halves damage taken from a supereffective Dragon-type attack. Single use.", + }, + hardstone: { + name: "Hard Stone", + desc: "Holder's Rock-type attacks have 1.2x power.", + descGen3: "Holder's Rock-type attacks have 1.1x power.", + }, + healball: { + name: "Heal Ball", + desc: "A remedial Poke Ball that restores the caught Pokemon's HP and status problem.", + }, + heatrock: { + name: "Heat Rock", + desc: "Holder's use of Sunny Day lasts 8 turns instead of 5.", + }, + heavyball: { + name: "Heavy Ball", + desc: "A Poke Ball for catching very heavy Pokemon.", + }, + heavydutyboots: { + name: "Heavy-Duty Boots", + desc: "When switching in, the holder is unaffected by hazards on its side of the field.", + // Hazard Immunity implemented in moves.js + }, + helixfossil: { + name: "Helix Fossil", + desc: "Can be revived into Omanyte.", + }, + heracronite: { + name: "Heracronite", + desc: "If held by a Heracross, this item allows it to Mega Evolve in battle.", + }, + hondewberry: { + name: "Hondew Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + houndoominite: { + name: "Houndoominite", + desc: "If held by a Houndoom, this item allows it to Mega Evolve in battle.", + }, + iapapaberry: { + name: "Iapapa Berry", + desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", + descGen7: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", + descGen6: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Def Nature. Single use.", + }, + icegem: { + name: "Ice Gem", + desc: "Holder's first successful Ice-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Ice-type attack will have 1.5x power. Single use.", + }, + icememory: { + name: "Ice Memory", + desc: "Holder's Multi-Attack is Ice type.", + }, + icestone: { + name: "Ice Stone", + desc: "Evolves Alolan Sandshrew into Alolan Sandslash, Alolan Vulpix into Alolan Ninetales, Eevee into Glaceon, and Galarian Darumaka into Galarian Darmanitan when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + descGen7: "Evolves Alolan Sandshrew into Alolan Sandslash and Alolan Vulpix into Alolan Ninetales when used.", + }, + icicleplate: { + name: "Icicle Plate", + desc: "Holder's Ice-type attacks have 1.2x power. Judgment is Ice type.", + }, + iciumz: { + name: "Icium Z", + desc: "If holder has an Ice move, this item allows it to use an Ice Z-Move.", + }, + icyrock: { + name: "Icy Rock", + desc: "Holder's use of Hail lasts 8 turns instead of 5.", + }, + inciniumz: { + name: "Incinium Z", + desc: "If held by an Incineroar with Darkest Lariat, it can use Malicious Moonsault.", + }, + insectplate: { + name: "Insect Plate", + desc: "Holder's Bug-type attacks have 1.2x power. Judgment is Bug type.", + }, + ironball: { + name: "Iron Ball", + desc: "Holder is grounded, Speed halved. If Flying type, takes neutral Ground damage.", + descGen4: "Holder's Speed is halved and it becomes grounded.", + }, + ironplate: { + name: "Iron Plate", + desc: "Holder's Steel-type attacks have 1.2x power. Judgment is Steel type.", + }, + jabocaberry: { + name: "Jaboca Berry", + desc: "If holder is hit by a physical move, attacker loses 1/8 of its max HP. Single use.", + }, + jawfossil: { + name: "Jaw Fossil", + desc: "Can be revived into Tyrunt.", + }, + kasibberry: { + name: "Kasib Berry", + desc: "Halves damage taken from a supereffective Ghost-type attack. Single use.", + }, + kebiaberry: { + name: "Kebia Berry", + desc: "Halves damage taken from a supereffective Poison-type attack. Single use.", + }, + keeberry: { + name: "Kee Berry", + desc: "Raises holder's Defense by 1 stage after it is hit by a physical attack. Single use.", + }, + kelpsyberry: { + name: "Kelpsy Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + kangaskhanite: { + name: "Kangaskhanite", + desc: "If held by a Kangaskhan, this item allows it to Mega Evolve in battle.", + }, + kingsrock: { + name: "King's Rock", + desc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch. Evolves Poliwhirl into Politoed and Slowpoke into Slowking when traded.", + shortDesc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch.", + }, + kommoniumz: { + name: "Kommonium Z", + desc: "If held by a Kommo-o with Clanging Scales, it can use Clangorous Soulblaze.", + }, + laggingtail: { + name: "Lagging Tail", + desc: "Holder moves last in its priority bracket.", + }, + lansatberry: { + name: "Lansat Berry", + desc: "Holder gains the Focus Energy effect when at 1/4 max HP or less. Single use.", + }, + latiasite: { + name: "Latiasite", + desc: "If held by a Latias, this item allows it to Mega Evolve in battle.", + }, + latiosite: { + name: "Latiosite", + desc: "If held by a Latios, this item allows it to Mega Evolve in battle.", + }, + laxincense: { + name: "Lax Incense", + desc: "The accuracy of attacks against the holder is 0.9x.", + descGen3: "The accuracy of attacks against the holder is 0.95x.", + }, + leafstone: { + name: "Leaf Stone", + desc: "Evolves Gloom into Vileplume, Weepinbell into Victreebel, Exeggcute into Exeggutor or Alolan Exeggutor, Eevee into Leafeon, Nuzleaf into Shiftry, and Pansage into Simisage when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + descGen7: "Evolves Gloom into Vileplume, Weepinbell into Victreebel, Exeggcute into Exeggutor or Alolan Exeggutor, Nuzleaf into Shiftry, and Pansage into Simisage when used.", + }, + leek: { + name: "Leek", + desc: "If held by a Farfetch\u2019d or Sirfetch\u2019d, its critical hit ratio is raised by 2 stages.", + }, + leftovers: { + name: "Leftovers", + desc: "At the end of every turn, holder restores 1/16 of its max HP.", + + heal: " [POKEMON] restored a little HP using its Leftovers!", + }, + leppaberry: { + name: "Leppa Berry", + desc: "Restores 10 PP to the first of the holder's moves to reach 0 PP. Single use.", + + activate: " [POKEMON] restored PP to its move [MOVE] using its Leppa Berry!", + }, + levelball: { + name: "Level Ball", + desc: "A Poke Ball for catching Pokemon that are a lower level than your own.", + }, + liechiberry: { + name: "Liechi Berry", + desc: "Raises holder's Attack by 1 stage when at 1/4 max HP or less. Single use.", + }, + lifeorb: { + name: "Life Orb", + desc: "Holder's attacks do 1.3x damage, and it loses 1/10 its max HP after the attack.", + + damage: " [POKEMON] lost some of its HP!", + }, + lightball: { + name: "Light Ball", + desc: "If held by a Pikachu, its Attack and Sp. Atk are doubled.", + descGen3: "If held by a Pikachu, its Special Attack is doubled.", + }, + lightclay: { + name: "Light Clay", + desc: "Holder's use of Aurora Veil, Light Screen, or Reflect lasts 8 turns instead of 5.", + descGen6: "Holder's use of Light Screen or Reflect lasts 8 turns instead of 5.", + }, + lopunnite: { + name: "Lopunnite", + desc: "If held by a Lopunny, this item allows it to Mega Evolve in battle.", + }, + loveball: { + name: "Love Ball", + desc: "Poke Ball for catching Pokemon that are the opposite gender of your Pokemon.", + }, + lovesweet: { + name: "Love Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + lucarionite: { + name: "Lucarionite", + desc: "If held by a Lucario, this item allows it to Mega Evolve in battle.", + }, + luckypunch: { + name: "Lucky Punch", + desc: "If held by a Chansey, its critical hit ratio is raised by 2 stages.", + descGen2: "If held by a Chansey, its critical hit ratio is always at stage 2. (25% crit rate)", + }, + lumberry: { + name: "Lum Berry", + desc: "Holder cures itself if it is confused or has a major status condition. Single use.", + }, + luminousmoss: { + name: "Luminous Moss", + desc: "Raises holder's Sp. Def by 1 stage if hit by a Water-type attack. Single use.", + }, + lunaliumz: { + name: "Lunalium Z", + desc: "Lunala or Dawn Wings Necrozma with Moongeist Beam can use a special Z-Move.", + }, + lureball: { + name: "Lure Ball", + desc: "A Poke Ball for catching Pokemon hooked by a Rod when fishing.", + }, + lustrousorb: { + name: "Lustrous Orb", + desc: "If held by a Palkia, its Water- and Dragon-type attacks have 1.2x power.", + }, + luxuryball: { + name: "Luxury Ball", + desc: "A comfortable Poke Ball that makes a caught wild Pokemon quickly grow friendly.", + }, + lycaniumz: { + name: "Lycanium Z", + desc: "If held by a Lycanroc forme with Stone Edge, it can use Splintered Stormshards.", + }, + machobrace: { + name: "Macho Brace", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + magmarizer: { + name: "Magmarizer", + desc: "Evolves Magmar into Magmortar when traded.", + }, + magnet: { + name: "Magnet", + desc: "Holder's Electric-type attacks have 1.2x power.", + descGen3: "Holder's Electric-type attacks have 1.1x power.", + }, + magoberry: { + name: "Mago Berry", + desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", + descGen7: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", + descGen6: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Spe Nature. Single use.", + }, + magostberry: { + name: "Magost Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + mail: { + name: "Mail", + desc: "Cannot be given to or taken from a Pokemon, except by Covet/Knock Off/Thief.", + }, + manectite: { + name: "Manectite", + desc: "If held by a Manectric, this item allows it to Mega Evolve in battle.", + }, + marangaberry: { + name: "Maranga Berry", + desc: "Raises holder's Sp. Def by 1 stage after it is hit by a special attack. Single use.", + }, + marshadiumz: { + name: "Marshadium Z", + desc: "If held by Marshadow with Spectral Thief, it can use Soul-Stealing 7-Star Strike.", + }, + masterball: { + name: "Master Ball", + desc: "The best Ball with the ultimate performance. It will catch any wild Pokemon.", + }, + mawilite: { + name: "Mawilite", + desc: "If held by a Mawile, this item allows it to Mega Evolve in battle.", + }, + meadowplate: { + name: "Meadow Plate", + desc: "Holder's Grass-type attacks have 1.2x power. Judgment is Grass type.", + }, + medichamite: { + name: "Medichamite", + desc: "If held by a Medicham, this item allows it to Mega Evolve in battle.", + }, + mentalherb: { + name: "Mental Herb", + desc: "Cures holder of Attract, Disable, Encore, Heal Block, Taunt, Torment. Single use.", + descGen4: "Holder is cured if it is infatuated. Single use.", + }, + metagrossite: { + name: "Metagrossite", + desc: "If held by a Metagross, this item allows it to Mega Evolve in battle.", + }, + metalcoat: { + name: "Metal Coat", + desc: "Holder's Steel-type attacks have 1.2x power. Evolves Onix into Steelix and Scyther into Scizor when traded.", + shortDesc: "Holder's Steel-type attacks have 1.2x power.", + descGen3: "Holder's Steel-type attacks have 1.1x power. Evolves Onix into Steelix and Scyther into Scizor when traded.", + shortDescGen3: "Holder's Steel-type attacks have 1.1x power.", + }, + metalpowder: { + name: "Metal Powder", + desc: "If held by a Ditto that hasn't Transformed, its Defense is doubled.", + descGen2: "If held by a Ditto, its Defense and Sp. Def are 1.5x, even while Transformed.", + }, + metronome: { + name: "Metronome", + desc: "Damage of moves used on consecutive turns is increased. Max 2x after 5 turns.", + descGen4: "Damage of moves used on consecutive turns is increased. Max 2x after 10 turns.", + }, + mewniumz: { + name: "Mewnium Z", + desc: "If held by a Mew with Psychic, it can use Genesis Supernova.", + }, + mewtwonitex: { + name: "Mewtwonite X", + desc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", + }, + mewtwonitey: { + name: "Mewtwonite Y", + desc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", + }, + micleberry: { + name: "Micle Berry", + desc: "Holder's next move has 1.2x accuracy when at 1/4 max HP or less. Single use.", + }, + mimikiumz: { + name: "Mimikium Z", + desc: "If held by a Mimikyu with Play Rough, it can use Let's Snuggle Forever.", + }, + mindplate: { + name: "Mind Plate", + desc: "Holder's Psychic-type attacks have 1.2x power. Judgment is Psychic type.", + }, + miracleseed: { + name: "Miracle Seed", + desc: "Holder's Grass-type attacks have 1.2x power.", + descGen3: "Holder's Grass-type attacks have 1.1x power.", + }, + mistyseed: { + name: "Misty Seed", + desc: "If the terrain is Misty Terrain, raises holder's Sp. Def by 1 stage. Single use.", + }, + moonball: { + name: "Moon Ball", + desc: "A Poke Ball for catching Pokemon that evolve using the Moon Stone.", + }, + moonstone: { + name: "Moon Stone", + desc: "Evolves Nidorina into Nidoqueen, Nidorino into Nidoking, Clefairy into Clefable, Jigglypuff into Wigglytuff, Skitty into Delcatty, and Munna into Musharna when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + muscleband: { + name: "Muscle Band", + desc: "Holder's physical attacks have 1.1x power.", + }, + mysticwater: { + name: "Mystic Water", + desc: "Holder's Water-type attacks have 1.2x power.", + descGen3: "Holder's Water-type attacks have 1.1x power.", + }, + nanabberry: { + name: "Nanab Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + nestball: { + name: "Nest Ball", + desc: "A Poke Ball that works especially well on weaker Pokemon in the wild.", + }, + netball: { + name: "Net Ball", + desc: "A Poke Ball that works especially well on Water- and Bug-type Pokemon.", + }, + nevermeltice: { + name: "Never-Melt Ice", + desc: "Holder's Ice-type attacks have 1.2x power.", + descGen3: "Holder's Ice-type attacks have 1.1x power.", + }, + nomelberry: { + name: "Nomel Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + normalgem: { + name: "Normal Gem", + desc: "Holder's first successful Normal-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Normal-type attack will have 1.5x power. Single use.", + }, + normaliumz: { + name: "Normalium Z", + desc: "If holder has a Normal move, this item allows it to use a Normal Z-Move.", + }, + occaberry: { + name: "Occa Berry", + desc: "Halves damage taken from a supereffective Fire-type attack. Single use.", + }, + oddincense: { + name: "Odd Incense", + desc: "Holder's Psychic-type attacks have 1.2x power.", + }, + oldamber: { + name: "Old Amber", + desc: "Can be revived into Aerodactyl.", + }, + oranberry: { + name: "Oran Berry", + desc: "Restores 10 HP when at 1/2 max HP or less. Single use.", + }, + ovalstone: { + name: "Oval Stone", + desc: "Evolves Happiny into Chansey when held and leveled up during the day.", + }, + pamtreberry: { + name: "Pamtre Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + parkball: { + name: "Park Ball", + desc: "A special Poke Ball for the Pal Park.", + }, + passhoberry: { + name: "Passho Berry", + desc: "Halves damage taken from a supereffective Water-type attack. Single use.", + }, + payapaberry: { + name: "Payapa Berry", + desc: "Halves damage taken from a supereffective Psychic-type attack. Single use.", + }, + pechaberry: { + name: "Pecha Berry", + desc: "Holder is cured if it is poisoned. Single use.", + }, + persimberry: { + name: "Persim Berry", + desc: "Holder is cured if it is confused. Single use.", + }, + petayaberry: { + name: "Petaya Berry", + desc: "Raises holder's Sp. Atk by 1 stage when at 1/4 max HP or less. Single use.", + }, + pidgeotite: { + name: "Pidgeotite", + desc: "If held by a Pidgeot, this item allows it to Mega Evolve in battle.", + }, + pikaniumz: { + name: "Pikanium Z", + desc: "If held by a Pikachu with Volt Tackle, it can use Catastropika.", + }, + pikashuniumz: { + name: "Pikashunium Z", + desc: "If held by cap Pikachu with Thunderbolt, it can use 10,000,000 Volt Thunderbolt.", + }, + pinapberry: { + name: "Pinap Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + pinsirite: { + name: "Pinsirite", + desc: "If held by a Pinsir, this item allows it to Mega Evolve in battle.", + }, + pixieplate: { + name: "Pixie Plate", + desc: "Holder's Fairy-type attacks have 1.2x power. Judgment is Fairy type.", + }, + plumefossil: { + name: "Plume Fossil", + desc: "Can be revived into Archen.", + }, + poisonbarb: { + name: "Poison Barb", + desc: "Holder's Poison-type attacks have 1.2x power.", + descGen3: "Holder's Poison-type attacks have 1.1x power.", + }, + poisongem: { + name: "Poison Gem", + desc: "Holder's first successful Poison-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Poison-type attack will have 1.5x power. Single use.", + }, + poisonmemory: { + name: "Poison Memory", + desc: "Holder's Multi-Attack is Poison type.", + }, + poisoniumz: { + name: "Poisonium Z", + desc: "If holder has a Poison move, this item allows it to use a Poison Z-Move.", + }, + pokeball: { + name: "Poke Ball", + desc: "A device for catching wild Pokemon. It is designed as a capsule system.", + }, + pomegberry: { + name: "Pomeg Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + poweranklet: { + name: "Power Anklet", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + powerband: { + name: "Power Band", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + powerbelt: { + name: "Power Belt", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + powerbracer: { + name: "Power Bracer", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + powerherb: { + name: "Power Herb", + desc: "Holder's two-turn moves complete in one turn (except Sky Drop). Single use.", + + end: " [POKEMON] became fully charged due to its Power Herb!", + }, + powerlens: { + name: "Power Lens", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + powerweight: { + name: "Power Weight", + desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + }, + premierball: { + name: "Premier Ball", + desc: "A rare Poke Ball that has been crafted to commemorate an event.", + }, + primariumz: { + name: "Primarium Z", + desc: "If held by a Primarina with Sparkling Aria, it can use Oceanic Operetta.", + }, + prismscale: { + name: "Prism Scale", + desc: "Evolves Feebas into Milotic when traded.", + }, + protectivepads: { + name: "Protective Pads", + desc: "Holder's moves are protected from adverse contact effects, except Pickpocket.", + + block: " [POKEMON] protected itself with its Protective Pads!", + }, + protector: { + name: "Protector", + desc: "Evolves Rhydon into Rhyperior when traded.", + }, + psychicgem: { + name: "Psychic Gem", + desc: "Holder's first successful Psychic-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Psychic-type attack will have 1.5x power. Single use.", + }, + psychicmemory: { + name: "Psychic Memory", + desc: "Holder's Multi-Attack is Psychic type.", + }, + psychicseed: { + name: "Psychic Seed", + desc: "If the terrain is Psychic Terrain, raises holder's Sp. Def by 1 stage. Single use.", + }, + psychiumz: { + name: "Psychium Z", + desc: "If holder has a Psychic move, this item allows it to use a Psychic Z-Move.", + }, + qualotberry: { + name: "Qualot Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + quickball: { + name: "Quick Ball", + desc: "A Poke Ball that provides a better catch rate at the start of a wild encounter.", + }, + quickclaw: { + name: "Quick Claw", + desc: "Each turn, holder has a 20% chance to move first in its priority bracket.", + descGen2: "Each turn, holder has a ~23.4% chance to move first in its priority bracket.", + + activate: " [POKEMON] can act faster than normal, thanks to its Quick Claw!", + }, + quickpowder: { + name: "Quick Powder", + desc: "If held by a Ditto that hasn't Transformed, its Speed is doubled.", + }, + rabutaberry: { + name: "Rabuta Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + rarebone: { + name: "Rare Bone", + desc: "No competitive use other than when used with Fling.", + }, + rawstberry: { + name: "Rawst Berry", + desc: "Holder is cured if it is burned. Single use.", + }, + razorclaw: { + name: "Razor Claw", + desc: "Holder's critical hit ratio is raised by 1 stage. Evolves Sneasel into Weavile when held and leveled up during the night.", + shortDesc: "Holder's critical hit ratio is raised by 1 stage.", + }, + razorfang: { + name: "Razor Fang", + desc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch. Evolves Gligar into Gliscor when held and leveled up during the night.", + shortDesc: "Holder's attacks without a chance to flinch gain a 10% chance to flinch.", + }, + razzberry: { + name: "Razz Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + reapercloth: { + name: "Reaper Cloth", + desc: "Evolves Dusclops into Dusknoir when traded.", + }, + redcard: { + name: "Red Card", + desc: "If holder survives a hit, attacker is forced to switch to a random ally. Single use.", + + end: " [POKEMON] held up its Red Card against [TARGET]!", + }, + redorb: { + name: "Red Orb", + desc: "If held by a Groudon, this item triggers its Primal Reversion in battle.", + }, + repeatball: { + name: "Repeat Ball", + desc: "A Poke Ball that works well on Pokemon species that were previously caught.", + }, + ribbonsweet: { + name: "Ribbon Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + rindoberry: { + name: "Rindo Berry", + desc: "Halves damage taken from a supereffective Grass-type attack. Single use.", + }, + ringtarget: { + name: "Ring Target", + desc: "The holder's type immunities granted solely by its typing are negated.", + }, + rockgem: { + name: "Rock Gem", + desc: "Holder's first successful Rock-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Rock-type attack will have 1.5x power. Single use.", + }, + rockincense: { + name: "Rock Incense", + desc: "Holder's Rock-type attacks have 1.2x power.", + }, + rockmemory: { + name: "Rock Memory", + desc: "Holder's Multi-Attack is Rock type.", + }, + rockiumz: { + name: "Rockium Z", + desc: "If holder has a Rock move, this item allows it to use a Rock Z-Move.", + }, + rockyhelmet: { + name: "Rocky Helmet", + desc: "If holder is hit by a contact move, the attacker loses 1/6 of its max HP.", + + damage: " [POKEMON] was hurt by the Rocky Helmet!", + }, + roomservice: { + name: "Room Service", + desc: "If Trick Room is active, the holder's Speed is lowered by 1 stage. Single use.", + }, + rootfossil: { + name: "Root Fossil", + desc: "Can be revived into Lileep.", + }, + roseincense: { + name: "Rose Incense", + desc: "Holder's Grass-type attacks have 1.2x power.", + }, + roseliberry: { + name: "Roseli Berry", + desc: "Halves damage taken from a supereffective Fairy-type attack. Single use.", + }, + rowapberry: { + name: "Rowap Berry", + desc: "If holder is hit by a special move, attacker loses 1/8 of its max HP. Single use.", + }, + rustedshield: { + name: "Rusted Shield", + desc: "If held by a Zamazenta, this item changes its forme to Crowned Shield.", + }, + rustedsword: { + name: "Rusted Sword", + desc: "If held by a Zacian, this item changes its forme to Crowned Sword.", + }, + sablenite: { + name: "Sablenite", + desc: "If held by a Sableye, this item allows it to Mega Evolve in battle.", + }, + sachet: { + name: "Sachet", + desc: "Evolves Spritzee into Aromatisse when traded.", + }, + safariball: { + name: "Safari Ball", + desc: "A special Poke Ball that is used only in the Safari Zone and Great Marsh.", + }, + safetygoggles: { + name: "Safety Goggles", + desc: "Holder is immune to powder moves and damage from Sandstorm or Hail.", + + block: " [POKEMON] is not affected by [MOVE] thanks to its Safety Goggles!", + }, + sailfossil: { + name: "Sail Fossil", + desc: "Can be revived into Amaura.", + }, + salacberry: { + name: "Salac Berry", + desc: "Raises holder's Speed by 1 stage when at 1/4 max HP or less. Single use.", + }, + salamencite: { + name: "Salamencite", + desc: "If held by a Salamence, this item allows it to Mega Evolve in battle.", + }, + sceptilite: { + name: "Sceptilite", + desc: "If held by a Sceptile, this item allows it to Mega Evolve in battle.", + }, + scizorite: { + name: "Scizorite", + desc: "If held by a Scizor, this item allows it to Mega Evolve in battle.", + }, + scopelens: { + name: "Scope Lens", + desc: "Holder's critical hit ratio is raised by 1 stage.", + }, + seaincense: { + name: "Sea Incense", + desc: "Holder's Water-type attacks have 1.2x power.", + descGen3: "Holder's Water-type attacks have 1.05x power.", + }, + sharpbeak: { + name: "Sharp Beak", + desc: "Holder's Flying-type attacks have 1.2x power.", + descGen3: "Holder's Flying-type attacks have 1.1x power.", + }, + sharpedonite: { + name: "Sharpedonite", + desc: "If held by a Sharpedo, this item allows it to Mega Evolve in battle.", + }, + shedshell: { + name: "Shed Shell", + desc: "Holder may switch out even when trapped by another Pokemon, or by Ingrain.", + }, + shellbell: { + name: "Shell Bell", + desc: "After an attack, holder gains 1/8 of the damage in HP dealt to other Pokemon.", + + heal: " [POKEMON] restored a little HP using its Shell Bell!", + }, + shinystone: { + name: "Shiny Stone", + desc: "Evolves Togetic into Togekiss, Roselia into Roserade, Minccino into Cinccino, and Floette into Florges when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + shockdrive: { + name: "Shock Drive", + desc: "Holder's Techno Blast is Electric type.", + }, + shucaberry: { + name: "Shuca Berry", + desc: "Halves damage taken from a supereffective Ground-type attack. Single use.", + }, + silkscarf: { + name: "Silk Scarf", + desc: "Holder's Normal-type attacks have 1.2x power.", + descGen3: "Holder's Normal-type attacks have 1.1x power.", + }, + silverpowder: { + name: "Silver Powder", + desc: "Holder's Bug-type attacks have 1.2x power.", + descGen3: "Holder's Bug-type attacks have 1.1x power.", + }, + sitrusberry: { + name: "Sitrus Berry", + desc: "Restores 1/4 max HP when at 1/2 max HP or less. Single use.", + descGen3: "Restores 30 HP when at 1/2 max HP or less. Single use.", + }, + skullfossil: { + name: "Skull Fossil", + desc: "Can be revived into Cranidos.", + }, + skyplate: { + name: "Sky Plate", + desc: "Holder's Flying-type attacks have 1.2x power. Judgment is Flying type.", + }, + slowbronite: { + name: "Slowbronite", + desc: "If held by a Slowbro, this item allows it to Mega Evolve in battle.", + }, + smoothrock: { + name: "Smooth Rock", + desc: "Holder's use of Sandstorm lasts 8 turns instead of 5.", + }, + snorliumz: { + name: "Snorlium Z", + desc: "If held by a Snorlax with Giga Impact, it can use Pulverizing Pancake.", + }, + snowball: { + name: "Snowball", + desc: "Raises holder's Attack by 1 if hit by an Ice-type attack. Single use.", + }, + softsand: { + name: "Soft Sand", + desc: "Holder's Ground-type attacks have 1.2x power.", + descGen3: "Holder's Ground-type attacks have 1.1x power.", + }, + solganiumz: { + name: "Solganium Z", + desc: "Solgaleo or Dusk Mane Necrozma with Sunsteel Strike can use a special Z-Move.", + }, + souldew: { + name: "Soul Dew", + desc: "If held by a Latias/Latios, its Dragon- and Psychic-type moves have 1.2x power.", + descGen6: "If held by a Latias or a Latios, its Sp. Atk and Sp. Def are 1.5x.", + }, + spelltag: { + name: "Spell Tag", + desc: "Holder's Ghost-type attacks have 1.2x power.", + descGen3: "Holder's Ghost-type attacks have 1.1x power.", + }, + spelonberry: { + name: "Spelon Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + splashplate: { + name: "Splash Plate", + desc: "Holder's Water-type attacks have 1.2x power. Judgment is Water type.", + }, + spookyplate: { + name: "Spooky Plate", + desc: "Holder's Ghost-type attacks have 1.2x power. Judgment is Ghost type.", + }, + sportball: { + name: "Sport Ball", + desc: "A special Poke Ball for the Bug-Catching Contest.", + }, + starfberry: { + name: "Starf Berry", + desc: "Raises a random stat by 2 when at 1/4 max HP or less (not acc/eva). Single use.", + }, + starsweet: { + name: "Star Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + steelixite: { + name: "Steelixite", + desc: "If held by a Steelix, this item allows it to Mega Evolve in battle.", + }, + steelgem: { + name: "Steel Gem", + desc: "Holder's first successful Steel-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Steel-type attack will have 1.5x power. Single use.", + }, + steelmemory: { + name: "Steel Memory", + desc: "Holder's Multi-Attack is Steel type.", + }, + steeliumz: { + name: "Steelium Z", + desc: "If holder has a Steel move, this item allows it to use a Steel Z-Move.", + }, + stick: { + name: "Stick", + desc: "If held by a Farfetch\u2019d, its critical hit ratio is raised by 2 stages.", + descGen2: "If held by a Farfetch\u2019d, its critical hit ratio is always at stage 2. (25% crit rate)", + }, + stickybarb: { + name: "Sticky Barb", + desc: "Each turn, holder loses 1/8 max HP. An attacker making contact can receive it.", + }, + stoneplate: { + name: "Stone Plate", + desc: "Holder's Rock-type attacks have 1.2x power. Judgment is Rock type.", + }, + strawberrysweet: { + name: "Strawberry Sweet", + desc: "Evolves Milcery into Alcremie when held and spun around.", + }, + sunstone: { + name: "Sun Stone", + desc: "Evolves Gloom into Bellossom, Sunkern into Sunflora, Cottonee into Whimsicott, Petilil into Lilligant, and Helioptile into Heliolisk when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + swampertite: { + name: "Swampertite", + desc: "If held by a Swampert, this item allows it to Mega Evolve in battle.", + }, + sweetapple: { + name: "Sweet Apple", + desc: "Evolves Applin into Appletun when used.", + }, + tamatoberry: { + name: "Tamato Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + tangaberry: { + name: "Tanga Berry", + desc: "Halves damage taken from a supereffective Bug-type attack. Single use.", + }, + tapuniumz: { + name: "Tapunium Z", + desc: "If held by a Tapu with Nature's Madness, it can use Guardian of Alola.", + }, + tartapple: { + name: "Tart Apple", + desc: "Evolves Applin into Flapple when used.", + }, + terrainextender: { + name: "Terrain Extender", + desc: "Holder's use of Electric/Grassy/Misty/Psychic Terrain lasts 8 turns instead of 5.", + }, + thickclub: { + name: "Thick Club", + desc: "If held by a Cubone or a Marowak, its Attack is doubled.", + }, + throatspray: { + name: "Throat Spray", + desc: "Raises holder's Special Attack by 1 stage after it uses a sound move. Single use.", + }, + thunderstone: { + name: "Thunder Stone", + desc: "Evolves Pikachu into Raichu or Alolan Raichu, Eevee into Jolteon, Eelektrik into Eelektross, and Charjabug into Vikavolt when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + descGen7: "Evolves Pikachu into Raichu or Alolan Raichu, Eevee into Jolteon, and Eelektrik into Eelektross when used.", + }, + timerball: { + name: "Timer Ball", + desc: "A Poke Ball that becomes better the more turns there are in a battle.", + }, + toxicorb: { + name: "Toxic Orb", + desc: "At the end of every turn, this item attempts to badly poison the holder.", + }, + toxicplate: { + name: "Toxic Plate", + desc: "Holder's Poison-type attacks have 1.2x power. Judgment is Poison type.", + }, + tr00: { + name: "TR00", + desc: "Teaches certain Pokemon the move Swords Dance. One use.", + }, + tr01: { + name: "TR01", + desc: "Teaches certain Pokemon the move Body Slam. One use.", + }, + tr02: { + name: "TR02", + desc: "Teaches certain Pokemon the move Flamethrower. One use.", + }, + tr03: { + name: "TR03", + desc: "Teaches certain Pokemon the move Hydro Pump. One use.", + }, + tr04: { + name: "TR04", + desc: "Teaches certain Pokemon the move Surf. One use.", + }, + tr05: { + name: "TR05", + desc: "Teaches certain Pokemon the move Ice Beam. One use.", + }, + tr06: { + name: "TR06", + desc: "Teaches certain Pokemon the move Blizzard. One use.", + }, + tr07: { + name: "TR07", + desc: "Teaches certain Pokemon the move Low Kick. One use.", + }, + tr08: { + name: "TR08", + desc: "Teaches certain Pokemon the move Thunderbolt. One use.", + }, + tr09: { + name: "TR09", + desc: "Teaches certain Pokemon the move Thunder. One use.", + }, + tr10: { + name: "TR10", + desc: "Teaches certain Pokemon the move Earthquake. One use.", + }, + tr11: { + name: "TR11", + desc: "Teaches certain Pokemon the move Psychic. One use.", + }, + tr12: { + name: "TR12", + desc: "Teaches certain Pokemon the move Agility. One use.", + }, + tr13: { + name: "TR13", + desc: "Teaches certain Pokemon the move Focus Energy. One use.", + }, + tr14: { + name: "TR14", + desc: "Teaches certain Pokemon the move Metronome. One use.", + }, + tr15: { + name: "TR15", + desc: "Teaches certain Pokemon the move Fire Blast. One use.", + }, + tr16: { + name: "TR16", + desc: "Teaches certain Pokemon the move Waterfall. One use.", + }, + tr17: { + name: "TR17", + desc: "Teaches certain Pokemon the move Amnesia. One use.", + }, + tr18: { + name: "TR18", + desc: "Teaches certain Pokemon the move Leech Life. One use.", + }, + tr19: { + name: "TR19", + desc: "Teaches certain Pokemon the move Tri Attack. One use.", + }, + tr20: { + name: "TR20", + desc: "Teaches certain Pokemon the move Substitute. One use.", + }, + tr21: { + name: "TR21", + desc: "Teaches certain Pokemon the move Reversal. One use.", + }, + tr22: { + name: "TR22", + desc: "Teaches certain Pokemon the move Sludge Bomb. One use.", + }, + tr23: { + name: "TR23", + desc: "Teaches certain Pokemon the move Spikes. One use.", + }, + tr24: { + name: "TR24", + desc: "Teaches certain Pokemon the move Outrage. One use.", + }, + tr25: { + name: "TR25", + desc: "Teaches certain Pokemon the move Psyshock. One use.", + }, + tr26: { + name: "TR26", + desc: "Teaches certain Pokemon the move Endure. One use.", + }, + tr27: { + name: "TR27", + desc: "Teaches certain Pokemon the move Sleep Talk. One use.", + }, + tr28: { + name: "TR28", + desc: "Teaches certain Pokemon the move Megahorn. One use.", + }, + tr29: { + name: "TR29", + desc: "Teaches certain Pokemon the move Baton Pass. One use.", + }, + tr30: { + name: "TR30", + desc: "Teaches certain Pokemon the move Encore. One use.", + }, + tr31: { + name: "TR31", + desc: "Teaches certain Pokemon the move Iron Tail. One use.", + }, + tr32: { + name: "TR32", + desc: "Teaches certain Pokemon the move Crunch. One use.", + }, + tr33: { + name: "TR33", + desc: "Teaches certain Pokemon the move Shadow Ball. One use.", + }, + tr34: { + name: "TR34", + desc: "Teaches certain Pokemon the move Future Sight. One use.", + }, + tr35: { + name: "TR35", + desc: "Teaches certain Pokemon the move Uproar. One use.", + }, + tr36: { + name: "TR36", + desc: "Teaches certain Pokemon the move Heat Wave. One use.", + }, + tr37: { + name: "TR37", + desc: "Teaches certain Pokemon the move Taunt. One use.", + }, + tr38: { + name: "TR38", + desc: "Teaches certain Pokemon the move Trick. One use.", + }, + tr39: { + name: "TR39", + desc: "Teaches certain Pokemon the move Superpower. One use.", + }, + tr40: { + name: "TR40", + desc: "Teaches certain Pokemon the move Skill Swap. One use.", + }, + tr41: { + name: "TR41", + desc: "Teaches certain Pokemon the move Blaze Kick. One use.", + }, + tr42: { + name: "TR42", + desc: "Teaches certain Pokemon the move Hyper Voice. One use.", + }, + tr43: { + name: "TR43", + desc: "Teaches certain Pokemon the move Overheat. One use.", + }, + tr44: { + name: "TR44", + desc: "Teaches certain Pokemon the move Cosmic Power. One use.", + }, + tr45: { + name: "TR45", + desc: "Teaches certain Pokemon the move Muddy Water. One use.", + }, + tr46: { + name: "TR46", + desc: "Teaches certain Pokemon the move Iron Defense. One use.", + }, + tr47: { + name: "TR47", + desc: "Teaches certain Pokemon the move Dragon Claw. One use.", + }, + tr48: { + name: "TR48", + desc: "Teaches certain Pokemon the move Bulk Up. One use.", + }, + tr49: { + name: "TR49", + desc: "Teaches certain Pokemon the move Calm Mind. One use.", + }, + tr50: { + name: "TR50", + desc: "Teaches certain Pokemon the move Leaf Blade. One use.", + }, + tr51: { + name: "TR51", + desc: "Teaches certain Pokemon the move Dragon Dance. One use.", + }, + tr52: { + name: "TR52", + desc: "Teaches certain Pokemon the move Gyro Ball. One use.", + }, + tr53: { + name: "TR53", + desc: "Teaches certain Pokemon the move Close Combat. One use.", + }, + tr54: { + name: "TR54", + desc: "Teaches certain Pokemon the move Toxic Spikes. One use.", + }, + tr55: { + name: "TR55", + desc: "Teaches certain Pokemon the move Flare Blitz. One use.", + }, + tr56: { + name: "TR56", + desc: "Teaches certain Pokemon the move Aura Sphere. One use.", + }, + tr57: { + name: "TR57", + desc: "Teaches certain Pokemon the move Poison Jab. One use.", + }, + tr58: { + name: "TR58", + desc: "Teaches certain Pokemon the move Dark Pulse. One use.", + }, + tr59: { + name: "TR59", + desc: "Teaches certain Pokemon the move Seed Bomb. One use.", + }, + tr60: { + name: "TR60", + desc: "Teaches certain Pokemon the move X-Scissor. One use.", + }, + tr61: { + name: "TR61", + desc: "Teaches certain Pokemon the move Bug Buzz. One use.", + }, + tr62: { + name: "TR62", + desc: "Teaches certain Pokemon the move Dragon Pulse. One use.", + }, + tr63: { + name: "TR63", + desc: "Teaches certain Pokemon the move Power Gem. One use.", + }, + tr64: { + name: "TR64", + desc: "Teaches certain Pokemon the move Focus Blast. One use.", + }, + tr65: { + name: "TR65", + desc: "Teaches certain Pokemon the move Energy Ball. One use.", + }, + tr66: { + name: "TR66", + desc: "Teaches certain Pokemon the move Brave Bird. One use.", + }, + tr67: { + name: "TR67", + desc: "Teaches certain Pokemon the move Earth Power. One use.", + }, + tr68: { + name: "TR68", + desc: "Teaches certain Pokemon the move Nasty Plot. One use.", + }, + tr69: { + name: "TR69", + desc: "Teaches certain Pokemon the move Zen Headbutt. One use.", + }, + tr70: { + name: "TR70", + desc: "Teaches certain Pokemon the move Flash Cannon. One use.", + }, + tr71: { + name: "TR71", + desc: "Teaches certain Pokemon the move Leaf Storm. One use.", + }, + tr72: { + name: "TR72", + desc: "Teaches certain Pokemon the move Power Whip. One use.", + }, + tr73: { + name: "TR73", + desc: "Teaches certain Pokemon the move Gunk Shot. One use.", + }, + tr74: { + name: "TR74", + desc: "Teaches certain Pokemon the move Iron Head. One use.", + }, + tr75: { + name: "TR75", + desc: "Teaches certain Pokemon the move Stone Edge. One use.", + }, + tr76: { + name: "TR76", + desc: "Teaches certain Pokemon the move Stealth Rock. One use.", + }, + tr77: { + name: "TR77", + desc: "Teaches certain Pokemon the move Grass Knot. One use.", + }, + tr78: { + name: "TR78", + desc: "Teaches certain Pokemon the move Sludge Wave. One use.", + }, + tr79: { + name: "TR79", + desc: "Teaches certain Pokemon the move Heavy Slam. One use.", + }, + tr80: { + name: "TR80", + desc: "Teaches certain Pokemon the move Electro Ball. One use.", + }, + tr81: { + name: "TR81", + desc: "Teaches certain Pokemon the move Foul Play. One use.", + }, + tr82: { + name: "TR82", + desc: "Teaches certain Pokemon the move Stored Power. One use.", + }, + tr83: { + name: "TR83", + desc: "Teaches certain Pokemon the move Ally Switch. One use.", + }, + tr84: { + name: "TR84", + desc: "Teaches certain Pokemon the move Scald. One use.", + }, + tr85: { + name: "TR85", + desc: "Teaches certain Pokemon the move Work Up. One use.", + }, + tr86: { + name: "TR86", + desc: "Teaches certain Pokemon the move Wild Charge. One use.", + }, + tr87: { + name: "TR87", + desc: "Teaches certain Pokemon the move Drill Run. One use.", + }, + tr88: { + name: "TR88", + desc: "Teaches certain Pokemon the move Heat Crash. One use.", + }, + tr89: { + name: "TR89", + desc: "Teaches certain Pokemon the move Hurricane. One use.", + }, + tr90: { + name: "TR90", + desc: "Teaches certain Pokemon the move Play Rough. One use.", + }, + tr91: { + name: "TR91", + desc: "Teaches certain Pokemon the move Venom Drench. One use.", + }, + tr92: { + name: "TR92", + desc: "Teaches certain Pokemon the move Dazzling Gleam. One use.", + }, + tr93: { + name: "TR93", + desc: "Teaches certain Pokemon the move Darkest Lariat. One use.", + }, + tr94: { + name: "TR94", + desc: "Teaches certain Pokemon the move High Horsepower. One use.", + }, + tr95: { + name: "TR95", + desc: "Teaches certain Pokemon the move Throat Chop. One use.", + }, + tr96: { + name: "TR96", + desc: "Teaches certain Pokemon the move Pollen Puff. One use.", + }, + tr97: { + name: "TR97", + desc: "Teaches certain Pokemon the move Psychic Fangs. One use.", + }, + tr98: { + name: "TR98", + desc: "Teaches certain Pokemon the move Liquidation. One use.", + }, + tr99: { + name: "TR99", + desc: "Teaches certain Pokemon the move Body Press. One use.", + }, + twistedspoon: { + name: "Twisted Spoon", + desc: "Holder's Psychic-type attacks have 1.2x power.", + descGen3: "Holder's Psychic-type attacks have 1.1x power.", + }, + tyranitarite: { + name: "Tyranitarite", + desc: "If held by a Tyranitar, this item allows it to Mega Evolve in battle.", + }, + ultraball: { + name: "Ultra Ball", + desc: "An ultra-performance Ball that provides a higher catch rate than a Great Ball.", + }, + ultranecroziumz: { + name: "Ultranecrozium Z", + desc: "Dusk Mane/Dawn Wings Necrozma: Ultra Burst, then Z-Move w/ Photon Geyser.", + + transform: " Bright light is about to burst out of [POKEMON]!", + activate: "[POKEMON] regained its true power through Ultra Burst!", + }, + upgrade: { + name: "Up-Grade", + desc: "Evolves Porygon into Porygon2 when traded.", + }, + utilityumbrella: { + name: "Utility Umbrella", + desc: "The holder ignores rain- and sun-based effects. Damage and accuracy calculations from attacks used by the holder are affected by rain and sun, but not attacks used against the holder.", + shortDesc: "The holder ignores rain- and sun-based effects.", + }, + venusaurite: { + name: "Venusaurite", + desc: "If held by a Venusaur, this item allows it to Mega Evolve in battle.", + }, + wacanberry: { + name: "Wacan Berry", + desc: "Halves damage taken from a supereffective Electric-type attack. Single use.", + }, + watergem: { + name: "Water Gem", + desc: "Holder's first successful Water-type attack will have 1.3x power. Single use.", + descGen5: "Holder's first successful Water-type attack will have 1.5x power. Single use.", + }, + watermemory: { + name: "Water Memory", + desc: "Holder's Multi-Attack is Water type.", + }, + waterstone: { + name: "Water Stone", + desc: "Evolves Poliwhirl into Poliwrath, Shellder into Cloyster, Staryu into Starmie, Eevee into Vaporeon, Lombre into Ludicolo, and Panpour into Simipour when used.", + shortDesc: "Evolves certain species of Pokemon when used.", + }, + wateriumz: { + name: "Waterium Z", + desc: "If holder has a Water move, this item allows it to use a Water Z-Move.", + }, + watmelberry: { + name: "Watmel Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + waveincense: { + name: "Wave Incense", + desc: "Holder's Water-type attacks have 1.2x power.", + }, + weaknesspolicy: { + name: "Weakness Policy", + desc: "If holder is hit super effectively, raises Attack, Sp. Atk by 2 stages. Single use.", + }, + wepearberry: { + name: "Wepear Berry", + desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + }, + whippeddream: { + name: "Whipped Dream", + desc: "Evolves Swirlix into Slurpuff when traded.", + }, + whiteherb: { + name: "White Herb", + desc: "Restores all lowered stat stages to 0 when one is less than 0. Single use.", + + end: " [POKEMON] returned its stats to normal using its White Herb!", + }, + widelens: { + name: "Wide Lens", + desc: "The accuracy of attacks by the holder is 1.1x.", + }, + wikiberry: { + name: "Wiki Berry", + desc: "Restores 33% max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", + descGen7: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", + descGen6: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -SpA Nature. Single use.", + }, + wiseglasses: { + name: "Wise Glasses", + desc: "Holder's special attacks have 1.1x power.", + }, + yacheberry: { + name: "Yache Berry", + desc: "Halves damage taken from a supereffective Ice-type attack. Single use.", + }, + zapplate: { + name: "Zap Plate", + desc: "Holder's Electric-type attacks have 1.2x power. Judgment is Electric type.", + }, + zoomlens: { + name: "Zoom Lens", + desc: "The accuracy of attacks by the holder is 1.2x if it moves after its target.", + }, + + // Gen 2 items + + berserkgene: { + name: "Berserk Gene", + desc: "(Gen 2) On switch-in, raises holder's Attack by 2 and confuses it. Single use.", + }, + berry: { + name: "Berry", + desc: "(Gen 2) Restores 10 HP when at 1/2 max HP or less. Single use.", + }, + bitterberry: { + name: "Bitter Berry", + desc: "(Gen 2) Holder is cured if it is confused. Single use.", + }, + burntberry: { + name: "Burnt Berry", + desc: "(Gen 2) Holder is cured if it is frozen. Single use.", + }, + goldberry: { + name: "Gold Berry", + desc: "(Gen 2) Restores 30 HP when at 1/2 max HP or less. Single use.", + }, + iceberry: { + name: "Ice Berry", + desc: "(Gen 2) Holder is cured if it is burned. Single use.", + }, + mintberry: { + name: "Mint Berry", + desc: "(Gen 2) Holder wakes up if it is asleep. Single use.", + }, + miracleberry: { + name: "Miracle Berry", + desc: "(Gen 2) Holder cures itself if it is confused or has a status condition. Single use.", + }, + mysteryberry: { + name: "Mystery Berry", + desc: "(Gen 2) Restores 5 PP to the first of the holder's moves to reach 0 PP. Single use.", + + activate: " [POKEMON] restored PP to its [MOVE] move using Mystery Berry!", + }, + pinkbow: { + name: "Pink Bow", + desc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", + }, + polkadotbow: { + name: "Polkadot Bow", + desc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", + }, + przcureberry: { + name: "PRZ Cure Berry", + desc: "(Gen 2) Holder cures itself if it is paralyzed. Single use.", + }, + psncureberry: { + name: "PSN Cure Berry", + desc: "(Gen 2) Holder is cured if it is poisoned. Single use.", + }, + + // CAP items + + crucibellite: { + name: "Crucibellite", + desc: "If held by a Crucibelle, this item allows it to Mega Evolve in battle.", + }, +}; diff --git a/data/text/moves.ts b/data/text/moves.ts new file mode 100644 index 0000000000..3590ba62f5 --- /dev/null +++ b/data/text/moves.ts @@ -0,0 +1,5458 @@ +export const MovesText = { + "10000000voltthunderbolt": { + name: "10,000,000 Volt Thunderbolt", + desc: "Has a very high chance for a critical hit.", + shortDesc: "Very high critical hit ratio.", + }, + absorb: { + name: "Absorb", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + descGen4: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", + descGen3: "The user recovers 1/2 the HP lost by the target, rounded down.", + descGen2: "The user recovers 1/2 the HP lost by the target, rounded down. If the target has a substitute, this move misses.", + descGen1: "The user recovers 1/2 the HP lost by the target, rounded down. If this move breaks the target's substitute, the user does not recover any HP.", + }, + accelerock: { + name: "Accelerock", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + acid: { + name: "Acid", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the foe(s) Sp. Def by 1.", + descGen3: "Has a 10% chance to lower the target's Defense by 1 stage.", + shortDescGen3: "10% chance to lower the foe(s) Defense by 1.", + shortDescGen2: "10% chance to lower the target's Defense by 1.", + descGen1: "Has a 33% chance to lower the target's Defense by 1 stage.", + shortDescGen1: "33% chance to lower the target's Defense by 1.", + }, + acidarmor: { + name: "Acid Armor", + desc: "Raises the user's Defense by 2 stages.", + shortDesc: "Raises the user's Defense by 2.", + }, + aciddownpour: { + name: "Acid Downpour", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + acidspray: { + name: "Acid Spray", + desc: "Has a 100% chance to lower the target's Special Defense by 2 stages.", + shortDesc: "100% chance to lower the target's Sp. Def by 2.", + }, + acrobatics: { + name: "Acrobatics", + shortDesc: "Power doubles if the user has no held item.", + }, + acupressure: { + name: "Acupressure", + desc: "Raises a random stat by 2 stages as long as the stat is not already at stage 6. The user can choose to use this move on itself or an adjacent ally. Fails if no stat stage can be raised or if used on an ally with a substitute.", + shortDesc: "Raises a random stat of the user or an ally by 2.", + descGen4: "Raises a random stat by 2 stages as long as the stat is not already at stage 6. The user can choose to use this move on itself or an ally. Fails if no stat stage can be raised or if the user or ally has a substitute.", + }, + aerialace: { + name: "Aerial Ace", + shortDesc: "This move does not check accuracy.", + }, + aeroblast: { + name: "Aeroblast", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + afteryou: { + name: "After You", + desc: "The target makes its move immediately after the user this turn, no matter the priority of its selected move. Fails if the target would have moved next anyway, or if the target already moved this turn.", + shortDesc: "The target makes its move right after the user.", + + activate: " [TARGET] took the kind offer!", + }, + agility: { + name: "Agility", + desc: "Raises the user's Speed by 2 stages.", + shortDesc: "Raises the user's Speed by 2.", + }, + aircutter: { + name: "Air Cutter", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio. Hits adjacent foes.", + }, + airslash: { + name: "Air Slash", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + alloutpummeling: { + name: "All-Out Pummeling", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + allyswitch: { + name: "Ally Switch", + desc: "The user swaps positions with its ally. Fails if the user is the only Pokemon on its side.", + shortDesc: "The user swaps positions with its ally.", + descGen6: "The user swaps positions with its ally on the opposite side of the field. Fails if there is no Pokemon at that position, if the user is the only Pokemon on its side, or if the user is in the middle.", + shortDescGen6: "Switches position with the ally on the far side.", + }, + amnesia: { + name: "Amnesia", + desc: "Raises the user's Special Defense by 2 stages.", + shortDesc: "Raises the user's Sp. Def by 2.", + descGen1: "Raises the user's Special by 2 stages.", + shortDescGen1: "Raises the user's Special by 2.", + }, + anchorshot: { + name: "Anchor Shot", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Prevents the target from switching out.", + descGen7: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + }, + ancientpower: { + name: "Ancient Power", + desc: "Has a 10% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", + shortDesc: "10% chance to raise all stats by 1 (not acc/eva).", + }, + appleacid: { + name: "Apple Acid", + desc: "Has a 100% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "100% chance to lower the target's Sp. Def by 1.", + }, + aquajet: { + name: "Aqua Jet", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + aquaring: { + name: "Aqua Ring", + desc: "The user has 1/16 of its maximum HP, rounded down, restored at the end of each turn while it remains active. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. If the user uses Baton Pass, the replacement will receive the healing effect.", + shortDesc: "User recovers 1/16 max HP per turn.", + + start: " [POKEMON] surrounded itself with a veil of water!", + heal: " A veil of water restored [POKEMON]'s HP!", + }, + aquatail: { + name: "Aqua Tail", + shortDesc: "No additional effect.", + }, + armthrust: { + name: "Arm Thrust", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + }, + aromatherapy: { + name: "Aromatherapy", + desc: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Sap Sipper Ability are not cured, unless they are the user.", + shortDesc: "Cures the user's party of all status conditions.", + descGen5: "Every Pokemon in the user's party is cured of its major status condition.", + + activate: " A soothing aroma wafted through the area!", + }, + aromaticmist: { + name: "Aromatic Mist", + desc: "Raises the target's Special Defense by 1 stage. Fails if there is no ally adjacent to the user.", + shortDesc: "Raises an ally's Sp. Def by 1.", + }, + assist: { + name: "Assist", + desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Bounce, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Shell Trap, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, Whirlwind, or any Z-Move.", + shortDesc: "Uses a random move known by a team member.", + descGen6: "A random move among those known by the user's party members is selected for use. Does not select Assist, Belch, Bestow, Bounce, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", + descGen5: "A random move among those known by the user's party members is selected for use. Does not select Assist, Bestow, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, Transform, or Trick.", + descGen4: "A random move among those known by the user's party members is selected for use. Does not select Assist, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, or Trick.", + descGen3: "A random move among those known by the user's party members is selected for use. Does not select Assist, Counter, Covet, Destiny Bond, Detect, Endure, Focus Punch, Follow Me, Helping Hand, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Thief, or Trick.", + }, + assurance: { + name: "Assurance", + desc: "Power doubles if the target has already taken damage this turn, other than direct damage from Belly Drum, confusion, Curse, or Pain Split.", + shortDesc: "Power doubles if target was damaged this turn.", + descGen4: "Power doubles if the target has already taken damage this turn.", + }, + astonish: { + name: "Astonish", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + descGen3: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", + }, + attackorder: { + name: "Attack Order", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + attract: { + name: "Attract", + desc: "Causes the target to become infatuated, making it unable to attack 50% of the time. Fails if both the user and the target are the same gender, if either is genderless, or if the target is already infatuated. The effect ends when either the user or the target is no longer active. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune.", + shortDesc: "A target of the opposite gender gets infatuated.", + descGen5: "Causes the target to become infatuated, making it unable to attack 50% of the time. Fails if both the user and the target are the same gender, if either is genderless, or if the target is already infatuated. The effect ends when either the user or the target is no longer active. Pokemon with the Oblivious Ability are immune.", + descGen2: "Causes the target to become infatuated, making it unable to attack 50% of the time. Fails if both the user and the target are the same gender, if either is genderless, or if the target is already infatuated. The effect ends when either the user or the target is no longer active.", + + start: " [POKEMON] fell in love!", + startFromItem: " [POKEMON] fell in love because of the [ITEM]!", + end: " [POKEMON] got over its infatuation!", + endFromItem: " [POKEMON] cured its infatuation using its [ITEM]!", + activate: " [POKEMON] is in love with [TARGET]!", + cant: "[POKEMON] is immobilized by love!", + }, + aurasphere: { + name: "Aura Sphere", + shortDesc: "This move does not check accuracy.", + }, + aurawheel: { + name: "Aura Wheel", + desc: "Has a 100% chance to raise the user's Speed by 1 stage. If the user is a Morpeko in Full Belly Mode, this move is Electric type. If the user is a Morpeko in Hangry Mode, this move is Dark type. This move cannot be used successfully unless the user's current form, while considering Transform, is Full Belly or Hangry Mode Morpeko.", + shortDesc: "Morpeko: Electric; Hangry: Dark; 100% +1 Spe.", + }, + aurorabeam: { + name: "Aurora Beam", + desc: "Has a 10% chance to lower the target's Attack by 1 stage.", + shortDesc: "10% chance to lower the target's Attack by 1.", + descGen1: "Has a 33% chance to lower the target's Attack by 1 stage.", + shortDescGen1: "33% chance to lower the target's Attack by 1.", + }, + auroraveil: { + name: "Aurora Veil", + desc: "For 5 turns, the user and its party members take 0.5x damage from physical and special attacks, or 0.66x damage if in a Double Battle; does not reduce damage further with Reflect or Light Screen. Critical hits ignore this protection. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Brick Break and Psychic Fangs remove the effect before damage is calculated. Lasts for 8 turns if the user is holding Light Clay. Fails unless the weather is Hail.", + shortDesc: "For 5 turns, damage to allies is halved. Hail only.", + + start: " Aurora Veil made [TEAM] stronger against physical and special moves!", + end: " [TEAM]'s Aurora Veil wore off!", + }, + autotomize: { + name: "Autotomize", + desc: "Raises the user's Speed by 2 stages. If the user's Speed was changed, the user's weight is reduced by 100 kg as long as it remains active. This effect is stackable but cannot reduce the user's weight to less than 0.1 kg.", + shortDesc: "Raises the user's Speed by 2; user loses 100 kg.", + + start: " [POKEMON] became nimble!", + }, + avalanche: { + name: "Avalanche", + desc: "Power doubles if the user was hit by the target this turn.", + shortDesc: "Power doubles if user is damaged by the target.", + descGen4: "Power doubles if the user was hit by a Pokemon in the target's position this turn.", + }, + babydolleyes: { + name: "Baby-Doll Eyes", + desc: "Lowers the target's Attack by 1 stage.", + shortDesc: "Lowers the target's Attack by 1.", + }, + baddybad: { + name: "Baddy Bad", + desc: "This move summons Reflect for 5 turns upon use.", + shortDesc: "Summons Reflect.", + }, + banefulbunker: { + name: "Baneful Bunker", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Protects from moves. Contact: poison.", + descGen7: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + }, + barrage: { + name: "Barrage", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + barrier: { + name: "Barrier", + desc: "Raises the user's Defense by 2 stages.", + shortDesc: "Raises the user's Defense by 2.", + }, + batonpass: { + name: "Baton Pass", + desc: "The user is replaced with another Pokemon in its party. The selected Pokemon has the user's stat stage changes, confusion, and certain move effects transferred to it.", + shortDesc: "User switches, passing stat changes and more.", + }, + beakblast: { + name: "Beak Blast", + desc: "If the user is hit by a contact move this turn before it can execute this move, the attacker is burned.", + shortDesc: "Burns on contact with the user before it moves.", + + start: " [POKEMON] started heating up its beak!", + }, + beatup: { + name: "Beat Up", + desc: "Hits one time for the user and one time for each unfainted Pokemon without a major status condition in the user's party. The power of each hit is equal to 5+(X/10), where X is each participating Pokemon's base Attack; each hit is considered to come from the user.", + shortDesc: "All healthy allies aid in damaging the target.", + descGen4: "Deals typeless damage. Hits one time for the user and one time for each unfainted Pokemon without a major status condition in the user's party. For each hit, the damage formula uses the participating Pokemon's base Attack as the Attack stat, the target's base Defense as the Defense stat, and ignores stat stages and other effects that modify Attack or Defense; each hit is considered to come from the user.", + descGen3: "Deals typeless damage. Hits one time for each unfainted Pokemon without a major status condition in the user's party, or fails if no Pokemon meet the criteria. For each hit, the damage formula uses the participating Pokemon's base Attack as the Attack stat, the target's base Defense as the Defense stat, and ignores stat stages and other effects that modify Attack or Defense; each hit is considered to come from the user.", + descGen2: "Deals typeless damage. Hits one time for each unfainted Pokemon without a major status condition in the user's party. For each hit, the damage formula uses the participating Pokemon's level, its base Attack as the Attack stat, the target's base Defense as the Defense stat, and ignores stat stages and other effects that modify Attack or Defense. Fails if no party members can participate.", + + activate: " [NAME]'s attack!", // past gen only + }, + behemothbash: { + name: "Behemoth Bash", + shortDesc: "Damage doubles if the target is Dynamaxed.", + }, + behemothblade: { + name: "Behemoth Blade", + shortDesc: "Damage doubles if the target is Dynamaxed.", + }, + belch: { + name: "Belch", + desc: "This move cannot be selected until the user eats a Berry, either by eating one that was held, stealing and eating one off another Pokemon with Bug Bite or Pluck, or eating one that was thrown at it with Fling. Once the condition is met, this move can be selected and used for the rest of the battle even if the user gains or uses another item or switches out. Consuming a Berry with Natural Gift does not count for the purposes of eating one.", + shortDesc: "Cannot be selected until the user eats a Berry.", + }, + bellydrum: { + name: "Belly Drum", + desc: "Raises the user's Attack by 12 stages in exchange for the user losing 1/2 of its maximum HP, rounded down. Fails if the user would faint or if its Attack stat stage is 6.", + shortDesc: "User loses 50% max HP. Maximizes Attack.", + + boost: " [POKEMON] cut its own HP and maximized its Attack!", + }, + bestow: { + name: "Bestow", + desc: "The target receives the user's held item. Fails if the user has no item or is holding a Mail or Z-Crystal, if the target is already holding an item, if the user is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Silvally holding a Memory, a Pokemon that can Mega Evolve holding the Mega Stone for its species, or if the target is one of those Pokemon and the user is holding the respective item.", + shortDesc: "User passes its held item to the target.", + descGen6: "The target receives the user's held item. Fails if the user has no item or is holding a Mail, if the target is already holding an item, if the user is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Pokemon that can Mega Evolve holding the Mega Stone for its species, or if the target is one of those Pokemon and the user is holding the respective item.", + descGen5: "The target receives the user's held item. Fails if the user has no item or is holding a Mail, if the target is already holding an item, if the user is a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, or if the target is one of those Pokemon and the user is holding the respective item.", + + takeItem: " [SOURCE] gave [POKEMON] its [ITEM]!", + }, + bide: { + name: "Bide", + desc: "The user spends two turns locked into this move and then, on the second turn after using this move, the user attacks the last Pokemon that hit it, inflicting double the damage in HP it lost to attacks during the two turns. If the last Pokemon that hit it is no longer active, the user attacks a random opposing Pokemon instead. If the user is prevented from moving during this move's use, the effect ends. This move does not check accuracy and does not ignore type immunity.", + shortDesc: "Waits 2 turns; deals double the damage taken.", + descGen4: "The user spends two turns locked into this move and then, on the second turn after using this move, the user attacks the last Pokemon that hit it, inflicting double the damage in HP it lost to attacks during the two turns. If the last Pokemon that hit it is no longer active, the user attacks a random opposing Pokemon instead. If the user is prevented from moving during this move's use, the effect ends. This move does not check accuracy and ignores type immunity.", + descGen3: "The user spends two turns locked into this move and then, on the second turn after using this move, the user attacks the last Pokemon that hit it, inflicting double the damage in HP it lost during the two turns. If the last Pokemon that hit it is no longer active, the user attacks a random opposing Pokemon instead. If the user is prevented from moving during this move's use, the effect ends. This move does not ignore type immunity.", + descGen2: "The user spends two or three turns locked into this move and then, on the second or third turn after using this move, the user attacks the opponent, inflicting double the damage in HP it lost during those turns. If the user is prevented from moving during this move's use, the effect ends. This move does not ignore type immunity.", + shortDescGen2: "Waits 2-3 turns; deals double the damage taken.", + descGen1: "The user spends two or three turns locked into this move and then, on the second or third turn after using this move, the user attacks the opponent, inflicting double the damage in HP it lost during those turns. This move ignores type immunity and cannot be avoided even if the target is using Dig or Fly. The user can choose to switch out during the effect. If the user switches out or is prevented from moving during this move's use, the effect ends. During the effect, if the opposing Pokemon switches out or uses Confuse Ray, Conversion, Focus Energy, Glare, Haze, Leech Seed, Light Screen, Mimic, Mist, Poison Gas, Poison Powder, Recover, Reflect, Rest, Soft-Boiled, Splash, Stun Spore, Substitute, Supersonic, Teleport, Thunder Wave, Toxic, or Transform, the previous damage dealt to the user will be added to the total.", + + start: " [POKEMON] is storing energy!", + end: " [POKEMON] unleashed its energy!", + activate: " [POKEMON] is storing energy!", + }, + bind: { + name: "Bind", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen5: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + descGen3: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen1: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", + shortDescGen1: "Prevents the target from moving for 2-5 turns.", + + start: " [POKEMON] was squeezed by [SOURCE]!", + move: "#wrap", // gen 1 only + }, + bite: { + name: "Bite", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + descGen1: "Has a 10% chance to flinch the target.", + shortDescGen1: "10% chance to flinch the target.", + }, + blackholeeclipse: { + name: "Black Hole Eclipse", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + blastburn: { + name: "Blast Burn", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + blazekick: { + name: "Blaze Kick", + desc: "Has a 10% chance to burn the target and a higher chance for a critical hit.", + shortDesc: "High critical hit ratio. 10% chance to burn.", + }, + blizzard: { + name: "Blizzard", + desc: "Has a 10% chance to freeze the target. If the weather is Hail, this move does not check accuracy.", + shortDesc: "10% chance to freeze foe(s). Can't miss in hail.", + descGen3: "Has a 10% chance to freeze the target.", + shortDescGen3: "10% chance to freeze foe(s).", + shortDescGen2: "10% chance to freeze the target.", + }, + block: { + name: "Block", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Prevents the target from switching out.", + descGen7: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + descGen5: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + descGen4: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", + descGen3: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", + }, + bloomdoom: { + name: "Bloom Doom", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + blueflare: { + name: "Blue Flare", + desc: "Has a 20% chance to burn the target.", + shortDesc: "20% chance to burn the target.", + }, + bodypress: { + name: "Body Press", + desc: "Damage is calculated using the user's Defense stat as its Attack, including stat stage changes. Other effects that modify the Attack stat are used as normal.", + shortDesc: "Uses user's Def stat as Atk in damage calculation.", + }, + bodyslam: { + name: "Body Slam", + desc: "Has a 30% chance to paralyze the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "30% chance to paralyze the target.", + descGen5: "Has a 30% chance to paralyze the target.", + }, + boltbeak: { + name: "Bolt Beak", + desc: "Power doubles if the user moves before the target.", + shortDesc: "Power doubles if user moves before the target.", + }, + boltstrike: { + name: "Bolt Strike", + desc: "Has a 20% chance to paralyze the target.", + shortDesc: "20% chance to paralyze the target.", + }, + boneclub: { + name: "Bone Club", + desc: "Has a 10% chance to flinch the target.", + shortDesc: "10% chance to flinch the target.", + }, + bonemerang: { + name: "Bonemerang", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times in one turn.", + descGen4: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + descGen1: "Hits twice. If the first hit breaks the target's substitute, the move ends.", + }, + bonerush: { + name: "Bone Rush", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + }, + boomburst: { + name: "Boomburst", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent Pokemon.", + }, + bounce: { + name: "Bounce", + desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Bounces turn 1. Hits turn 2. 30% paralyze.", + descGen5: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", + descGen4: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", + descGen3: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it.", + + prepare: "[POKEMON] sprang up!", + }, + bouncybubble: { + name: "Bouncy Bubble", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + }, + branchpoke: { + name: "Branch Poke", + desc: "No additional effect.", + shortDesc: "No additional effect.", + }, + bravebird: { + name: "Brave Bird", + desc: "If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 33% recoil.", + descGen4: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", + shortDescGen4: "Has 1/3 recoil.", + }, + breakingswipe: { + name: "Breaking Swipe", + desc: "Has a 100% chance to lower the target's Attack by 1 stage.", + shortDesc: "100% chance to lower the foe(s) Attack by 1.", + }, + breakneckblitz: { + name: "Breakneck Blitz", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + brickbreak: { + name: "Brick Break", + desc: "If this attack does not miss, the effects of Reflect, Light Screen, and Aurora Veil end for the target's side of the field before damage is calculated.", + shortDesc: "Destroys screens, unless the target is immune.", + descGen6: "If this attack does not miss, the effects of Reflect and Light Screen end for the target's side of the field before damage is calculated.", + descGen4: "If this attack does not miss and whether or not the target is immune, the effects of Reflect and Light Screen end for the target's side of the field before damage is calculated.", + shortDescGen4: "Destroys screens, even if the target is immune.", + + activate: " [POKEMON] shattered [TEAM]'s protections!", + }, + brine: { + name: "Brine", + desc: "Power doubles if the target has less than or equal to half of its maximum HP remaining.", + shortDesc: "Power doubles if the target's HP is 50% or less.", + }, + brutalswing: { + name: "Brutal Swing", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent Pokemon.", + }, + bubble: { + name: "Bubble", + desc: "Has a 10% chance to lower the target's Speed by 1 stage.", + shortDesc: "10% chance to lower the foe(s) Speed by 1.", + shortDescGen2: "10% chance to lower the target's Speed by 1.", + descGen1: "Has a 33% chance to lower the target's Speed by 1 stage.", + shortDescGen1: "33% chance to lower the target's Speed by 1.", + }, + bubblebeam: { + name: "Bubble Beam", + desc: "Has a 10% chance to lower the target's Speed by 1 stage.", + shortDesc: "10% chance to lower the target's Speed by 1.", + descGen1: "Has a 33% chance to lower the target's Speed by 1 stage.", + shortDescGen1: "33% chance to lower the target's Speed by 1.", + }, + bugbite: { + name: "Bug Bite", + desc: "If this move is successful and the user has not fainted, it steals the target's held Berry if it is holding one and eats it immediately, gaining its effects even if the user's item is being ignored. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "User steals and eats the target's Berry.", + descGen4: "The user steals the target's held Berry if it is holding one and eats it immediately, gaining its effects unless the user's item is being ignored. Items lost to this move can be regained with Recycle.", + + removeItem: " [SOURCE] stole and ate its target's [ITEM]!", + }, + bugbuzz: { + name: "Bug Buzz", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Def by 1.", + }, + bulkup: { + name: "Bulk Up", + desc: "Raises the user's Attack and Defense by 1 stage.", + shortDesc: "Raises the user's Attack and Defense by 1.", + }, + bulldoze: { + name: "Bulldoze", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance lower adjacent Pkmn Speed by 1.", + }, + bulletpunch: { + name: "Bullet Punch", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + bulletseed: { + name: "Bullet Seed", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + }, + burningjealousy: { + name: "Burning Jealousy", + desc: "Has a 100% chance to burn the target if it had a stat stage raised this turn.", + shortDesc: "100% burns a target that had a stat rise this turn.", + }, + burnup: { + name: "Burn Up", + desc: "Fails unless the user is a Fire type. If this move is successful, the user's Fire type becomes typeless as long as it remains active.", + shortDesc: "User's Fire type becomes typeless; must be Fire.", + + typeChange: " [POKEMON] burned itself out!", + }, + buzzybuzz: { + name: "Buzzy Buzz", + desc: "Has a 100% chance to paralyze the foe.", + shortDesc: "100% chance to paralyze the foe.", + }, + calmmind: { + name: "Calm Mind", + desc: "Raises the user's Special Attack and Special Defense by 1 stage.", + shortDesc: "Raises the user's Sp. Atk and Sp. Def by 1.", + }, + camouflage: { + name: "Camouflage", + desc: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain, Electric type during Electric Terrain, Fairy type during Misty Terrain, Grass type during Grassy Terrain, and Psychic type during Psychic Terrain. Fails if the user's type cannot be changed or if the user is already purely that type.", + shortDesc: "Changes user's type by terrain (default Normal).", + descGen6: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain, Electric type during Electric Terrain, Fairy type during Misty Terrain, and Grass type during Grassy Terrain. Fails if the user's type cannot be changed or if the user is already purely that type.", + descGen5: "The user's type changes based on the battle terrain. Ground type on the regular Wi-Fi terrain. Fails if the user's type cannot be changed or if the user is already purely that type.", + shortDescGen5: "Changes user's type based on terrain. (Ground)", + descGen4: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain. Fails if the user has the Multitype Ability or if the type is one of the user's current types.", + shortDescGen4: "Changes user's type based on terrain. (Normal)", + descGen3: "The user's type changes based on the battle terrain. Normal type on the regular Wi-Fi terrain. Fails if the type is one of the user's current types.", + }, + captivate: { + name: "Captivate", + desc: "Lowers the target's Special Attack by 2 stages. The target is unaffected if both the user and the target are the same gender, or if either is genderless. Pokemon with the Oblivious Ability are immune.", + shortDesc: "Lowers the foe(s) Sp. Atk by 2 if opposite gender.", + }, + catastropika: { + name: "Catastropika", + shortDesc: "No additional effect.", + }, + celebrate: { + name: "Celebrate", + shortDesc: "No competitive use.", + + activate: " Congratulations, [TRAINER]!", + }, + charge: { + name: "Charge", + desc: "Raises the user's Special Defense by 1 stage. If the user uses an Electric-type attack on the next turn, its power will be doubled.", + shortDesc: "+1 SpD, user's Electric move next turn 2x power.", + descGen3: "If the user uses an Electric-type attack on the next turn, its power will be doubled.", + shortDescGen3: "The user's Electric attack next turn has 2x power.", + + start: " [POKEMON] began charging power!", + }, + chargebeam: { + name: "Charge Beam", + desc: "Has a 70% chance to raise the user's Special Attack by 1 stage.", + shortDesc: "70% chance to raise the user's Sp. Atk by 1.", + }, + charm: { + name: "Charm", + desc: "Lowers the target's Attack by 2 stages.", + shortDesc: "Lowers the target's Attack by 2.", + }, + chatter: { + name: "Chatter", + desc: "Has a 100% chance to confuse the target.", + shortDesc: "100% chance to confuse the target.", + descGen5: "Has an X% chance to confuse the target, where X is 0 unless the user is a Chatot that hasn't Transformed. If the user is a Chatot, X is 0 or 10 depending on the volume of Chatot's recorded cry, if any; 0 for a low volume or no recording, 10 for a medium to high volume recording.", + shortDescGen5: "For Chatot, 10% chance to confuse the target.", + descGen4: "Has an X% chance to confuse the target, where X is 0 unless the user is a Chatot that hasn't Transformed. If the user is a Chatot, X is 1, 11, or 31 depending on the volume of Chatot's recorded cry, if any; 1 for no recording or low volume, 11 for medium volume, and 31 for high volume.", + shortDescGen4: "For Chatot, 31% chance to confuse the target.", + }, + chipaway: { + name: "Chip Away", + desc: "Ignores the target's stat stage changes, including evasiveness.", + shortDesc: "Ignores the target's stat stage changes.", + }, + circlethrow: { + name: "Circle Throw", + desc: "If both the user and the target have not fainted, the target is forced to switch out and be replaced with a random unfainted ally. This effect fails if the target is under the effect of Ingrain, has the Suction Cups Ability, or this move hit a substitute.", + shortDesc: "Forces the target to switch to a random ally.", + }, + clamp: { + name: "Clamp", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen5: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + descGen3: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen1: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", + shortDescGen1: "Prevents the target from moving for 2-5 turns.", + + start: " [SOURCE] clamped down on [POKEMON]!", + move: "#wrap", // gen 1 only + }, + clangingscales: { + name: "Clanging Scales", + desc: "Lowers the user's Defense by 1 stage.", + shortDesc: "Lowers the user's Defense by 1.", + }, + clangoroussoul: { + name: "Clangorous Soul", + desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage in exchange for the user losing 33% of its maximum HP, rounded down. Fails if the user would faint or if its Attack, Defense, Special Attack, Special Defense, and Speed stat stages would not change.", + shortDesc: "User loses 33% of its max HP. +1 to all stats.", + }, + clangoroussoulblaze: { + name: "Clangorous Soulblaze", + desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", + shortDesc: "Raises the user's Atk/Def/SpAtk/SpDef/Spe by 1.", + }, + clearsmog: { + name: "Clear Smog", + shortDesc: "Resets all of the target's stat stages to 0.", + }, + closecombat: { + name: "Close Combat", + desc: "Lowers the user's Defense and Special Defense by 1 stage.", + shortDesc: "Lowers the user's Defense and Sp. Def by 1.", + }, + coaching: { + name: "Coaching", + desc: "Raises the target's Attack and Defense by 1 stage. Fails if there is no ally adjacent to the user.", + shortDesc: "Raises an ally's Attack and Defense by 1.", + }, + coil: { + name: "Coil", + desc: "Raises the user's Attack, Defense, and accuracy by 1 stage.", + shortDesc: "Raises user's Attack, Defense, accuracy by 1.", + }, + cometpunch: { + name: "Comet Punch", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + confide: { + name: "Confide", + desc: "Lowers the target's Special Attack by 1 stage.", + shortDesc: "Lowers the target's Sp. Atk by 1.", + }, + confuseray: { + name: "Confuse Ray", + desc: "Causes the target to become confused.", + shortDesc: "Confuses the target.", + }, + confusion: { + name: "Confusion", + desc: "Has a 10% chance to confuse the target.", + shortDesc: "10% chance to confuse the target.", + }, + constrict: { + name: "Constrict", + desc: "Has a 10% chance to lower the target's Speed by 1 stage.", + shortDesc: "10% chance to lower the target's Speed by 1.", + descGen1: "Has a 33% chance to lower the target's Speed by 1 stage.", + shortDescGen1: "33% chance to lower the target's Speed by 1.", + }, + continentalcrush: { + name: "Continental Crush", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + conversion: { + name: "Conversion", + desc: "The user's type changes to match the original type of the move in its first move slot. Fails if the user cannot change its type, or if the type is one of the user's current types.", + shortDesc: "Changes user's type to match its first move.", + descGen5: "The user's type changes to match the original type of one of its known moves besides this move, at random, but not either of its current types. Fails if the user cannot change its type, or if this move would only be able to select one of the user's current types.", + shortDescGen5: "Changes user's type to match a known move.", + descGen4: "The user's type changes to match the original type of one of its known moves besides this move and Curse, at random, but not either of its current types. Fails if the user cannot change its type, or if this move would only be able to select one of the user's current types.", + descGen3: "The user's type changes to match the original type of one of its known moves besides Curse, at random, but not either of its current types. Fails if the user cannot change its type, or if this move would only be able to select one of the user's current types.", + descGen1: "Causes the user's types to become the same as the current types of the target.", + shortDescGen1: "User becomes the same type as the target.", + }, + conversion2: { + name: "Conversion 2", + desc: "The user's type changes to match a type that resists or is immune to the type of the last move used by the target, but not either of its current types. The determined type of the move is used rather than the original type. Fails if the target has not made a move, if the user cannot change its type, or if this move would only be able to select one of the user's current types.", + shortDesc: "Changes user's type to resist target's last move.", + descGen4: "The user's type changes to match a type that resists or is immune to the type of the last move used against the user, if it was successful against the user, but not either of its current types. The determined type of the move is used rather than the original type. Fails if the last move used against the user was not successful, if the user has the Multitype Ability, or if this move would only be able to select one of the user's current types.", + shortDescGen4: "User's type changes to resist last move against it.", + descGen3: "The user's type changes to match a type that resists or is immune to the type of the last move used against the user, if it was successful against the user, but not either of its current types. The determined type of the move is used rather than the original type, but considers Struggle as Normal. Fails if the last move used against the user was not successful, or if this move would only be able to select one of the user's current types.", + descGen2: "The user's type changes to match a type that resists or is immune to the type of the last move used by the opposing Pokemon, even it is one of the user's current types. The original type of the move is used rather than the determined type. Fails if the opposing Pokemon has not used a move.", + shortDescGen2: "Changes user's type to resist the foe's last move.", + }, + copycat: { + name: "Copycat", + desc: "The user uses the last move used by any Pokemon, including itself. The base move of Max and G-Max Moves is considered for this purpose. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Dragon Tail, Dynamax Cannon, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Obstruct, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", + shortDesc: "Uses the last move used in the battle.", + descGen7: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, Whirlwind, or any Z-Move.", + descGen6: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Roar, Sketch, Sleep Talk, Snatch, Spiky Shield, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", + descGen5: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Bestow, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, Transform, or Trick.", + descGen4: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, or Trick.", + }, + coreenforcer: { + name: "Core Enforcer", + desc: "If the user moves after the target, the target's Ability is rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode, this effect does not happen, and receiving the effect through Baton Pass ends the effect immediately.", + shortDesc: "Nullifies the foe(s) Ability if the foe(s) move first.", + }, + corkscrewcrash: { + name: "Corkscrew Crash", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + corrosivegas: { + name: "Corrosive Gas", + desc: "The target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item or cause a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, a Silvally, a Zacian, or a Zamazenta to lose their Blue Orb, Red Orb, Griseous Orb, Plate, Drive, Memory, Rusted Sword, or Rusted Shield respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "Removes adjacent Pokemon's held items.", + removeItem: " [SOURCE] corroded [POKEMON]'s [ITEM]!", + }, + cosmicpower: { + name: "Cosmic Power", + desc: "Raises the user's Defense and Special Defense by 1 stage.", + shortDesc: "Raises the user's Defense and Sp. Def by 1.", + }, + cottonguard: { + name: "Cotton Guard", + desc: "Raises the user's Defense by 3 stages.", + shortDesc: "Raises the user's Defense by 3.", + }, + cottonspore: { + name: "Cotton Spore", + desc: "Lowers the target's Speed by 2 stages.", + shortDesc: "Lowers the target's Speed by 2.", + }, + counter: { + name: "Counter", + desc: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals 1 HP of damage instead. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn.", + shortDesc: "If hit by physical attack, returns double damage.", + descGen6: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals damage with a power of 1 instead. If that opposing Pokemon's position is no longer in use, the damage is done to a random opposing Pokemon in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn.", + descGen4: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn, or if the user did not lose HP from the attack.", + descGen3: "Deals damage to the last opposing Pokemon to hit the user with a physical attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's physical attack this turn, or if the user did not lose HP from the attack.", + descGen2: "Deals damage to the opposing Pokemon equal to twice the HP lost by the user from a physical attack this turn. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user moves first, if the user was not hit by a physical attack this turn, or if the user did not lose HP from the attack. If the opposing Pokemon used Fissure or Horn Drill and missed, this move deals 65535 damage.", + descGen1: "Deals damage to the opposing Pokemon equal to twice the damage dealt by the last move used in the battle. This move ignores type immunity. Fails if the user moves first, or if the opposing side's last move was Counter, had 0 power, or was not Normal or Fighting type. Fails if the last move used by either side did 0 damage and was not Confuse Ray, Conversion, Focus Energy, Glare, Haze, Leech Seed, Light Screen, Mimic, Mist, Poison Gas, Poison Powder, Recover, Reflect, Rest, Soft-Boiled, Splash, Stun Spore, Substitute, Supersonic, Teleport, Thunder Wave, Toxic, or Transform.", + shortDescGen1: "If hit by Normal/Fighting move, deals 2x damage.", + }, + courtchange: { + name: "Court Change", + desc: "Switches the Mist, Light Screen, Reflect, Spikes, Safeguard, Tailwind, Toxic Spikes, Stealth Rock, Water Pledge, Fire Pledge, Grass Pledge, Sticky Web, Aurora Veil, G-Max Steelsurge, G-Max Cannonade, G-Max Vine Lash, and G-Max Wildfire effects from the user's side to the opposing side and vice versa.", + shortDesc: "Swaps user's field effects with the opposing side.", + + activate: " [POKEMON] swapped the battle effects affecting each side of the field!", + }, + covet: { + name: "Covet", + desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Z-Crystal, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Silvally holding a Memory, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "If the user has no item, it steals the target's.", + descGen6: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + descGen5: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Giratina holding a Griseous Orb, an Arceus holding a Plate, or a Genesect holding a Drive. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + descGen4: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Griseous Orb, or if the target has the Multitype Ability. Items lost to this move cannot be regained with Recycle.", + descGen3: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Enigma Berry. Items lost to this move cannot be regained with Recycle.", + }, + crabhammer: { + name: "Crabhammer", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + craftyshield: { + name: "Crafty Shield", + desc: "The user and its party members are protected from non-damaging attacks made by other Pokemon, including allies, during this turn. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + shortDesc: "Protects allies from Status moves this turn.", + + start: " Crafty Shield protected [TEAM]!", + block: " Crafty Shield protected [POKEMON]!", + }, + crosschop: { + name: "Cross Chop", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + crosspoison: { + name: "Cross Poison", + desc: "Has a 10% chance to poison the target and a higher chance for a critical hit.", + shortDesc: "High critical hit ratio. 10% chance to poison.", + }, + crunch: { + name: "Crunch", + desc: "Has a 20% chance to lower the target's Defense by 1 stage.", + shortDesc: "20% chance to lower the target's Defense by 1.", + descGen3: "Has a 20% chance to lower the target's Special Defense by 1 stage.", + shortDescGen3: "20% chance to lower the target's Sp. Def by 1.", + }, + crushclaw: { + name: "Crush Claw", + desc: "Has a 50% chance to lower the target's Defense by 1 stage.", + shortDesc: "50% chance to lower the target's Defense by 1.", + }, + crushgrip: { + name: "Crush Grip", + desc: "Power is equal to 120 * (target's current HP / target's maximum HP), rounded half down, but not less than 1.", + shortDesc: "More power the more HP the target has left.", + descGen4: "Power is equal to 120 * (target's current HP / target's maximum HP) + 1, rounded down.", + }, + curse: { + name: "Curse", + desc: "If the user is not a Ghost type, lowers the user's Speed by 1 stage and raises the user's Attack and Defense by 1 stage. If the user is a Ghost type, the user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if there is no target or if the target is already affected.", + shortDesc: "Curses if Ghost, else -1 Spe, +1 Atk, +1 Def.", + descGen4: "If the user is not a Ghost type, lowers the user's Speed by 1 stage and raises the user's Attack and Defense by 1 stage. If the user is a Ghost type, the user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if there is no target or if the target is already affected or has a substitute.", + descGen2: "If the user is not a Ghost type, lowers the user's Speed by 1 stage and raises the user's Attack and Defense by 1 stage, unless the user's Attack and Defense stats are both at stage 6. If the user is a Ghost type, the user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if the target is already affected or has a substitute.", + + start: " [SOURCE] cut its own HP and put a curse on [POKEMON]!", + damage: " [POKEMON] is afflicted by the curse!", + }, + cut: { + name: "Cut", + shortDesc: "No additional effect.", + }, + darkestlariat: { + name: "Darkest Lariat", + desc: "Ignores the target's stat stage changes, including evasiveness.", + shortDesc: "Ignores the target's stat stage changes.", + }, + darkpulse: { + name: "Dark Pulse", + desc: "Has a 20% chance to flinch the target.", + shortDesc: "20% chance to flinch the target.", + }, + darkvoid: { + name: "Dark Void", + desc: "Causes the target to fall asleep. This move cannot be used successfully unless the user's current form, while considering Transform, is Darkrai.", + shortDesc: "Darkrai: Causes the foe(s) to fall asleep.", + descGen6: "Causes the target to fall asleep.", + shortDescGen6: "Causes the foe(s) to fall asleep.", + + fail: "But [POKEMON] can't use the move!", + failWrongForme: "But [POKEMON] can't use it the way it is now!", + }, + dazzlinggleam: { + name: "Dazzling Gleam", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent foes.", + }, + decorate: { + name: "Decorate", + desc: "Raises the target's Attack and Special Attack by 2 stages.", + shortDesc: "Raises the target's Attack and Sp. Atk by 2.", + }, + defendorder: { + name: "Defend Order", + desc: "Raises the user's Defense and Special Defense by 1 stage.", + shortDesc: "Raises the user's Defense and Sp. Def by 1.", + }, + defensecurl: { + name: "Defense Curl", + desc: "Raises the user's Defense by 1 stage. As long as the user remains active, the power of the user's Ice Ball and Rollout will be doubled (this effect is not stackable).", + shortDesc: "Raises the user's Defense by 1.", + descGen2: "Raises the user's Defense by 1 stage. While the user remains active, the power of the user's Rollout will be doubled (this effect is not stackable). Baton Pass can be used to transfer this effect to an ally.", + descGen1: "Raises the user's Defense by 1 stage.", + }, + defog: { + name: "Defog", + desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness. If there is a terrain active and this move is successful, the terrain will be cleared.", + shortDesc: "-1 evasion; clears terrain and hazards on both sides.", + descGen7: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", + shortDescGen7: "-1 evasion; clears user and target side's hazards.", + descGen6: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", + descGen5: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Safeguard, Mist, Spikes, Toxic Spikes, and Stealth Rock end for the target's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", + shortDescGen5: "-1 evasion; clears target side's hazards/screens.", + }, + destinybond: { + name: "Destiny Bond", + desc: "Until the user's next move, if an opposing Pokemon's attack knocks the user out, that Pokemon faints as well, unless the attack was Doom Desire or Future Sight. Fails if the user used this move successfully as its last move, disregarding moves used through the Dancer Ability.", + shortDesc: "If an opponent knocks out the user, it also faints.", + descGen6: "Until the user's next turn, if an opposing Pokemon's attack knocks the user out, that Pokemon faints as well, unless the attack was Doom Desire or Future Sight.", + descGen2: "Until the user's next turn, if an opposing Pokemon's attack knocks the user out, that Pokemon faints as well.", + + start: " [POKEMON] is hoping to take its attacker down with it!", + activate: "[POKEMON] took its attacker down with it!", + }, + detect: { + name: "Detect", + desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Prevents moves from affecting the user this turn.", + descGen7: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen6: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen5: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, Protect, Quick Guard, or Wide Guard. Fails if the user moves last this turn.", + descGen4: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used, up to a maximum of 8. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", + descGen3: "The user is protected from most attacks made by other Pokemon during this turn. This move has an X/65536 chance of being successful, where X starts at 65535 and halves, rounded down, each time this move is successfully used. After the fourth successful use in a row, X drops to 118 and continues with seemingly random values from 0-65535 on subsequent successful uses. X resets to 65535 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", + descGen2: "The user is protected from attacks made by the opponent during this turn. This move has an X/255 chance of being successful, where X starts at 255 and halves, rounded down, each time this move is successfully used. X resets to 255 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user has a substitute or moves last this turn.", + }, + devastatingdrake: { + name: "Devastating Drake", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + diamondstorm: { + name: "Diamond Storm", + desc: "Has a 50% chance to raise the user's Defense by 2 stages.", + shortDesc: "50% chance to raise user's Def by 2 for each hit.", + descGen6: "Has a 50% chance to raise the user's Defense by 1 stage.", + shortDescGen6: "50% chance to raise user's Def by 1 for each hit.", + }, + dig: { + name: "Dig", + desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude but takes double damage from them, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Digs underground turn 1, strikes turn 2.", + descGen4: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude, which have doubled power when used against it, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", + descGen3: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude, which have doubled power when used against it, and is also unaffected by weather.", + descGen2: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake, Fissure, and Magnitude, the user is unaffected by weather, and Earthquake and Magnitude have doubled power when used against the user.", + descGen1: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Bide, Swift, and Transform. If the user is fully paralyzed on the second turn, it continues avoiding attacks until it switches out or successfully executes the second turn of this move or Fly.", + + prepare: "[POKEMON] burrowed its way under the ground!", + }, + disable: { + name: "Disable", + desc: "For 4 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move was a Max or G-Max Move.", + shortDesc: "For 4 turns, disables the target's last move used.", + descGen7: "For 4 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move was a Z-Move. Z-Powered moves can still be selected and executed during this effect.", + descGen6: "For 4 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, or if the target no longer knows the move.", + descGen4: "For 4 to 7 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move has 0 PP.", + shortDescGen4: "For 4-7 turns, disables the target's last move.", + descGen3: "For 2 to 5 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move has 0 PP.", + shortDescGen3: "For 2-5 turns, disables the target's last move.", + descGen2: "For 1 to 7 turns, the target's last move used becomes disabled. Fails if one of the target's moves is already disabled, if the target has not made a move, if the target no longer knows the move, or if the move has 0 PP.", + shortDescGen2: "For 1-7 turns, disables the target's last move.", + descGen1: "For 0 to 7 turns, one of the target's known moves that has at least 1 PP remaining becomes disabled, at random. Fails if one of the target's moves is already disabled, or if none of the target's moves have PP remaining. If any Pokemon uses Haze, this effect ends. Whether or not this move was successful, it counts as a hit for the purposes of the opponent's use of Rage.", + shortDescGen1: "For 0-7 turns, disables one of the target's moves.", + + start: " [POKEMON]'s [MOVE] was disabled!", + end: " [POKEMON]'s move is no longer disabled!", + }, + disarmingvoice: { + name: "Disarming Voice", + desc: "This move does not check accuracy.", + shortDesc: "This move does not check accuracy. Hits foes.", + }, + discharge: { + name: "Discharge", + desc: "Has a 30% chance to paralyze the target.", + shortDesc: "30% chance to paralyze adjacent Pokemon.", + }, + dive: { + name: "Dive", + desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool but takes double damage from them, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Dives underwater turn 1, strikes turn 2.", + descGen4: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool, which have doubled power when used against it, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn.", + descGen3: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool, which have doubled power when used against it, and is also unaffected by weather.", + + prepare: "[POKEMON] hid underwater!", + }, + dizzypunch: { + name: "Dizzy Punch", + desc: "Has a 20% chance to confuse the target.", + shortDesc: "20% chance to confuse the target.", + descGen1: "No additional effect.", + shortDescGen1: "No additional effect.", + }, + doomdesire: { + name: "Doom Desire", + desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move or Future Sight is already in effect for the target's position.", + shortDesc: "Hits two turns after being used.", + descGen4: "Deals typeless damage that cannot be a critical hit two turns after this move is used. Damage is calculated against the target on use, and at the end of the final turn that damage is dealt to the Pokemon at the position the original target had at the time. Fails if this move or Future Sight is already in effect for the target's position.", + + start: " [POKEMON] chose Doom Desire as its destiny!", + activate: " [TARGET] took the Doom Desire attack!", + }, + doubleedge: { + name: "Double-Edge", + desc: "If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 33% recoil.", + descGen4: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", + shortDescGen4: "Has 1/3 recoil.", + descGen2: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move hits a substitute, the recoil damage is always 1 HP.", + shortDescGen2: "Has 1/4 recoil.", + descGen1: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not take any recoil damage.", + }, + doublehit: { + name: "Double Hit", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times in one turn.", + descGen4: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + }, + doubleironbash: { + name: "Double Iron Bash", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. Has a 30% chance to flinch the target.", + shortDesc: "Hits twice. 30% chance to flinch.", + }, + doublekick: { + name: "Double Kick", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times in one turn.", + descGen4: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + descGen1: "Hits twice. Damage is calculated once for the first hit and used for both hits. If the first hit breaks the target's substitute, the move ends.", + }, + doubleslap: { + name: "Double Slap", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + doubleteam: { + name: "Double Team", + desc: "Raises the user's evasiveness by 1 stage.", + shortDesc: "Raises the user's evasiveness by 1.", + }, + dracometeor: { + name: "Draco Meteor", + desc: "Lowers the user's Special Attack by 2 stages.", + shortDesc: "Lowers the user's Sp. Atk by 2.", + }, + dragonascent: { + name: "Dragon Ascent", + desc: "Lowers the user's Defense and Special Defense by 1 stage.", + shortDesc: "Lowers the user's Defense and Sp. Def by 1.", + megaNoItem: " [TRAINER]'s fervent wish has reached [POKEMON]!", + }, + dragonbreath: { + name: "Dragon Breath", + desc: "Has a 30% chance to paralyze the target.", + shortDesc: "30% chance to paralyze the target.", + }, + dragonclaw: { + name: "Dragon Claw", + shortDesc: "No additional effect.", + }, + dragondance: { + name: "Dragon Dance", + desc: "Raises the user's Attack and Speed by 1 stage.", + shortDesc: "Raises the user's Attack and Speed by 1.", + }, + dragondarts: { + name: "Dragon Darts", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. In Double Battles, this move attempts to hit the targeted Pokemon and its ally once each. If hitting one of these Pokemon would be prevented by immunity, protection, semi-invulnerability, an Ability, or accuracy, it attempts to hit the other Pokemon twice instead. If this move is redirected, it hits that target twice.", + shortDesc: "Hits twice. Doubles: Tries to hit each foe once.", + }, + dragonhammer: { + name: "Dragon Hammer", + shortDesc: "No additional effect.", + }, + dragonpulse: { + name: "Dragon Pulse", + shortDesc: "No additional effect.", + }, + dragonrage: { + name: "Dragon Rage", + shortDesc: "Deals 40 HP of damage to the target.", + }, + dragonrush: { + name: "Dragon Rush", + desc: "Has a 20% chance to flinch the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "20% chance to flinch the target.", + descGen5: "Has a 20% chance to flinch the target.", + }, + dragontail: { + name: "Dragon Tail", + desc: "If both the user and the target have not fainted, the target is forced to switch out and be replaced with a random unfainted ally. This effect fails if the target used Ingrain previously, has the Suction Cups Ability, or this move hit a substitute.", + shortDesc: "Forces the target to switch to a random ally.", + }, + drainingkiss: { + name: "Draining Kiss", + desc: "The user recovers 3/4 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 75% of the damage dealt.", + }, + drainpunch: { + name: "Drain Punch", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + descGen4: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", + }, + dreameater: { + name: "Dream Eater", + desc: "The target is unaffected by this move unless it is asleep. The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User gains 1/2 HP inflicted. Sleeping target only.", + descGen4: "The target is unaffected by this move unless it is asleep and does not have a substitute. The user recovers 1/2 the HP lost by the target, rounded down, but not less than 1 HP. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", + descGen3: "The target is unaffected by this move unless it is asleep and does not have a substitute. The user recovers 1/2 the HP lost by the target, rounded down, but not less than 1 HP.", + descGen1: "The target is unaffected by this move unless it is asleep. The user recovers 1/2 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not recover any HP.", + }, + drillpeck: { + name: "Drill Peck", + shortDesc: "No additional effect.", + }, + drillrun: { + name: "Drill Run", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + drumbeating: { + name: "Drum Beating", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the target's Speed by 1.", + }, + dualchop: { + name: "Dual Chop", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times in one turn.", + }, + dualwingbeat: { + name: "Dual Wingbeat", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times in one turn.", + }, + dynamaxcannon: { + name: "Dynamax Cannon", + shortDesc: "Damage doubles if the target is Dynamaxed.", + }, + dynamicpunch: { + name: "Dynamic Punch", + desc: "Has a 100% chance to confuse the target.", + shortDesc: "100% chance to confuse the target.", + }, + earthpower: { + name: "Earth Power", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Def by 1.", + }, + earthquake: { + name: "Earthquake", + desc: "Damage doubles if the target is using Dig.", + shortDesc: "Hits adjacent Pokemon. Double damage on Dig.", + descGen4: "Power doubles if the target is using Dig.", + shortDescGen4: "Hits adjacent Pokemon. Power doubles on Dig.", + shortDescGen2: "Power doubles on Dig.", + descGen1: "No additional effect.", + shortDescGen1: "No additional effect.", + }, + echoedvoice: { + name: "Echoed Voice", + desc: "For every consecutive turn that this move is used by at least one Pokemon, this move's power is multiplied by the number of turns to pass, but not more than 5.", + shortDesc: "Power increases when used on consecutive turns.", + }, + eerieimpulse: { + name: "Eerie Impulse", + desc: "Lowers the target's Special Attack by 2 stages.", + shortDesc: "Lowers the target's Sp. Atk by 2.", + }, + eggbomb: { + name: "Egg Bomb", + shortDesc: "No additional effect.", + }, + electricterrain: { + name: "Electric Terrain", + desc: "For 5 turns, the terrain becomes Electric Terrain. During the effect, the power of Electric-type attacks made by grounded Pokemon is multiplied by 1.3 and grounded Pokemon cannot fall asleep; Pokemon already asleep do not wake up. Camouflage transforms the user into an Electric type, Nature Power becomes Thunderbolt, and Secret Power has a 30% chance to cause paralysis. Fails if the current terrain is Electric Terrain.", + shortDesc: "5 turns. Grounded: +Electric power, can't sleep.", + descGen7: "For 5 turns, the terrain becomes Electric Terrain. During the effect, the power of Electric-type attacks made by grounded Pokemon is multiplied by 1.5 and grounded Pokemon cannot fall asleep; Pokemon already asleep do not wake up. Camouflage transforms the user into an Electric type, Nature Power becomes Thunderbolt, and Secret Power has a 30% chance to cause paralysis. Fails if the current terrain is Electric Terrain.", + }, + electrify: { + name: "Electrify", + desc: "Causes the target's move to become Electric type this turn. Among effects that can change a move's type, this effect happens last. Fails if the target already moved this turn.", + shortDesc: "Changes the target's move to Electric this turn.", + + start: " [POKEMON]'s moves have been electrified!", + }, + electroball: { + name: "Electro Ball", + desc: "The power of this move depends on (user's current Speed / target's current Speed), rounded down. Power is equal to 150 if the result is 4 or more, 120 if 3, 80 if 2, 60 if 1, 40 if less than 1. If the target's current Speed is 0, this move's power is 40.", + shortDesc: "More power the faster the user is than the target.", + descGen5: "The power of this move depends on (user's current Speed / target's current Speed), rounded down. Power is equal to 150 if the result is 4 or more, 120 if 3, 80 if 2, 60 if 1, 40 if less than 1. If the target's current Speed is 0, it is treated as 1 instead.", + }, + electroweb: { + name: "Electroweb", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the foe(s) Speed by 1.", + }, + embargo: { + name: "Embargo", + desc: "For 5 turns, the target's held item has no effect. An item's effect of causing forme changes is unaffected, but any other effects from such items are negated. During the effect, Fling and Natural Gift are prevented from being used by the target. Items thrown at the target with Fling will still activate for it. If the target uses Baton Pass, the replacement will remain unable to use items.", + shortDesc: "For 5 turns, the target's item has no effect.", + + start: " [POKEMON] can't use items anymore!", + end: " [POKEMON] can use items again!", + }, + ember: { + name: "Ember", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the target.", + }, + encore: { + name: "Encore", + desc: "For its next 3 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, if the move is Assist, Copycat, Encore, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, or Transform, or if the target is Dynamaxed.", + shortDesc: "Target repeats its last move for its next 3 turns.", + descGen7: "For its next 3 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Assist, Copycat, Encore, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, Transform, or any Z-Move. Z-Powered moves can still be selected and executed during this effect.", + descGen6: "For 3 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Mimic, Mirror Move, Sketch, Struggle, or Transform.", + descGen4: "For 4 to 8 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Mimic, Mirror Move, Sketch, Struggle, or Transform.", + shortDescGen4: "The target repeats its last move for 4-8 turns.", + descGen3: "For 3 to 6 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Mimic, Mirror Move, Sketch, Struggle, or Transform.", + shortDescGen3: "The target repeats its last move for 3-6 turns.", + descGen2: "For 3 to 6 turns, the target is forced to repeat its last move used. If the affected move runs out of PP, the effect ends. Fails if the target is already under this effect, if it has not made a move, if the move has 0 PP, or if the move is Encore, Metronome, Mimic, Mirror Move, Sketch, Sleep Talk, Struggle, or Transform.", + + start: " [POKEMON] must do an encore!", + end: " [POKEMON]'s encore ended!", + }, + endeavor: { + name: "Endeavor", + desc: "Deals damage to the target equal to (target's current HP - user's current HP). The target is unaffected if its current HP is less than or equal to the user's current HP.", + shortDesc: "Lowers the target's HP to the user's HP.", + }, + endure: { + name: "Endure", + desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "User survives attacks this turn with at least 1 HP.", + descGen7: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen6: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen5: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, Protect, Quick Guard, or Wide Guard. Fails if the user moves last this turn.", + descGen4: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used, up to a maximum of 8. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", + descGen3: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has an X/65536 chance of being successful, where X starts at 65535 and halves, rounded down, each time this move is successfully used. After the fourth successful use in a row, X drops to 118 and continues with seemingly random values from 0-65535 on subsequent successful uses. X resets to 65535 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", + descGen2: "The user will survive attacks made by the opponent during this turn with at least 1 HP. This move has an X/255 chance of being successful, where X starts at 255 and halves, rounded down, each time this move is successfully used. X resets to 255 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user has a substitute or moves last this turn.", + + start: " [POKEMON] braced itself!", + activate: " [POKEMON] endured the hit!", + }, + energyball: { + name: "Energy Ball", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Def by 1.", + }, + entrainment: { + name: "Entrainment", + desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Truant, or the same Ability as the user, or if the user's Ability is Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, or Zen Mode.", + shortDesc: "The target's Ability changes to match the user's.", + descGen6: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is Multitype, Stance Change, Truant, or the same Ability as the user, or if the user's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Stance Change, Trace, or Zen Mode.", + descGen5: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is Multitype, Truant, or the same Ability as the user, or if the user's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Trace, or Zen Mode.", + }, + eruption: { + name: "Eruption", + desc: "Power is equal to (user's current HP * 150 / user's maximum HP), rounded down, but not less than 1.", + shortDesc: "Less power as user's HP decreases. Hits foe(s).", + }, + eternabeam: { + name: "Eternabeam", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + expandingforce: { + name: "Expanding Force", + desc: "If the current terrain is Psychic Terrain and the user is grounded, this move hits all opposing Pokemon and has its power multiplied by 1.5.", + shortDesc: "User on Psychic Terrain: 1.5x power, hits foes.", + }, + explosion: { + name: "Explosion", + desc: "The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Damp Ability.", + shortDesc: "Hits adjacent Pokemon. The user faints.", + descGen4: "The user faints after using this move, unless this move has no target. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", + shortDescGen4: "Deals double damage. The user faints.", + descGen3: "The user faints after using this move. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", + descGen2: "The user faints after using this move. The target's Defense is halved during damage calculation.", + descGen1: "The user faints after using this move, unless this move broke the target's substitute. The target's Defense is halved during damage calculation.", + }, + extrasensory: { + name: "Extrasensory", + desc: "Has a 10% chance to flinch the target.", + shortDesc: "10% chance to flinch the target.", + descGen3: "Has a 10% chance to flinch the target. Damage doubles if the target has used Minimize while active.", + }, + extremeevoboost: { + name: "Extreme Evoboost", + desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 2 stages.", + shortDesc: "Raises user's Atk, Def, SpA, SpD, and Spe by 2.", + }, + extremespeed: { + name: "Extreme Speed", + desc: "No additional effect.", + shortDesc: "Nearly always goes first.", + shortDescGen4: "Usually goes first.", + }, + facade: { + name: "Facade", + desc: "Power doubles if the user is burned, paralyzed, or poisoned. The physical damage halving effect from the user's burn is ignored.", + shortDesc: "Power doubles if user is burn/poison/paralyzed.", + descGen5: "Power doubles if the user is burned, paralyzed, or poisoned.", + }, + fairylock: { + name: "Fairy Lock", + desc: "Prevents all active Pokemon from switching next turn. A Pokemon can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. Fails if the effect is already active.", + shortDesc: "Prevents all Pokemon from switching next turn.", + descGen7: "Prevents all active Pokemon from switching next turn. A Pokemon can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. Fails if the effect is already active.", + + activate: " No one will be able to run away during the next turn!", + }, + fairywind: { + name: "Fairy Wind", + shortDesc: "No additional effect.", + }, + fakeout: { + name: "Fake Out", + desc: "Has a 100% chance to flinch the target. Fails unless it is the user's first turn on the field.", + shortDesc: "Hits first. First turn out only. 100% flinch chance.", + }, + faketears: { + name: "Fake Tears", + desc: "Lowers the target's Special Defense by 2 stages.", + shortDesc: "Lowers the target's Sp. Def by 2.", + }, + falsesurrender: { + name: "False Surrender", + shortDesc: "This move does not check accuracy.", + }, + falseswipe: { + name: "False Swipe", + desc: "Leaves the target with at least 1 HP.", + shortDesc: "Always leaves the target with at least 1 HP.", + }, + featherdance: { + name: "Feather Dance", + desc: "Lowers the target's Attack by 2 stages.", + shortDesc: "Lowers the target's Attack by 2.", + }, + feint: { + name: "Feint", + desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + shortDesc: "Nullifies Detect, Protect, and Quick/Wide Guard.", + descGen6: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + descGen5: "If this move is successful, it breaks through the target's Detect or Protect for this turn, allowing other Pokemon to attack the target normally. If the target is an opponent and its side is protected by Quick Guard or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the opponent's side normally.", + descGen4: "Fails unless the target is using Detect or Protect. If this move is successful, it breaks through the target's Detect or Protect for this turn, allowing other Pokemon to attack the target normally.", + shortDescGen4: "Breaks protection. Fails if target is not protecting.", + + activate: " [TARGET] fell for the feint!", + }, + feintattack: { + name: "Feint Attack", + shortDesc: "This move does not check accuracy.", + }, + fellstinger: { + name: "Fell Stinger", + desc: "Raises the user's Attack by 3 stages if this move knocks out the target.", + shortDesc: "Raises user's Attack by 3 if this KOes the target.", + descGen6: "Raises the user's Attack by 2 stages if this move knocks out the target.", + shortDescGen6: "Raises user's Attack by 2 if this KOes the target.", + }, + fierydance: { + name: "Fiery Dance", + desc: "Has a 50% chance to raise the user's Special Attack by 1 stage.", + shortDesc: "50% chance to raise the user's Sp. Atk by 1.", + }, + finalgambit: { + name: "Final Gambit", + desc: "Deals damage to the target equal to the user's current HP. If this move is successful, the user faints.", + shortDesc: "Does damage equal to the user's HP. User faints.", + }, + fireblast: { + name: "Fire Blast", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the target.", + descGen1: "Has a 30% chance to burn the target.", + shortDescGen1: "30% chance to burn the target.", + }, + firefang: { + name: "Fire Fang", + desc: "Has a 10% chance to burn the target and a 10% chance to flinch it.", + shortDesc: "10% chance to burn. 10% chance to flinch.", + descGen4: "Has a 10% chance to burn the target and a 10% chance to flinch it. This move can hit Pokemon with the Wonder Guard Ability regardless of their typing.", + }, + firelash: { + name: "Fire Lash", + desc: "Has a 100% chance to lower the target's Defense by 1 stage.", + shortDesc: "100% chance to lower the target's Defense by 1.", + }, + firepledge: { + name: "Fire Pledge", + desc: "If one of the user's allies chose to use Grass Pledge or Water Pledge this turn and has not moved yet, it takes its turn immediately after the user and the user's move does nothing. If combined with Grass Pledge, the ally uses Fire Pledge with 150 power and a sea of fire appears on the target's side for 4 turns, which causes damage to non-Fire types equal to 1/8 of their maximum HP, rounded down, at the end of each turn during effect, including the last turn. If combined with Water Pledge, the ally uses Water Pledge with 150 power and a rainbow appears on the user's side for 4 turns, which doubles secondary effect chances but does not stack with the Serene Grace Ability. When used as a combined move, this move gains STAB no matter what the user's type is. This move does not consume the user's Fire Gem.", + shortDesc: "Use with Grass or Water Pledge for added effect.", + + activate: "#waterpledge", + start: " A sea of fire enveloped [TEAM]!", + end: " The sea of fire around [TEAM] disappeared!", + damage: " [POKEMON] was hurt by the sea of fire!", + }, + firepunch: { + name: "Fire Punch", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the target.", + }, + firespin: { + name: "Fire Spin", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen5: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + descGen3: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen1: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", + shortDescGen1: "Prevents the target from moving for 2-5 turns.", + + start: " [POKEMON] became trapped in the fiery vortex!", + move: "#wrap", // gen 1 only + }, + firstimpression: { + name: "First Impression", + desc: "Fails unless it is the user's first turn on the field.", + shortDesc: "Hits first. First turn out only.", + }, + fishiousrend: { + name: "Fishious Rend", + desc: "Power doubles if the user moves before the target.", + shortDesc: "Power doubles if user moves before the target.", + }, + fissure: { + name: "Fissure", + desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", + shortDesc: "OHKOs the target. Fails if user is a lower level.", + descGen2: "Deals 65535 damage to the target. This attack's accuracy out of 256 is equal to the lesser of (2 * (user's level - target's level) + 76) and 255, before applying accuracy and evasiveness modifiers. Fails if the target is at a higher level. Can hit a target using Dig.", + descGen1: "Deals 65535 damage to the target. Fails if the target's Speed is greater than the user's.", + shortDescGen1: "Deals 65535 damage. Fails if target is faster.", + }, + flail: { + name: "Flail", + desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", + shortDesc: "More power the less HP the user has left.", + descGen4: "The power of this move is 20 if X is 43 to 48, 40 if X is 22 to 42, 80 if X is 13 to 21, 100 if X is 6 to 12, 150 if X is 2 to 5, and 200 if X is 0 or 1, where X is equal to (user's current HP * 64 / user's maximum HP), rounded down.", + descGen3: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", + descGen2: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down. This move does not apply damage variance and cannot be a critical hit.", + }, + flameburst: { + name: "Flame Burst", + desc: "If this move is successful, the target's ally loses 1/16 of its maximum HP, rounded down, unless it has the Magic Guard Ability.", + shortDesc: "Damages Pokemon next to the target as well.", + descGen6: "If this move is successful, each ally adjacent to the target loses 1/16 of its maximum HP, rounded down, unless it has the Magic Guard Ability.", + + damage: " The bursting flame hit [POKEMON]!", + }, + flamecharge: { + name: "Flame Charge", + desc: "Has a 100% chance to raise the user's Speed by 1 stage.", + shortDesc: "100% chance to raise the user's Speed by 1.", + }, + flamewheel: { + name: "Flame Wheel", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the target. Thaws user.", + }, + flamethrower: { + name: "Flamethrower", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the target.", + }, + flareblitz: { + name: "Flare Blitz", + desc: "Has a 10% chance to burn the target. If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 33% recoil. 10% chance to burn. Thaws user.", + descGen4: "Has a 10% chance to burn the target. If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", + shortDescGen4: "Has 1/3 recoil. 10% chance to burn. Thaws user.", + }, + flash: { + name: "Flash", + desc: "Lowers the target's accuracy by 1 stage.", + shortDesc: "Lowers the target's accuracy by 1.", + }, + flashcannon: { + name: "Flash Cannon", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Def by 1.", + }, + flatter: { + name: "Flatter", + desc: "Raises the target's Special Attack by 1 stage and confuses it.", + shortDesc: "Raises the target's Sp. Atk by 1 and confuses it.", + }, + fleurcannon: { + name: "Fleur Cannon", + desc: "Lowers the user's Special Attack by 2 stages.", + shortDesc: "Lowers the user's Sp. Atk by 2.", + }, + fling: { + name: "Fling", + desc: "The power of this move is based on the user's held item. The held item is lost and it activates for the target if applicable. If there is no target or the target avoids this move by protecting itself, the user's held item is still lost. The user can regain a thrown item with Recycle or the Harvest Ability. Fails if the user has no held item, if the held item cannot be thrown, if the user is under the effect of Embargo or Magic Room, or if the user has the Klutz Ability.", + shortDesc: "Flings the user's item at the target. Power varies.", + descGen4: "The power of this move is based on the user's held item. The held item is lost and it activates for the target if applicable. If the target avoids this move by protecting itself, the user's held item is still lost. The user can regain a thrown item with Recycle. Fails if the user has no held item, if the held item cannot be thrown, or if the user is under the effect of Embargo.", + + removeItem: " [POKEMON] flung its [ITEM]!", + }, + flipturn: { + name: "Flip Turn", + desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", + shortDesc: "User switches out after damaging the target.", + }, + floatyfall: { + name: "Floaty Fall", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + floralhealing: { + name: "Floral Healing", + desc: "The target restores 1/2 of its maximum HP, rounded half up. If the terrain is Grassy Terrain, the target instead restores 2/3 of its maximum HP, rounded half down.", + shortDesc: "Heals the target by 50% of its max HP.", + }, + flowershield: { + name: "Flower Shield", + desc: "Raises the Defense of all active Grass-type Pokemon by 1 stage. Fails if there are no active Grass-type Pokemon.", + shortDesc: "Raises Defense by 1 of all active Grass types.", + }, + fly: { + name: "Fly", + desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Flies up on first turn, then strikes the next turn.", + descGen5: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", + descGen4: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it. If the user is holding a Power Herb, the move completes in one turn.", + descGen3: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Sky Uppercut, Thunder, and Twister, and Gust and Twister have doubled power when used against it.", + descGen2: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Thunder, Twister, and Whirlwind, and Gust and Twister have doubled power when used against it.", + descGen1: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Bide, Swift, and Transform. If the user is fully paralyzed on the second turn, it continues avoiding attacks until it switches out or successfully executes the second turn of this move or Dig.", + + prepare: "[POKEMON] flew up high!", + }, + flyingpress: { + name: "Flying Press", + desc: "This move combines Flying in its type effectiveness against the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "Combines Flying in its type effectiveness.", + }, + focusblast: { + name: "Focus Blast", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Def by 1.", + }, + focusenergy: { + name: "Focus Energy", + desc: "Raises the user's chance for a critical hit by 2 stages. Fails if the user already has the effect. Baton Pass can be used to transfer this effect to an ally.", + shortDesc: "Raises the user's critical hit ratio by 2.", + descGen2: "Raises the user's chance for a critical hit by 1 stage. Fails if the user already has the effect. Baton Pass can be used to transfer this effect to an ally.", + shortDescGen2: "Raises the user's critical hit ratio by 1.", + descGen1: "While the user remains active, its chance for a critical hit is quartered. Fails if the user already has the effect. If any Pokemon uses Haze, this effect ends.", + shortDescGen1: "Quarters the user's chance for a critical hit.", + + start: " [POKEMON] is getting pumped!", + startFromItem: " [POKEMON] used the [ITEM] to get pumped!", + startFromZEffect: " [POKEMON] boosted its critical-hit ratio using its Z-Power!", + }, + focuspunch: { + name: "Focus Punch", + desc: "The user loses its focus and does nothing if it is hit by a damaging attack this turn before it can execute the move.", + shortDesc: "Fails if the user takes damage before it hits.", + descGen4: "The user loses its focus and does nothing if it is hit by a damaging attack this turn before it can execute the move, but it still loses PP.", + + start: " [POKEMON] is tightening its focus!", + cant: "[POKEMON] lost its focus and couldn't move!", + }, + followme: { + name: "Follow Me", + desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double Battle or Battle Royal. This effect is ignored while the user is under the effect of Sky Drop.", + shortDesc: "The foes' moves target the user on the turn used.", + descGen6: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user if they are in range. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double or Triple Battle. This effect is ignored while the user is under the effect of Sky Drop.", + descGen4: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat, or drawn in by the Lightning Rod or Storm Drain Abilities. This effect remains active even if the user leaves the field. Fails if it is not a Double Battle.", + descGen3: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat, or drawn in by the Lightning Rod Ability. This effect remains active even if the user leaves the field. Fails if it is not a Double Battle.", + + start: " [POKEMON] became the center of attention!", + startFromZEffect: " [POKEMON] became the center of attention!", + }, + forcepalm: { + name: "Force Palm", + desc: "Has a 30% chance to paralyze the target.", + shortDesc: "30% chance to paralyze the target.", + }, + foresight: { + name: "Foresight", + desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. Fails if the target is already affected, or affected by Miracle Eye or Odor Sleuth.", + shortDesc: "Fighting, Normal hit Ghost. Evasiveness ignored.", + descGen4: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", + descGen3: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", + descGen2: "As long as the target remains active, if its evasiveness stat stage is greater than the attacker's accuracy stat stage, both are ignored during accuracy checks, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. If the target leaves the field using Baton Pass, the replacement will remain under this effect. Fails if the target is already affected.", + + start: " [POKEMON] was identified!", + }, + forestscurse: { + name: "Forest's Curse", + desc: "Causes the Grass type to be added to the target, effectively making it have two or three types. Fails if the target is already a Grass type. If Trick-or-Treat adds a type to the target, it replaces the type added by this move and vice versa.", + shortDesc: "Adds Grass to the target's type(s).", + }, + foulplay: { + name: "Foul Play", + desc: "Damage is calculated using the target's Attack stat, including stat stage changes. The user's Ability, item, and burn are used as normal.", + shortDesc: "Uses target's Attack stat in damage calculation.", + }, + freezedry: { + name: "Freeze-Dry", + desc: "Has a 10% chance to freeze the target. This move's type effectiveness against Water is changed to be super effective no matter what this move's type is.", + shortDesc: "10% chance to freeze. Super effective on Water.", + }, + freezeshock: { + name: "Freeze Shock", + desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Charges turn 1. Hits turn 2. 30% paralyze.", + prepare: " [POKEMON] became cloaked in a freezing light!", + }, + freezyfrost: { + name: "Freezy Frost", + desc: "Resets the stat stages of all active Pokemon to 0.", + shortDesc: "Eliminates all stat changes.", + }, + frenzyplant: { + name: "Frenzy Plant", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + frostbreath: { + name: "Frost Breath", + desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", + shortDesc: "Always results in a critical hit.", + }, + frustration: { + name: "Frustration", + desc: "Power is equal to the greater of ((255 - user's Happiness) * 2/5), rounded down, or 1.", + shortDesc: "Max 102 power at minimum Happiness.", + }, + furyattack: { + name: "Fury Attack", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + furycutter: { + name: "Fury Cutter", + desc: "Power doubles with each successful hit, up to a maximum of 160 power. The power is reset if this move misses or another move is used.", + shortDesc: "Power doubles with each hit, up to 160.", + }, + furyswipes: { + name: "Fury Swipes", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + fusionbolt: { + name: "Fusion Bolt", + desc: "Power doubles if the last move used by any Pokemon this turn was Fusion Flare.", + shortDesc: "Power doubles if used after Fusion Flare this turn.", + }, + fusionflare: { + name: "Fusion Flare", + desc: "Power doubles if the last move used by any Pokemon this turn was Fusion Bolt.", + shortDesc: "Power doubles if used after Fusion Bolt this turn.", + }, + futuresight: { + name: "Future Sight", + desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move or Doom Desire is already in effect for the target's position.", + shortDesc: "Hits two turns after being used.", + descGen4: "Deals typeless damage that cannot be a critical hit two turns after this move is used. Damage is calculated against the target on use, and at the end of the final turn that damage is dealt to the Pokemon at the position the original target had at the time. Fails if this move or Doom Desire is already in effect for the target's position.", + descGen2: "Deals typeless damage that cannot be a critical hit two turns after this move is used. Damage is calculated against the target on use, and at the end of the final turn that damage is dealt to the Pokemon at the position the original target had at the time. Fails if this move is already in effect for the target's position.", + + start: " [POKEMON] foresaw an attack!", + activate: " [TARGET] took the Future Sight attack!", + }, + gastroacid: { + name: "Gastro Acid", + desc: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", + shortDesc: "Nullifies the target's Ability.", + descGen6: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is Multitype or Stance Change, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", + + start: " [POKEMON]'s Ability was suppressed!", + }, + geargrind: { + name: "Gear Grind", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times in one turn.", + }, + gearup: { + name: "Gear Up", + desc: "Raises the Attack and Special Attack of Pokemon on the user's side with the Plus or Minus Abilities by 1 stage.", + shortDesc: "Raises Atk, Sp. Atk of allies with Plus/Minus by 1.", + }, + genesissupernova: { + name: "Genesis Supernova", + desc: "If this move is successful, the terrain becomes Psychic Terrain.", + shortDesc: "Summons Psychic Terrain.", + }, + geomancy: { + name: "Geomancy", + desc: "Raises the user's Special Attack, Special Defense, and Speed by 2 stages. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Charges, then raises SpA, SpD, Spe by 2 turn 2.", + prepare: "[POKEMON] is absorbing power!", + }, + gigadrain: { + name: "Giga Drain", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + descGen4: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", + descGen3: "The user recovers 1/2 the HP lost by the target, rounded down.", + }, + gigaimpact: { + name: "Giga Impact", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + gigavolthavoc: { + name: "Gigavolt Havoc", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + glaciate: { + name: "Glaciate", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the foe(s) Speed by 1.", + }, + glare: { + name: "Glare", + desc: "Paralyzes the target.", + shortDesc: "Paralyzes the target.", + descGen3: "Paralyzes the target. This move does not ignore type immunity.", + descGen1: "Paralyzes the target.", + }, + glitzyglow: { + name: "Glitzy Glow", + desc: "This move summons Light Screen for 5 turns upon use.", + shortDesc: "Summons Light Screen.", + }, + gmaxbefuddle: { + name: "G-Max Befuddle", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side either falls asleep, becomes poisoned, or becomes paralyzed, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: slp or psn or par.", + }, + gmaxcannonade: { + name: "G-Max Cannonade", + desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Water-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", + shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", + + start: " [PARTY] got caught in the vortex of water!", + damage: " [POKEMON] is hurt by G-Max Cannonade’s vortex!", + }, + gmaxcentiferno: { + name: "G-Max Centiferno", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side is prevented from switching for four or five turns (seven turns if the user is holding Grip Claw), even if they have a substitute. Causes damage equal to 1/8 of their maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. They can still switch out if they are holding Shed Shell or use Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends for a target if it leaves the field, or if it uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Base move affects power. Foes: bound 4-5 turns.", + }, + gmaxchistrike: { + name: "G-Max Chi Strike", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the user's side has their critical hit ratio raised by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: Crit Ratio +1.", + + start: "#focusenergy", + }, + gmaxcuddle: { + name: "G-Max Cuddle", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes infatuated, even if they have a substitute. This effect does not happen for a target if both it and the user are the same gender, if either is genderless, or if the target is already infatuated.", + shortDesc: "Base move affects power. Foes: infatuated.", + }, + gmaxdepletion: { + name: "G-Max Depletion", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side loses 2 PP from its last move used, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: last move -2 PP.", + }, + gmaxdrumsolo: { + name: "G-Max Drum Solo", + desc: "This move will always have 160 Base Power, and it ignores the abilities of opposing Pokemon.", + shortDesc: "Stronger than other Max Moves. Ignores abilities.", + }, + gmaxfinale: { + name: "G-Max Finale", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the user's side restores 1/6 of its current maximum HP, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: +1/6 max HP.", + }, + gmaxfireball: { + name: "G-Max Fire Ball", + desc: "This move will always have 160 Base Power, and it ignores the abilities of opposing Pokemon.", + shortDesc: "Stronger than other Max Moves. Ignores abilities.", + }, + gmaxfoamburst: { + name: "G-Max Foam Burst", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the opposing side is lowered by 2 stages, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -2 Speed.", + }, + gmaxgoldrush: { + name: "G-Max Gold Rush", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes confused, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: confused.", + }, + gmaxgravitas: { + name: "G-Max Gravitas", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Gravity begins.", + shortDesc: "Base move affects power. Starts Gravity.", + }, + gmaxhydrosnipe: { + name: "G-Max Hydrosnipe", + desc: "This move will always have 160 Base Power, and it ignores the abilities of opposing Pokemon.", + shortDesc: "Stronger than other Max Moves. Ignores abilities.", + }, + gmaxmalodor: { + name: "G-Max Malodor", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes poisoned, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: poisoned.", + }, + gmaxmeltdown: { + name: "G-Max Meltdown", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Torment begins for each Pokemon on the opposing side, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: Tormented.", + }, + gmaxoneblow: { + name: "G-Max One Blow", + desc: "Power is equal to the base move's Max Move power. If this move is successful and any Pokemon on the opposing side is using Baneful Bunker, Detect, King's Shield, Mat Block, Max Guard, Obstruct, Protect, or Spiky Shield, this move will fully break the protection.", + shortDesc: "Base move affects power. Breaks all protection.", + }, + gmaxrapidflow: { + name: "G-Max Rapid Flow", + desc: "Power is equal to the base move's Max Move power. If this move is successful and any Pokemon on the opposing side is using Baneful Bunker, Detect, King's Shield, Mat Block, Max Guard, Obstruct, Protect, or Spiky Shield, this move will fully break the protection.", + shortDesc: "Base move affects power. Breaks all protection.", + }, + gmaxreplenish: { + name: "G-Max Replenish", + desc: "Power is equal to the base move's Max Move power. If this move is successful, there is a 50% chance every Pokemon on the user's side has its Berry restored, even if they have a substitute.", + shortDesc: "Base move affects power. 50% restores Berries.", + }, + gmaxresonance: { + name: "G-Max Resonance", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Aurora Veil begins on the user's side.", + shortDesc: "Base move affects power. Allies: Aurora Veil.", + }, + gmaxsandblast: { + name: "G-Max Sandblast", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side is prevented from switching for four or five turns (seven turns if the user is holding Grip Claw), even if they have a substitute. Causes damage equal to 1/8 of their maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. They can still switch out if they are holding Shed Shell or use Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends for a target if it leaves the field, or if it uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Base move affects power. Foes: bound 4-5 turns.", + }, + gmaxsmite: { + name: "G-Max Smite", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes confused, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: confused.", + }, + gmaxsnooze: { + name: "G-Max Snooze", + desc: "Power is equal to the base move's Max Move power. If this move is successful, there is a 50% chance the effect of Yawn begins on the target, even if it has a substitute.", + shortDesc: "Base move affects power. Target: 50% Yawn.", + }, + gmaxsteelsurge: { + name: "G-Max Steelsurge", + desc: "Power is equal to the base move's Max Move power. If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Steel type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", + shortDesc: "Base move affects power. Foes: Steel hazard.", + + start: " Sharp-pointed pieces of steel started floating around [PARTY]!", + end: " The pieces of steel surrounding [PARTY] disappeared!", + damage: " The sharp steel bit into [POKEMON]!", + }, + gmaxstonesurge: { + name: "G-Max Stonesurge", + desc: "Power is equal to the base move's Max Move power. If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", + shortDesc: "Base move affects power. Foes: Stealth Rock.", + }, + gmaxstunshock: { + name: "G-Max Stun Shock", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side either becomes poisoned or paralyzed, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: psn or par.", + }, + gmaxsweetness: { + name: "G-Max Sweetness", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the user's side has its status condition cured, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: status cured.", + }, + gmaxtartness: { + name: "G-Max Tartness", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the evasiveness of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -1 evasiveness.", + }, + gmaxterror: { + name: "G-Max Terror", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side is prevented from switching out, even if they have a substitute. They can still switch out if they are holding Shed Shell or use Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If a target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Base move affects power. Foes: trapped.", + }, + gmaxvinelash: { + name: "G-Max Vine Lash", + desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Grass-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", + shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", + + start: " [PARTY] got trapped with vines!", + damage: " [POKEMON] is hurt by G-Max Vine Lash’s ferocious beating!", + }, + gmaxvolcalith: { + name: "G-Max Volcalith", + desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Rock-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", + shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", + + start: " [PARTY] became surrounded by rocks!", + damage: " [POKEMON] is hurt by the rocks thrown out by G-Max Volcalith!", + }, + gmaxvoltcrash: { + name: "G-Max Volt Crash", + desc: "Power is equal to the base move's Max Move power. If this move is successful, each Pokemon on the opposing side becomes paralyzed, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: paralyzed.", + }, + gmaxwildfire: { + name: "G-Max Wildfire", + desc: "Power is equal to the base move's Max Move power. If this move is successful, for 4 turns each non-Fire-type Pokemon on the opposing side takes damage equal to 1/6 of its maximum HP, rounded down, at the end of each turn during effect, including the last turn.", + shortDesc: "Base move affects power. Foes: -1/6 HP, 4 turns.", + + start: " [PARTY] were surrounded by fire!", + damage: " [POKEMON] is burning up within G-Max Wildfire’s flames!", + }, + gmaxwindrage: { + name: "G-Max Wind Rage", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effects of Electric Terrain, Grassy Terrain, Misty Terrain, and Psychic Terrain end, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, G-Max Steelsurge, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of G-Max Steelsurge, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side.", + shortDesc: "Base move affects power. Ends Terrain, hazards.", + }, + grassknot: { + name: "Grass Knot", + desc: "This move's power is 20 if the target weighs less than 10 kg, 40 if less than 25 kg, 60 if less than 50 kg, 80 if less than 100 kg, 100 if less than 200 kg, and 120 if greater than or equal to 200 kg.", + shortDesc: "More power the heavier the target.", + }, + grasspledge: { + name: "Grass Pledge", + desc: "If one of the user's allies chose to use Fire Pledge or Water Pledge this turn and has not moved yet, it takes its turn immediately after the user and the user's move does nothing. If combined with Fire Pledge, the ally uses Fire Pledge with 150 power and a sea of fire appears on the target's side for 4 turns, which causes damage to non-Fire types equal to 1/8 of their maximum HP, rounded down, at the end of each turn during effect, including the last turn. If combined with Water Pledge, the ally uses Grass Pledge with 150 power and a swamp appears on the target's side for 4 turns, which quarters the Speed of each Pokemon on that side. When used as a combined move, this move gains STAB no matter what the user's type is. This move does not consume the user's Grass Gem.", + shortDesc: "Use with Fire or Water Pledge for added effect.", + + activate: "#waterpledge", + start: " A swamp enveloped [TEAM]!", + end: " The swamp around [TEAM] disappeared!", + }, + grasswhistle: { + name: "Grass Whistle", + shortDesc: "Causes the target to fall asleep.", + }, + grassyglide: { + name: "Grassy Glide", + desc: "If the current terrain is Grassy Terrain and the user is grounded, this move has its priority increased by 1.", + shortDesc: "User on Grassy Terrain: +1 priority.", + }, + grassyterrain: { + name: "Grassy Terrain", + desc: "For 5 turns, the terrain becomes Grassy Terrain. During the effect, the power of Grass-type attacks used by grounded Pokemon is multiplied by 1.3, the power of Bulldoze, Earthquake, and Magnitude used against grounded Pokemon is multiplied by 0.5, and grounded Pokemon have 1/16 of their maximum HP, rounded down, restored at the end of each turn, including the last turn. Camouflage transforms the user into a Grass type, Nature Power becomes Energy Ball, and Secret Power has a 30% chance to cause sleep. Fails if the current terrain is Grassy Terrain.", + shortDesc: "5 turns. Grounded: +Grass power, +1/16 max HP.", + descGen7: "For 5 turns, the terrain becomes Grassy Terrain. During the effect, the power of Grass-type attacks used by grounded Pokemon is multiplied by 1.5, the power of Bulldoze, Earthquake, and Magnitude used against grounded Pokemon is multiplied by 0.5, and grounded Pokemon have 1/16 of their maximum HP, rounded down, restored at the end of each turn, including the last turn. Camouflage transforms the user into a Grass type, Nature Power becomes Energy Ball, and Secret Power has a 30% chance to cause sleep. Fails if the current terrain is Grassy Terrain.", + }, + gravapple: { + name: "Grav Apple", + desc: "Has a 100% chance to lower the target's Defense by 1 stage. Power is multiplied by 1.5 during Gravity's effect.", + shortDesc: "Target: 100% -1 Def. During Gravity: 1.5x power.", + }, + gravity: { + name: "Gravity", + desc: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", + shortDesc: "5 turns: no Ground immunities, 1.67x accuracy.", + descGen7: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect. Relevant Z-Powered moves can still be selected, but will be prevented at execution during this effect.", + descGen6: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", + descGen5: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", + descGen4: "For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, and Magnet Rise end immediately for all active Pokemon. During the effect, Bounce, Fly, High Jump Kick, Jump Kick, Magnet Rise, and Splash are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", + }, + growl: { + name: "Growl", + desc: "Lowers the target's Attack by 1 stage.", + shortDesc: "Lowers the foe(s) Attack by 1.", + shortDescGen2: "Lowers the target's Attack by 1.", + }, + growth: { + name: "Growth", + desc: "Raises the user's Attack and Special Attack by 1 stage. If the weather is Sunny Day or Desolate Land, this move raises the user's Attack and Special Attack by 2 stages. If the user is holding Utility Umbrella, this move will only raise the user's Attack and Special Attack by 1 stage, even if the weather is Sunny Day or Desolate Land.", + shortDesc: "Raises user's Attack and Sp. Atk by 1; 2 in Sun.", + descGen7: "Raises the user's Attack and Special Attack by 1 stage. If the weather is Sunny Day or Desolate Land, this move raises the user's Attack and Special Attack by 2 stages.", + descGen5: "Raises the user's Attack and Special Attack by 1 stage. If the weather is Sunny Day, this move raises the user's Attack and Special Attack by 2 stages.", + descGen4: "Raises the user's Special Attack by 1 stage.", + shortDescGen4: "Raises the user's Sp. Atk by 1.", + descGen1: "Raises the user's Special by 1 stage.", + shortDescGen1: "Raises the user's Special by 1.", + }, + grudge: { + name: "Grudge", + desc: "Until the user's next turn, if an opposing Pokemon's attack knocks the user out, that move loses all its remaining PP.", + shortDesc: "If the user faints, the attack used loses all its PP.", + + activate: " [POKEMON]'s [MOVE] lost all of its PP due to the grudge!", + start: "[POKEMON] wants its target to bear a grudge!", + }, + guardianofalola: { + name: "Guardian of Alola", + desc: "Deals damage to the target equal to 3/4 of its current HP, rounded down, but not less than 1 HP.", + shortDesc: "Does damage equal to 3/4 target's current HP.", + }, + guardsplit: { + name: "Guard Split", + desc: "The user and the target have their Defense and Special Defense stats set to be equal to the average of the user and the target's Defense and Special Defense stats, respectively, rounded down. Stat stage changes are unaffected.", + shortDesc: "Averages Defense and Sp. Def stats with target.", + + activate: " [POKEMON] shared its guard with the target!", + }, + guardswap: { + name: "Guard Swap", + desc: "The user swaps its Defense and Special Defense stat stage changes with the target.", + shortDesc: "Swaps Defense and Sp. Def changes with target.", + }, + guillotine: { + name: "Guillotine", + desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", + shortDesc: "OHKOs the target. Fails if user is a lower level.", + descGen2: "Deals 65535 damage to the target. This attack's accuracy out of 256 is equal to the lesser of (2 * (user's level - target's level) + 76) and 255, before applying accuracy and evasiveness modifiers. Fails if the target is at a higher level.", + descGen1: "Deals 65535 damage to the target. Fails if the target's Speed is greater than the user's.", + shortDescGen1: "Deals 65535 damage. Fails if target is faster.", + }, + gunkshot: { + name: "Gunk Shot", + desc: "Has a 30% chance to poison the target.", + shortDesc: "30% chance to poison the target.", + }, + gust: { + name: "Gust", + desc: "Power doubles if the target is using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop.", + shortDesc: "Power doubles during Bounce, Fly, and Sky Drop.", + descGen4: "Power doubles if the target is using Bounce or Fly.", + shortDescGen4: "Power doubles during Bounce and Fly.", + descGen2: "Power doubles if the target is using Fly.", + shortDescGen2: "Power doubles during Fly.", + descGen1: "No additional effect.", + shortDescGen1: "No additional effect.", + }, + gyroball: { + name: "Gyro Ball", + desc: "Power is equal to (25 * target's current Speed / user's current Speed) + 1, rounded down, but not more than 150. If the user's current Speed is 0, this move's power is 1.", + shortDesc: "More power the slower the user than the target.", + descGen5: "Power is equal to (25 * target's current Speed / user's current Speed) + 1, rounded down, but not more than 150. If the user's current Speed is 0, it is treated as 1 instead.", + }, + hail: { + name: "Hail", + desc: "For 5 turns, the weather becomes Hail. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are an Ice type or have the Ice Body, Magic Guard, Overcoat, or Snow Cloak Abilities. Lasts for 8 turns if the user is holding Icy Rock. Fails if the current weather is Hail.", + shortDesc: "For 5 turns, hail crashes down.", + descGen4: "For 5 turns, the weather becomes Hail. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are an Ice type or have the Ice Body, Magic Guard, or Snow Cloak Abilities. Lasts for 8 turns if the user is holding Icy Rock. Fails if the current weather is Hail.", + descGen3: "For 5 turns, the weather becomes Hail. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are an Ice type. Fails if the current weather is Hail.", + }, + hammerarm: { + name: "Hammer Arm", + desc: "Lowers the user's Speed by 1 stage.", + shortDesc: "Lowers the user's Speed by 1.", + }, + happyhour: { + name: "Happy Hour", + shortDesc: "No competitive use.", + + activate: " Everyone is caught up in the happy atmosphere!", + }, + harden: { + name: "Harden", + desc: "Raises the user's Defense by 1 stage.", + shortDesc: "Raises the user's Defense by 1.", + }, + haze: { + name: "Haze", + desc: "Resets the stat stages of all active Pokemon to 0.", + shortDesc: "Eliminates all stat changes.", + descGen1: "Resets the stat stages of both Pokemon to 0 and removes stat reductions due to burn and paralysis. Resets Toxic counters to 0 and removes the effect of confusion, Disable, Focus Energy, Leech Seed, Light Screen, Mist, and Reflect from both Pokemon. Removes the opponent's major status condition.", + shortDescGen1: "Resets all stat changes. Removes foe's status.", + }, + headbutt: { + name: "Headbutt", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + headcharge: { + name: "Head Charge", + desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 1/4 recoil.", + }, + headsmash: { + name: "Head Smash", + desc: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 1/2 recoil.", + descGen4: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded down, but not less than 1 HP.", + }, + healbell: { + name: "Heal Bell", + desc: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Soundproof Ability are not cured, unless they are the user.", + shortDesc: "Cures the user's party of all status conditions.", + descGen7: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Soundproof Ability are not cured.", + descGen5: "Every Pokemon in the user's party is cured of its major status condition. Active Pokemon with the Soundproof Ability are also cured.", + descGen4: "Every Pokemon in the user's party is cured of its major status condition. Pokemon with the Soundproof Ability are not cured.", + descGen2: "Every Pokemon in the user's party is cured of its major status condition.", + + activate: " A bell chimed!", + }, + healblock: { + name: "Heal Block", + desc: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected.", + shortDesc: "For 5 turns, the foe(s) is prevented from healing.", + descGen7: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected. Relevant Z-Powered moves can still be selected and executed during this effect.", + descGen6: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected.", + descGen4: "For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing moves are unusable, move effects that grant healing will not heal, but Abilities and items will continue to heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain under the effect. Pain Split is unaffected.", + + start: " [POKEMON] was prevented from healing!", + end: " [POKEMON]'s Heal Block wore off!", + cant: "[POKEMON] can't use [MOVE] because of Heal Block!", + }, + healingwish: { + name: "Healing Wish", + desc: "The user faints and the next injured or statused Pokemon brought in has its HP fully restored along with having any major status condition cured. The healing happens before hazards take effect. Is not consumed if the Pokemon sent out is not injured or statused. Fails if the user is the last unfainted Pokemon in its party.", + shortDesc: "User faints. Next hurt Pokemon is fully healed.", + descGen7: "The user faints and the Pokemon brought out to replace it has its HP fully restored along with having any major status condition cured. The new Pokemon is sent out at the end of the turn, and the healing happens before hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", + shortDescGen7: "User faints. Replacement is fully healed.", + descGen4: "The user faints and the Pokemon brought out to replace it has its HP fully restored along with having any major status condition cured. The new Pokemon is sent out immediately and the healing happens after hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", + + heal: " The healing wish came true for [POKEMON]!", + }, + healorder: { + name: "Heal Order", + desc: "The user restores 1/2 of its maximum HP, rounded half up.", + shortDesc: "Heals the user by 50% of its max HP.", + descGen4: "The user restores 1/2 of its maximum HP, rounded down.", + }, + healpulse: { + name: "Heal Pulse", + desc: "The target restores 1/2 of its maximum HP, rounded half up. If the user has the Mega Launcher Ability, the target instead restores 3/4 of its maximum HP, rounded half down.", + shortDesc: "Heals the target by 50% of its max HP.", + descGen5: "The target restores 1/2 of its maximum HP, rounded half up.", + }, + heartstamp: { + name: "Heart Stamp", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + heartswap: { + name: "Heart Swap", + desc: "The user swaps all its stat stage changes with the target.", + shortDesc: "Swaps all stat changes with target.", + }, + heatcrash: { + name: "Heat Crash", + desc: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "More power the heavier the user than the target.", + descGen5: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less.", + }, + heatwave: { + name: "Heat Wave", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the foe(s).", + }, + heavyslam: { + name: "Heavy Slam", + desc: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "More power the heavier the user than the target.", + descGen6: "The power of this move depends on (user's weight / target's weight), rounded down. Power is equal to 120 if the result is 5 or more, 100 if 4, 80 if 3, 60 if 2, and 40 if 1 or less.", + }, + helpinghand: { + name: "Helping Hand", + desc: "The power of the target's attack this turn is multiplied by 1.5 (this effect is stackable). Fails if there is no ally adjacent to the user or if the ally already moved this turn, but does not fail if the ally is using a two-turn move.", + shortDesc: "One adjacent ally's move power is 1.5x this turn.", + + start: " [SOURCE] is ready to help [POKEMON]!", + }, + hex: { + name: "Hex", + desc: "Power doubles if the target has a major status condition.", + shortDesc: "Power doubles if the target has a status ailment.", + }, + hiddenpower: { + name: "Hidden Power", + desc: "This move's type depends on the user's individual values (IVs), and can be any type but Fairy and Normal.", + shortDesc: "Varies in type based on the user's IVs.", + descGen5: "This move's type and power depend on the user's individual values (IVs). Power varies between 30 and 70, and type can be any but Normal.", + shortDescGen5: "Varies in power and type based on the user's IVs.", + }, + hiddenpowerbug: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Bug", + }, + hiddenpowerdark: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Dark", + }, + hiddenpowerdragon: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Dragon", + }, + hiddenpowerelectric: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Electric", + }, + hiddenpowerfighting: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Fighting", + }, + hiddenpowerfire: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Fire", + }, + hiddenpowerflying: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Flying", + }, + hiddenpowerghost: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Ghost", + }, + hiddenpowergrass: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Grass", + }, + hiddenpowerground: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Ground", + }, + hiddenpowerice: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Ice", + }, + hiddenpowerpoison: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Poison", + }, + hiddenpowerpsychic: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Psychic", + }, + hiddenpowerrock: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Rock", + }, + hiddenpowersteel: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Steel", + }, + hiddenpowerwater: { + realMove: "Hidden Power", + desc: "", + shortDesc: "", + name: "Hidden Power Water", + }, + highhorsepower: { + name: "High Horsepower", + shortDesc: "No additional effect.", + }, + highjumpkick: { + name: "High Jump Kick", + desc: "If this attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", + shortDesc: "User is hurt by 50% of its max HP if it misses.", + descGen4: "If this attack is not successful, the user loses HP equal to half the target's maximum HP if the target was immune, rounded down, otherwise half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", + shortDescGen4: "If miss, user takes 1/2 damage it would've dealt.", + descGen3: "If this attack is not successful and the target was not immune, the user loses HP equal to half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage.", + shortDescGen3: "If miss, user takes 1/2 damage it would've dealt.", + descGen2: "If this attack is not successful and the target was not immune, the user loses HP equal to 1/8 the damage the target would have taken, rounded down, but not less than 1 HP, as crash damage.", + shortDescGen2: "If miss, user takes 1/8 damage it would've dealt.", + descGen1: "If this attack misses the target, the user takes 1 HP of crash damage. If the user has a substitute, the crash damage is dealt to the target's substitute if it has one, otherwise no crash damage is dealt.", + shortDescGen1: "User takes 1 HP of damage if it misses.", + + damage: "#crash", + }, + holdback: { + name: "Hold Back", + desc: "Leaves the target with at least 1 HP.", + shortDesc: "Always leaves the target with at least 1 HP.", + }, + holdhands: { + name: "Hold Hands", + desc: "No competitive use. Fails if there is no ally adjacent to the user.", + shortDesc: "No competitive use.", + }, + honeclaws: { + name: "Hone Claws", + desc: "Raises the user's Attack and accuracy by 1 stage.", + shortDesc: "Raises the user's Attack and accuracy by 1.", + }, + hornattack: { + name: "Horn Attack", + shortDesc: "No additional effect.", + }, + horndrill: { + name: "Horn Drill", + desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", + shortDesc: "OHKOs the target. Fails if user is a lower level.", + descGen2: "Deals 65535 damage to the target. This attack's accuracy out of 256 is equal to the lesser of (2 * (user's level - target's level) + 76) and 255, before applying accuracy and evasiveness modifiers. Fails if the target is at a higher level.", + descGen1: "Deals 65535 damage to the target. Fails if the target's Speed is greater than the user's.", + shortDescGen1: "Deals 65535 damage. Fails if target is faster.", + }, + hornleech: { + name: "Horn Leech", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + }, + howl: { + name: "Howl", + desc: "Raises the Attack of the user and all allies 1 stage.", + shortDesc: "Raises the user's and ally's Attack by 1.", + descGen7: "Raises the user's Attack by 1 stage.", + shortDescGen7: "Raises the user's Attack by 1.", + }, + hurricane: { + name: "Hurricane", + desc: "Has a 30% chance to confuse the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 70%.", + shortDesc: "30% chance to confuse target. Can't miss in rain.", + descGen7: "Has a 30% chance to confuse the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%.", + descGen5: "Has a 30% chance to confuse the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", + }, + hydrocannon: { + name: "Hydro Cannon", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + hydropump: { + name: "Hydro Pump", + shortDesc: "No additional effect.", + }, + hydrovortex: { + name: "Hydro Vortex", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + hyperbeam: { + name: "Hyper Beam", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + descGen1: "If this move is successful, the user must recharge on the following turn and cannot select a move, unless the target or its substitute was knocked out by this move.", + shortDescGen1: "Can't move next turn if target or sub is not KOed.", + }, + hyperfang: { + name: "Hyper Fang", + desc: "Has a 10% chance to flinch the target.", + shortDesc: "10% chance to flinch the target.", + }, + hyperspacefury: { + name: "Hyperspace Fury", + desc: "Lowers the user's Defense by 1 stage. This move cannot be used successfully unless the user's current form, while considering Transform, is Hoopa Unbound. If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + shortDesc: "Hoopa-U: Lowers user's Def by 1; breaks protect.", + descGen6: "Lowers the user's Defense by 1 stage. This move cannot be used successfully unless the user's current form, while considering Transform, is Hoopa Unbound. If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + + activate: "#shadowforce", + fail: "#darkvoid", + }, + hyperspacehole: { + name: "Hyperspace Hole", + desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + shortDesc: "Breaks the target's protection for this turn.", + descGen6: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + + activate: "#shadowforce", + }, + hypervoice: { + name: "Hyper Voice", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent foes.", + }, + hypnosis: { + name: "Hypnosis", + shortDesc: "Causes the target to fall asleep.", + }, + iceball: { + name: "Ice Ball", + desc: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn. If this move hits an active Disguise during the effect, the power multiplier is paused but the turn counter is not, potentially allowing the multiplier to be used on the user's next move after this effect ends.", + shortDesc: "Power doubles with each hit. Repeats for 5 turns.", + descGen6: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn.", + }, + icebeam: { + name: "Ice Beam", + desc: "Has a 10% chance to freeze the target.", + shortDesc: "10% chance to freeze the target.", + }, + iceburn: { + name: "Ice Burn", + desc: "Has a 30% chance to burn the target. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Charges turn 1. Hits turn 2. 30% burn.", + prepare: " [POKEMON] became cloaked in freezing air!", + }, + icefang: { + name: "Ice Fang", + desc: "Has a 10% chance to freeze the target and a 10% chance to flinch it.", + shortDesc: "10% chance to freeze. 10% chance to flinch.", + }, + icehammer: { + name: "Ice Hammer", + desc: "Lowers the user's Speed by 1 stage.", + shortDesc: "Lowers the user's Speed by 1.", + }, + icepunch: { + name: "Ice Punch", + desc: "Has a 10% chance to freeze the target.", + shortDesc: "10% chance to freeze the target.", + }, + iceshard: { + name: "Ice Shard", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + iciclecrash: { + name: "Icicle Crash", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + iciclespear: { + name: "Icicle Spear", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + }, + icywind: { + name: "Icy Wind", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the foe(s) Speed by 1.", + shortDescGen2: "100% chance to lower the target's Speed by 1.", + }, + imprison: { + name: "Imprison", + desc: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active.", + shortDesc: "No foe can use any move known by the user.", + descGen7: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active. Z-Powered moves can still be selected and executed during this effect.", + descGen6: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active.", + descGen4: "The user prevents all opposing Pokemon from using any moves that the user also knows as long as the user remains active. Fails if no opposing Pokemon know any of the user's moves.", + + start: " [POKEMON] sealed any moves its target shares with it!", + cant: "[POKEMON] can't use its sealed [MOVE]!", + }, + incinerate: { + name: "Incinerate", + desc: "The target loses its held item if it is a Berry or a Gem. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "Destroys the foe(s) Berry/Gem.", + descGen5: "The target loses its held item if it is a Berry. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDescGen5: "Destroys the foe(s) Berry.", + + removeItem: " [POKEMON]'s [ITEM] was burned up!", + }, + inferno: { + name: "Inferno", + desc: "Has a 100% chance to burn the target.", + shortDesc: "100% chance to burn the target.", + }, + infernooverdrive: { + name: "Inferno Overdrive", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + infestation: { + name: "Infestation", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + + start: " [POKEMON] has been afflicted with an infestation by [SOURCE]!", + }, + ingrain: { + name: "Ingrain", + desc: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes, Toxic Spikes, and Sticky Web, even if the user is a Flying type or has the Levitate Ability.", + shortDesc: "Traps/grounds user; heals 1/16 max HP per turn.", + descGen7: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes, Toxic Spikes, and Sticky Web, even if the user is a Flying type or has the Levitate Ability.", + descGen5: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes and Toxic Spikes, even if the user is a Flying type or has the Levitate Ability.", + descGen4: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass or U-turn. If the user leaves the field using Baton Pass, the replacement will remain trapped and still receive the healing effect. During the effect, the user can be hit normally by Ground-type attacks and be affected by Spikes and Toxic Spikes, even if the user is a Flying type or has the Levitate Ability.", + descGen3: "The user has 1/16 of its maximum HP restored at the end of each turn, but it is prevented from switching out and other Pokemon cannot force the user to switch out. The user can still switch out if it uses Baton Pass, and the replacement will remain trapped and still receive the healing effect.", + shortDescGen3: "User recovers 1/16 max HP per turn. Traps user.", + + start: " [POKEMON] planted its roots!", + block: " [POKEMON] is anchored in place with its roots!", + heal: " [POKEMON] absorbed nutrients with its roots!", + }, + instruct: { + name: "Instruct", + desc: "The target immediately uses its last used move. Fails if the target has not made a move, if the move has 0 PP, if the target is Dynamaxed, if the target is preparing to use Beak Blast, Focus Punch, or Shell Trap, or if the move is Assist, Beak Blast, Belch, Bide, Celebrate, Copycat, Dynamax Cannon, Focus Punch, Ice Ball, Instruct, King's Shield, Me First, Metronome, Mimic, Mirror Move, Nature Power, Outrage, Petal Dance, Rollout, Shell Trap, Sketch, Sleep Talk, Struggle, Thrash, Transform, Uproar, any two-turn move, any recharge move, any Z-Move, or any Max or G-Max Move.", + shortDesc: "The target immediately uses its last used move.", + descGen7: "The target immediately uses its last used move. Fails if the target has not made a move, if the move has 0 PP, if the target is preparing to use Beak Blast, Focus Punch, or Shell Trap, or if the move is Assist, Beak Blast, Belch, Bide, Celebrate, Copycat, Focus Punch, Ice Ball, Instruct, King's Shield, Me First, Metronome, Mimic, Mirror Move, Nature Power, Outrage, Petal Dance, Rollout, Shell Trap, Sketch, Sleep Talk, Struggle, Thrash, Transform, Uproar, any two-turn move, any recharge move, or any Z-Move.", + + activate: " [TARGET] followed [POKEMON]'s instructions!", + }, + iondeluge: { + name: "Ion Deluge", + desc: "Causes Normal-type moves to become Electric type this turn. The effect happens after other effects that change a move's type.", + shortDesc: "Normal moves become Electric type this turn.", + + activate: " A deluge of ions showers the battlefield!", + }, + irondefense: { + name: "Iron Defense", + desc: "Raises the user's Defense by 2 stages.", + shortDesc: "Raises the user's Defense by 2.", + }, + ironhead: { + name: "Iron Head", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + irontail: { + name: "Iron Tail", + desc: "Has a 30% chance to lower the target's Defense by 1 stage.", + shortDesc: "30% chance to lower the target's Defense by 1.", + }, + jawlock: { + name: "Jaw Lock", + desc: "Prevents the user and the target from switching out. The user and the target can still switch out if either of them is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if either the user or the target leaves the field.", + shortDesc: "Prevents both user and target from switching out.", + }, + judgment: { + name: "Judgment", + desc: "This move's type depends on the user's held Plate.", + shortDesc: "Type varies based on the held Plate.", + }, + jumpkick: { + name: "Jump Kick", + desc: "If this attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", + shortDesc: "User is hurt by 50% of its max HP if it misses.", + descGen4: "If this attack is not successful, the user loses HP equal to half the target's maximum HP if the target was immune, rounded down, otherwise half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage.", + shortDescGen4: "If miss, user takes 1/2 damage it would've dealt.", + descGen3: "If this attack is not successful and the target was not immune, the user loses HP equal to half of the damage the target would have taken, rounded down, but no less than 1 HP and no more than half of the target's maximum HP, as crash damage.", + shortDescGen3: "If miss, user takes 1/2 damage it would've dealt.", + descGen2: "If this attack is not successful and the target was not immune, the user loses HP equal to 1/8 the damage the target would have taken, rounded down, but not less than 1 HP, as crash damage.", + shortDescGen2: "If miss, user takes 1/8 damage it would've dealt.", + descGen1: "If this attack misses the target, the user takes 1 HP of crash damage. If the user has a substitute, the crash damage is dealt to the target's substitute if it has one, otherwise no crash damage is dealt.", + shortDescGen1: "User takes 1 HP of damage if it misses.", + + damage: "#crash", + }, + junglehealing: { + name: "Jungle Healing", + desc: "Each Pokemon on the user's side restores 1/4 of its maximum HP, rounded half up, and has its status condition cured.", + shortDesc: "User and allies: healed 1/4 max HP, status cured.", + }, + karatechop: { + name: "Karate Chop", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + kinesis: { + name: "Kinesis", + desc: "Lowers the target's accuracy by 1 stage.", + shortDesc: "Lowers the target's accuracy by 1.", + }, + kingsshield: { + name: "King's Shield", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Protects from damaging attacks. Contact: -1 Atk.", + descGen7: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDescGen7: "Protects from damaging attacks. Contact: -2 Atk.", + descGen6: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + }, + knockoff: { + name: "Knock Off", + desc: "If the target is holding an item that can be removed from it, ignoring the Sticky Hold Ability, this move's power is multiplied by 1.5. If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item or cause a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, a Silvally, a Zacian, or a Zamazenta to lose their Blue Orb, Red Orb, Griseous Orb, Plate, Drive, Memory, Rusted Sword, or Rusted Shield respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "1.5x damage if foe holds an item. Removes item.", + descGen7: "If the target is holding an item that can be removed from it, ignoring the Sticky Hold Ability, this move's power is multiplied by 1.5. If the user has not fainted, the target loses its held item. This move cannot remove Z-Crystals, cause Pokemon with the Sticky Hold Ability to lose their held item, cause Pokemon that can Mega Evolve to lose the Mega Stone for their species, or cause a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, or a Silvally to lose their Blue Orb, Red Orb, Griseous Orb, Plate, Drive, or Memory respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + descGen6: "If the target is holding an item that can be removed from it, ignoring the Sticky Hold Ability, this move's power is multiplied by 1.5. If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item, cause Pokemon that can Mega Evolve to lose the Mega Stone for their species, or cause a Kyogre, a Groudon, a Giratina, an Arceus, or a Genesect to lose their Blue Orb, Red Orb, Griseous Orb, Plate, or Drive, respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + descGen5: "If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability to lose their held item, or force a Giratina, an Arceus, or a Genesect to lose their Griseous Orb, Plate, or Drive, respectively. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDescGen5: "Removes the target's held item.", + descGen4: "The target's held item is lost for the rest of the battle, unless the item is a Griseous Orb or the target has the Multitype or Sticky Hold Abilities. During the effect, the target cannot obtain a new item by any means.", + shortDescGen4: "Target's item is lost and it cannot obtain another.", + descGen3: "The target's held item is lost for the rest of the battle, unless it has the Sticky Hold Ability. During the effect, the target cannot gain a new item by any means.", + + removeItem: " [SOURCE] knocked off [POKEMON]'s [ITEM]!", + }, + landswrath: { + name: "Land's Wrath", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent foes.", + }, + laserfocus: { + name: "Laser Focus", + desc: "Until the end of the next turn, the user's attacks will be critical hits.", + shortDesc: "Until the end of the next turn, user's moves crit.", + + start: " [POKEMON] concentrated intensely!", + }, + lashout: { + name: "Lash Out", + desc: "Power doubles if the user had a stat stage lowered this turn.", + shortDesc: "2x power if the user had a stat lowered this turn.", + }, + lastresort: { + name: "Last Resort", + desc: "This move fails unless the user knows this move and at least one other move, and has used all the other moves it knows at least once each since it became active or Transformed.", + shortDesc: "Fails unless each known move has been used.", + }, + lavaplume: { + name: "Lava Plume", + desc: "Has a 30% chance to burn the target.", + shortDesc: "30% chance to burn adjacent Pokemon.", + }, + leafage: { + name: "Leafage", + shortDesc: "No additional effect.", + }, + leafblade: { + name: "Leaf Blade", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + leafstorm: { + name: "Leaf Storm", + desc: "Lowers the user's Special Attack by 2 stages.", + shortDesc: "Lowers the user's Sp. Atk by 2.", + }, + leaftornado: { + name: "Leaf Tornado", + desc: "Has a 50% chance to lower the target's accuracy by 1 stage.", + shortDesc: "50% chance to lower the target's accuracy by 1.", + }, + leechlife: { + name: "Leech Life", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + descGen4: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", + descGen3: "The user recovers 1/2 the HP lost by the target, rounded down.", + }, + leechseed: { + name: "Leech Seed", + desc: "The Pokemon at the user's position steals 1/8 of the target's maximum HP, rounded down, at the end of each turn. If Big Root is held by the recipient, the HP recovered is 1.3x normal, rounded half down. If the target uses Baton Pass, the replacement will continue being leeched. If the target switches out or uses Rapid Spin successfully, the effect ends. Grass-type Pokemon are immune to this move on use, but not its effect.", + shortDesc: "1/8 of target's HP is restored to user every turn.", + descGen3: "The Pokemon at the user's position steals 1/8 of the target's maximum HP, rounded down, at the end of each turn. If the target uses Baton Pass, the replacement will continue being leeched. If the target switches out or uses Rapid Spin, the effect ends. Grass-type Pokemon are immune to this move on use, but not its effect.", + descGen1: "At the end of each of the target's turns, The Pokemon at the user's position steals 1/16 of the target's maximum HP, rounded down and multiplied by the target's current Toxic counter if it has one, even if the target currently has less than that amount of HP remaining. If the target switches out or any Pokemon uses Haze, this effect ends. Grass-type Pokemon are immune to this move.", + + start: " [POKEMON] was seeded!", + end: " [POKEMON] was freed from Leech Seed!", + damage: " [POKEMON]'s health is sapped by Leech Seed!", + }, + leer: { + name: "Leer", + desc: "Lowers the target's Defense by 1 stage.", + shortDesc: "Lowers the foe(s) Defense by 1.", + shortDescGen2: "Lowers the target's Defense by 1.", + }, + letssnuggleforever: { + name: "Let's Snuggle Forever", + shortDesc: "No additional effect.", + }, + lick: { + name: "Lick", + desc: "Has a 30% chance to paralyze the target.", + shortDesc: "30% chance to paralyze the target.", + }, + lifedew: { + name: "Life Dew", + desc: "Each Pokemon on the user's side restores 1/4 of its maximum HP, rounded half up.", + shortDesc: "Heals the user and its allies by 1/4 their max HP.", + }, + lightofruin: { + name: "Light of Ruin", + desc: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 1/2 recoil.", + }, + lightscreen: { + name: "Light Screen", + desc: "For 5 turns, the user and its party members take 0.5x damage from special attacks, or 0.66x damage if in a Double Battle. Damage is not reduced further with Aurora Veil. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", + shortDesc: "For 5 turns, special damage to allies is halved.", + descGen6: "For 5 turns, the user and its party members take 0.5x damage from special attacks, or 0.66x damage if in a Double or Triple Battle. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", + descGen4: "For 5 turns, the user and its party members take 1/2 damage from special attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", + descGen3: "For 5 turns, the user and its party members take 1/2 damage from special attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break. Fails if the effect is already active on the user's side.", + descGen2: "For 5 turns, the user and its party members have their Special Defense doubled. Critical hits ignore this effect. Fails if the effect is already active on the user's side.", + shortDescGen2: "For 5 turns, the user's party has doubled Sp. Def.", + descGen1: "While the user remains active, its Special is doubled when taking damage. Critical hits ignore this effect. If any Pokemon uses Haze, this effect ends.", + shortDescGen1: "While active, user's Special is 2x when damaged.", + + start: " Light Screen made [TEAM] stronger against special moves!", + end: " [TEAM]'s Light Screen wore off!", + // gen 1 + startGen1: " [POKEMON]'s protected against special attacks!", + }, + lightthatburnsthesky: { + name: "Light That Burns the Sky", + desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. This move and its effects ignore the Abilities of other Pokemon.", + shortDesc: "Physical if user's Atk > Sp. Atk. Ignores Abilities.", + }, + liquidation: { + name: "Liquidation", + desc: "Has a 20% chance to lower the target's Defense by 1 stage.", + shortDesc: "20% chance to lower the target's Defense by 1.", + }, + lockon: { + name: "Lock-On", + desc: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. The effect ends if either the user or the target leaves the field. Fails if this effect is active for the user.", + shortDesc: "User's next move will not miss the target.", + descGen4: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. When this effect is started against the target, this and Mind Reader's effects end for every other Pokemon against that target. If the target leaves the field using Baton Pass, the replacement remains under this effect. If the user leaves the field using Baton Pass, this effect is restarted against the same target for the replacement. The effect ends if either the user or the target leaves the field.", + descGen2: "The next accuracy check against the target succeeds. The target will still avoid Earthquake, Fissure, and Magnitude if it is using Fly. If the target leaves the field using Baton Pass, the replacement remains under this effect. This effect ends when the target leaves the field or an accuracy check is done against it.", + shortDescGen2: "The next move will not miss the target.", + + start: " [SOURCE] took aim at [POKEMON]!", + }, + lovelykiss: { + name: "Lovely Kiss", + shortDesc: "Causes the target to fall asleep.", + }, + lowkick: { + name: "Low Kick", + desc: "This move's power is 20 if the target weighs less than 10 kg, 40 if less than 25 kg, 60 if less than 50 kg, 80 if less than 100 kg, 100 if less than 200 kg, and 120 if greater than or equal to 200 kg.", + shortDesc: "More power the heavier the target.", + descGen2: "Has a 30% chance to flinch the target.", + shortDescGen2: "30% chance to flinch the target.", + }, + lowsweep: { + name: "Low Sweep", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the target's Speed by 1.", + }, + luckychant: { + name: "Lucky Chant", + desc: "For 5 turns, the user and its party members cannot be struck by a critical hit. Fails if the effect is already active on the user's side.", + shortDesc: "For 5 turns, shields user's party from critical hits.", + + start: " Lucky Chant shielded [TEAM] from critical hits!", + end: " [TEAM]'s Lucky Chant wore off!", + }, + lunardance: { + name: "Lunar Dance", + desc: "The user faints and the Pokemon brought out to replace it has its HP and PP fully restored along with having any major status condition cured. The new Pokemon is sent out at the end of the turn, and the healing happens before hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", + shortDesc: "User faints. Replacement is fully healed, with PP.", + descGen4: "The user faints and the Pokemon brought out to replace it has its HP and PP fully restored along with having any major status condition cured. The new Pokemon is sent out immediately and the healing happens after hazards take effect. Fails if the user is the last unfainted Pokemon in its party.", + + heal: " [POKEMON] became cloaked in mystical moonlight!", + }, + lunge: { + name: "Lunge", + desc: "Has a 100% chance to lower the target's Attack by 1 stage.", + shortDesc: "100% chance to lower the target's Attack by 1.", + }, + lusterpurge: { + name: "Luster Purge", + desc: "Has a 50% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "50% chance to lower the target's Sp. Def by 1.", + }, + machpunch: { + name: "Mach Punch", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + magicalleaf: { + name: "Magical Leaf", + shortDesc: "This move does not check accuracy.", + }, + magiccoat: { + name: "Magic Coat", + desc: "Until the end of the turn, the user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. Moves reflected in this way are unable to be reflected again by this or the Magic Bounce Ability's effect. Spikes, Stealth Rock, Sticky Web, and Toxic Spikes can only be reflected once per side, by the leftmost Pokemon under this or the Magic Bounce Ability's effect. The Lightning Rod and Storm Drain Abilities redirect their respective moves before this move takes effect.", + shortDesc: "Bounces back certain non-damaging moves.", + descGen5: "Until the end of the turn, the user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. Moves reflected in this way are unable to be reflected again by this or the Magic Bounce Ability's effect. Spikes, Stealth Rock, and Toxic Spikes can only be reflected once per side, by the leftmost Pokemon under this or the Magic Bounce Ability's effect. The Lightning Rod and Storm Drain Abilities redirect their respective moves before this move takes effect.", + descGen4: "The user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. If the move targets both opposing Pokemon, the Pokemon under this effect will reflect the move only targeting the original user. The effect ends once a move is reflected or at the end of the turn. The Lightning Rod and Storm Drain Abilities redirect their respective moves before this move takes effect.", + descGen3: "The user is unaffected by certain non-damaging moves directed at it and will instead use such moves against the original user. If the move targets both opposing Pokemon and the Pokemon under this effect is on the left side, it will reflect the move targeting both opposing Pokemon and its ally will not be affected by the original move; otherwise, if the Pokemon under this effect is on the right side, its ally will be affected by the original move and this Pokemon will reflect the move only targeting the original user. The effect ends once a move is reflected or at the end of the turn. Moves reflected in this way can be reflected again by another Pokemon under this effect. If the user has the Soundproof Ability, it nullifies sound-based moves before this effect happens. The Lightning Rod Ability redirects Electric moves before this move takes effect.", + + start: " [POKEMON] shrouded itself with Magic Coat!", + move: "[POKEMON] bounced the [MOVE] back!", + }, + magicpowder: { + name: "Magic Powder", + desc: "Causes the target to become a Psychic type. Fails if the target is an Arceus or a Silvally, or if the target is already purely Psychic type.", + shortDesc: "Changes the target's type to Psychic.", + }, + magicroom: { + name: "Magic Room", + desc: "For 5 turns, the held items of all active Pokemon have no effect. An item's effect of causing forme changes is unaffected, but any other effects from such items are negated. During the effect, Fling and Natural Gift are prevented from being used by all active Pokemon. If this move is used during the effect, the effect ends.", + shortDesc: "For 5 turns, all held items have no effect.", + }, + magikarpsrevenge: { + name: "Magikarp's Revenge", + desc: "Has a 100% chance to confuse the target and lower its Defense and Special Attack by 1 stage. The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. The user steals the foe's boosts. If this move is successful, the weather changes to rain unless it is already in effect, and the user gains the effects of Aqua Ring and Magic Coat.", + shortDesc: "Does many things turn 1. Can't move turn 2.", + + fail: "#darkvoid", + }, + magmastorm: { + name: "Magma Storm", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen5: "Prevents the target from switching for four or five turns; seven turns if the user is holding Grip Claw. Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin. This effect is not stackable or reset by using this or another partial-trapping move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + + start: " [POKEMON] became trapped by swirling magma!", + }, + magnetbomb: { + name: "Magnet Bomb", + shortDesc: "This move does not check accuracy.", + }, + magneticflux: { + name: "Magnetic Flux", + desc: "Raises the Defense and Special Defense of Pokemon on the user's side with the Plus or Minus Abilities by 1 stage.", + shortDesc: "Raises Def, Sp. Def of allies with Plus/Minus by 1.", + }, + magnetrise: { + name: "Magnet Rise", + desc: "For 5 turns, the user is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability as long as it remains active. If the user uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, Thousand Arrows, and Iron Ball override this move if the user is under any of their effects. Fails if the user is already under this effect or the effects of Ingrain, Smack Down, or Thousand Arrows.", + shortDesc: "For 5 turns, the user has immunity to Ground.", + descGen5: "For 5 turns, the user is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, and the Arena Trap Ability as long as it remains active. If the user uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, and Iron Ball override this move if the user is under any of their effects. Fails if the user is already under this effect or the effects of Ingrain or Smack Down.", + descGen4: "For 5 turns, the user is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, and the Arena Trap Ability as long as it remains active. If the user uses Baton Pass, the replacement will gain the effect. Ingrain and Iron Ball override this move if the user is under any of their effects. Fails if the user is already under this effect or the effect of Ingrain.", + + start: " [POKEMON] levitated with electromagnetism!", + end: " [POKEMON]'s electromagnetism wore off!", + }, + magnitude: { + name: "Magnitude", + desc: "The power of this move varies; 5% chances for 10 and 150 power, 10% chances for 30 and 110 power, 20% chances for 50 and 90 power, and 30% chance for 70 power. Damage doubles if the target is using Dig.", + shortDesc: "Hits adjacent Pokemon. Power varies; 2x on Dig.", + descGen4: "The power of this move varies. 5% chances for 10 and 150 power, 10% chances for 30 and 110 power, 20% chances for 50 and 90 power, and 30% chance for 70 power. Power doubles if the target is using Dig.", + + activate: " Magnitude [NUMBER]!", + }, + maliciousmoonsault: { + name: "Malicious Moonsault", + desc: "Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "Damage doubles if the target used Minimize.", + }, + matblock: { + name: "Mat Block", + desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn. Fails unless it is the user's first turn on the field, if the user moves last this turn, or if this move is already in effect for the user's side.", + shortDesc: "Protects allies from damaging attacks. Turn 1 only.", + + start: " [POKEMON] intends to flip up a mat and block incoming attacks!", + block: " [MOVE] was blocked by the kicked-up mat!", + }, + maxairstream: { + name: "Max Airstream", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: +1 Speed.", + }, + maxdarkness: { + name: "Max Darkness", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Defense of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -1 Sp. Def.", + }, + maxflare: { + name: "Max Flare", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Sunny Day begins.", + shortDesc: "Base move affects power. Starts Sunny Day.", + }, + maxflutterby: { + name: "Max Flutterby", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Attack of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -1 Sp. Atk.", + }, + maxgeyser: { + name: "Max Geyser", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Rain Dance begins.", + shortDesc: "Base move affects power. Starts Rain Dance.", + }, + maxguard: { + name: "Max Guard", + desc: "The user is protected from nearly all attacks made by other Pokemon during this turn, including Max and G-Max Moves. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Protects user from moves & Max Moves this turn.", + + activate: " [POKEMON] protected itself!", + }, + maxhailstorm: { + name: "Max Hailstorm", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Hail begins.", + shortDesc: "Base move affects power. Starts Hail.", + }, + maxknuckle: { + name: "Max Knuckle", + desc: "Boosts the user and its allies' Attack by 1 stage. BP scales with the base move's BP.", + shortDesc: "Base move affects power. Allies: +1 Attack.", + }, + maxlightning: { + name: "Max Lightning", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Electric Terrain begins.", + shortDesc: "Base move affects power. Starts Electric Terrain.", + }, + maxmindstorm: { + name: "Max Mindstorm", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Psychic Terrain begins.", + shortDesc: "Base move affects power. Starts Psychic Terrain.", + }, + maxooze: { + name: "Max Ooze", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Attack of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: +1 Sp. Atk.", + }, + maxovergrowth: { + name: "Max Overgrowth", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Grassy Terrain begins.", + shortDesc: "Base move affects power. Starts Grassy Terrain.", + }, + maxphantasm: { + name: "Max Phantasm", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Defense of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -1 Defense.", + }, + maxquake: { + name: "Max Quake", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Special Defense of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: +1 Sp. Def.", + }, + maxrockfall: { + name: "Max Rockfall", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Sandstorm begins.", + shortDesc: "Base move affects power. Starts Sandstorm.", + }, + maxstarfall: { + name: "Max Starfall", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the effect of Misty Terrain begins.", + shortDesc: "Base move affects power. Starts Misty Terrain.", + }, + maxsteelspike: { + name: "Max Steelspike", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Defense of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Allies: +1 Defense.", + }, + maxstrike: { + name: "Max Strike", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -1 Speed.", + }, + maxwyrmwind: { + name: "Max Wyrmwind", + desc: "Power is equal to the base move's Max Move power. If this move is successful, the Attack of each Pokemon on the opposing side is lowered by 1 stage, even if they have a substitute.", + shortDesc: "Base move affects power. Foes: -1 Attack.", + }, + meanlook: { + name: "Mean Look", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Prevents the target from switching out.", + descGen7: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + descGen5: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + descGen4: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", + descGen3: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", + }, + meditate: { + name: "Meditate", + desc: "Raises the user's Attack by 1 stage.", + shortDesc: "Raises the user's Attack by 1.", + }, + mefirst: { + name: "Me First", + desc: "The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move other than Beak Blast, Chatter, Counter, Covet, Focus Punch, Me First, Metal Burst, Mirror Coat, Shell Trap, Struggle, Thief, or any Z-Move. Fails if the target moves before the user. Ignores the target's substitute for the purpose of copying the move.", + shortDesc: "Copies a foe at 1.5x power. User must be faster.", + descGen6: "The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move other than Chatter, Counter, Covet, Focus Punch, Me First, Metal Burst, Mirror Coat, Struggle, or Thief. Fails if the target moves before the user. Ignores the target's substitute for the purpose of copying the move.", + descGen4: "The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move other than Chatter, Counter, Covet, Focus Punch, Mirror Coat, or Thief. Fails if the target moves before the user. Ignores the target's substitute for the purpose of copying the move.", + }, + megadrain: { + name: "Mega Drain", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + descGen4: "The user recovers 1/2 the HP lost by the target, rounded down. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded down.", + descGen3: "The user recovers 1/2 the HP lost by the target, rounded down.", + }, + megahorn: { + name: "Megahorn", + shortDesc: "No additional effect.", + }, + megakick: { + name: "Mega Kick", + shortDesc: "No additional effect.", + }, + megapunch: { + name: "Mega Punch", + shortDesc: "No additional effect.", + }, + memento: { + name: "Memento", + desc: "Lowers the target's Attack and Special Attack by 2 stages. The user faints unless this move misses or there is no target. Fails entirely if this move hits a substitute, but does not fail if the target's stats cannot be changed.", + shortDesc: "Lowers target's Attack, Sp. Atk by 2. User faints.", + descGen4: "Lowers the target's Attack and Special Attack by 2 stages. The user faints, even if this move misses. This move can hit targets in the middle of a two-turn move. Fails entirely if there is no target, but does not fail if the target's stats cannot be changed.", + descGen3: "Lowers the target's Attack and Special Attack by 2 stages. The user faints. This move does not check accuracy, and can hit targets in the middle of a two-turn move. Fails entirely if the target's Attack and Special Attack stat stages are both -6.", + + heal: " [POKEMON]'s HP was restored by the Z-Power!", + }, + menacingmoonrazemaelstrom: { + name: "Menacing Moonraze Maelstrom", + desc: "This move and its effects ignore the Abilities of other Pokemon.", + shortDesc: "Ignores the Abilities of other Pokemon.", + }, + metalburst: { + name: "Metal Burst", + desc: "Deals damage to the last opposing Pokemon to hit the user with an attack this turn equal to 1.5 times the HP lost by the user from that attack, rounded down. If the user did not lose HP from the attack, this move deals 1 HP of damage instead. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's attack this turn.", + shortDesc: "If hit by an attack, returns 1.5x damage.", + descGen6: "Deals damage to the last opposing Pokemon to hit the user with an attack this turn equal to 1.5 times the HP lost by the user from that attack, rounded down. If the user did not lose HP from the attack, this move deals damage with a power of 1 instead. If that opposing Pokemon's position is no longer in use, the damage is done to a random opposing Pokemon in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's attack this turn.", + descGen4: "Deals damage to the last opposing Pokemon to hit the user with an attack this turn equal to 1.5 times the HP lost by the user from that attack, rounded down. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's attack this turn, or if the user did not lose HP from the attack.", + }, + metalclaw: { + name: "Metal Claw", + desc: "Has a 10% chance to raise the user's Attack by 1 stage.", + shortDesc: "10% chance to raise the user's Attack by 1.", + }, + metalsound: { + name: "Metal Sound", + desc: "Lowers the target's Special Defense by 2 stages.", + shortDesc: "Lowers the target's Sp. Def by 2.", + }, + meteorassault: { + name: "Meteor Assault", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + meteorbeam: { + name: "Meteor Beam", + desc: "This attack charges on the first turn and executes on the second. Raises the user's Special Attack by 1 stage on the first turn. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Raises user's Sp. Atk by 1 on turn 1. Hits turn 2.", + }, + meteormash: { + name: "Meteor Mash", + desc: "Has a 20% chance to raise the user's Attack by 1 stage.", + shortDesc: "20% chance to raise the user's Attack by 1.", + }, + metronome: { + name: "Metronome", + desc: "A random move is selected for use, other than After You, Apple Acid, Assist, Aura Wheel, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Body Press, Branch Poke, Breaking Swipe, Celebrate, Chatter, Clangorous Soul, Copycat, Counter, Covet, Crafty Shield, Decorate, Destiny Bond, Detect, Diamond Storm, Double Iron Bash, Dragon Ascent, Drum Beating, Dynamax Cannon, Endure, Eternabeam, False Surrender, Feint, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Grav Apple, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, King's Shield, Life Dew, Light of Ruin, Mat Block, Me First, Meteor Assault, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Moongeist Beam, Nature Power, Nature's Madness, Obstruct, Origin Pulse, Overdrive, Photon Geyser, Plasma Fists, Precipice Blades, Protect, Pyro Ball, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Shell Trap, Sketch, Sleep Talk, Snap Trap, Snarl, Snatch, Snore, Spectral Thief, Spiky Shield, Spirit Break, Spotlight, Steam Eruption, Steel Beam, Strange Steam, Struggle, Sunsteel Strike, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Transform, Trick, V-create, or Wide Guard.", + shortDesc: "Picks a random move.", + descGen7: "A random move is selected for use, other than After You, Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Celebrate, Chatter, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Diamond Storm, Dragon Ascent, Endure, Feint, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, King's Shield, Light of Ruin, Mat Block, Me First, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Nature Power, Origin Pulse, Photon Geyser, Plasma Fists, Precipice Blades, Protect, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Shell Trap, Sketch, Sleep Talk, Snarl, Snatch, Snore, Spectral Thief, Spiky Shield, Spotlight, Steam Eruption, Struggle, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Transform, Trick, V-create, or Wide Guard.", + descGen6: "A random move is selected for use, other than After You, Assist, Belch, Bestow, Celebrate, Chatter, Copycat, Counter, Covet, Crafty Shield, Destiny Bond, Detect, Diamond Storm, Dragon Ascent, Endure, Feint, Focus Punch, Follow Me, Freeze Shock, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, King's Shield, Light of Ruin, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Origin Pulse, Precipice Blades, Protect, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Sketch, Sleep Talk, Snarl, Snatch, Snore, Spiky Shield, Steam Eruption, Struggle, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Transform, Trick, V-create, or Wide Guard.", + descGen5: "A random move is selected for use, other than After You, Assist, Bestow, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Freeze Shock, Helping Hand, Ice Burn, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Sketch, Sleep Talk, Snarl, Snatch, Snore, Struggle, Switcheroo, Techno Blast, Thief, Transform, Trick, V-create, or Wide Guard.", + descGen4: "A random move is selected for use, other than Assist, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Protect, Sketch, Sleep Talk, Snatch, Struggle, Switcheroo, Thief, or Trick.", + descGen3: "A random move is selected for use, other than Counter, Covet, Destiny Bond, Detect, Endure, Focus Punch, Follow Me, Helping Hand, Metronome, Mimic, Mirror Coat, Protect, Sketch, Sleep Talk, Snatch, Struggle, Thief, or Trick.", + descGen2: "A random move is selected for use, other than Counter, Destiny Bond, Detect, Endure, Metronome, Mimic, Mirror Coat, Protect, Sketch, Sleep Talk, Struggle, or Thief.", + descGen1: "A random move is selected for use, other than Metronome or Struggle.", + + move: "Waggling a finger let it use [MOVE]!", + }, + milkdrink: { + name: "Milk Drink", + desc: "The user restores 1/2 of its maximum HP, rounded half up.", + shortDesc: "Heals the user by 50% of its max HP.", + descGen4: "The user restores 1/2 of its maximum HP, rounded down.", + }, + mimic: { + name: "Mimic", + desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Chatter, Mimic, Sketch, Struggle, Transform, or any Z-Move.", + shortDesc: "The last move the target used replaces this one.", + descGen6: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Chatter, Mimic, Sketch, Struggle, or Transform.", + descGen4: "While the user remains active, this move is replaced by the last move used by the target. The copied move has 5 PP. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Chatter, Metronome, Mimic, Sketch, or Struggle.", + descGen3: "While the user remains active, this move is replaced by the last move used by the target. The copied move has 5 PP. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Metronome, Mimic, Sketch, or Struggle.", + descGen2: "While the user remains active, this move is replaced by the last move used by the target. The copied move has 5 PP. Fails if the target has not made a move, if the user already knows the move, or if the move is Struggle.", + descGen1: "While the user remains active, this move is replaced by a random move known by the target, even if the user already knows that move. The copied move keeps the remaining PP for this move, regardless of the copied move's maximum PP. Whenever one PP is used for a copied move, one PP is used for this move.", + shortDescGen1: "Random move known by the target replaces this.", + + start: " [POKEMON] learned [MOVE]!", + }, + mindblown: { + name: "Mind Blown", + desc: "Whether or not this move is successful and even if it would cause fainting, the user loses 1/2 of its maximum HP, rounded up, unless the user has the Magic Guard Ability. This move is prevented from executing and the user does not lose HP if any active Pokemon has the Damp Ability, or if this move is Fire type and the user is affected by Powder or the weather is Primordial Sea.", + shortDesc: "User loses 50% max HP. Hits adjacent Pokemon.", + }, + mindreader: { + name: "Mind Reader", + desc: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. The effect ends if either the user or the target leaves the field. Fails if this effect is active for the user.", + shortDesc: "User's next move will not miss the target.", + descGen4: "Until the end of the next turn, the target cannot avoid the user's moves, even if the target is in the middle of a two-turn move. When this effect is started against the target, this and Lock-On's effects end for every other Pokemon against that target. If the target leaves the field using Baton Pass, the replacement remains under this effect. If the user leaves the field using Baton Pass, this effect is restarted against the same target for the replacement. The effect ends if either the user or the target leaves the field.", + descGen2: "The next accuracy check against the target succeeds. The target will still avoid Earthquake, Fissure, and Magnitude if it is using Fly. If the target leaves the field using Baton Pass, the replacement remains under this effect. This effect ends when the target leaves the field or an accuracy check is done against it.", + shortDescGen2: "The next move will not miss the target.", + + start: "#lockon", + }, + minimize: { + name: "Minimize", + desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Heavy Slam, Malicious Moonsault, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", + shortDesc: "Raises the user's evasiveness by 2.", + descGen6: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Phantom Force, Shadow Force, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", + descGen5: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Stomp and Steamroller will have their damage doubled if used against the user while it is active.", + descGen4: "Raises the user's evasiveness by 1 stage. Whether or not the user's evasiveness was changed, Stomp will have its power doubled if used against the user while it is active.", + shortDescGen4: "Raises the user's evasiveness by 1.", + descGen3: "Raises the user's evasiveness by 1 stage. Whether or not the user's evasiveness was changed, Astonish, Extrasensory, Needle Arm, and Stomp will have their damage doubled if used against the user while it is active.", + descGen2: "Raises the user's evasiveness by 1 stage. Whether or not the user's evasiveness was changed, Stomp will have its power doubled if used against the user while it is active. Baton Pass can be used to transfer this effect to an ally.", + descGen1: "Raises the user's evasiveness by 1 stage.", + }, + miracleeye: { + name: "Miracle Eye", + desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Psychic-type attacks can hit the target if it is a Dark type. Fails if the target is already affected, or affected by Foresight or Odor Sleuth.", + shortDesc: "Psychic hits Dark. Evasiveness ignored.", + descGen4: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Psychic-type attacks can hit the target if it is a Dark type.", + + start: "#foresight", + }, + mirrorcoat: { + name: "Mirror Coat", + desc: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals 1 HP of damage instead. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn.", + shortDesc: "If hit by special attack, returns double damage.", + descGen6: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If the user did not lose HP from the attack, this move deals damage with a power of 1 instead. If that opposing Pokemon's position is no longer in use, the damage is done to a random opposing Pokemon in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn.", + descGen4: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn, or if the user did not lose HP from the attack.", + descGen3: "Deals damage to the last opposing Pokemon to hit the user with a special attack this turn equal to twice the HP lost by the user from that attack. If that opposing Pokemon's position is no longer in use and there is another opposing Pokemon on the field, the damage is done to it instead. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user was not hit by an opposing Pokemon's special attack this turn, or if the user did not lose HP from the attack.", + descGen2: "Deals damage to the opposing Pokemon equal to twice the HP lost by the user from a special attack this turn. This move considers Hidden Power as Normal type, and only the last hit of a multi-hit attack is counted. Fails if the user moves first, if the user was not hit by a special attack this turn, or if the user did not lose HP from the attack.", + }, + mirrormove: { + name: "Mirror Move", + desc: "The user uses the last move used by the target. The copied move is used against that target, if possible. Fails if the target has not made a move, or if the last move used cannot be copied by this move.", + shortDesc: "User uses the target's last used move against it.", + descGen4: "The user uses the last move that successfully targeted the user. The copied move is used with no specific target. Fails if no move has targeted the user, if the move was called by another move, if the move is Encore, or if the move cannot be copied by this move.", + descGen3: "The user uses the last move that successfully targeted the user. The copied move is used with no specific target. Fails if no move has targeted the user, if the move missed, failed, or had no effect on the user, or if the move cannot be copied by this move.", + descGen2: "The user uses the last move used by the target. Fails if the target has not made a move, or if the last move used was Metronome, Mimic, Mirror Move, Sketch, Sleep Talk, Transform, or any move the user knows.", + descGen1: "The user uses the last move used by the target. Fails if the target has not made a move, or if the last move used was Mirror Move.", + }, + mirrorshot: { + name: "Mirror Shot", + desc: "Has a 30% chance to lower the target's accuracy by 1 stage.", + shortDesc: "30% chance to lower the target's accuracy by 1.", + }, + mist: { + name: "Mist", + desc: "For 5 turns, the user and its party members are protected from having their stat stages lowered by other Pokemon. Fails if the effect is already active on the user's side.", + shortDesc: "For 5 turns, protects user's party from stat drops.", + descGen2: "While the user remains active, it is protected from having its stat stages lowered by other Pokemon. Fails if the user already has the effect. Baton Pass can be used to transfer this effect to an ally.", + shortDescGen2: "While active, user is protected from stat drops.", + descGen1: "While the user remains active, it is protected from having its stat stages lowered by other Pokemon, unless caused by the secondary effect of a move. Fails if the user already has the effect. If any Pokemon uses Haze, this effect ends.", + + start: " [TEAM] became shrouded in mist!", + end: " [TEAM] is no longer protected by mist!", + block: " [POKEMON] is protected by the mist!", + }, + mistball: { + name: "Mist Ball", + desc: "Has a 50% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "50% chance to lower the target's Sp. Atk by 1.", + }, + mistyexplosion: { + name: "Misty Explosion", + desc: "If the current terrain is Misty Terrain and the user is grounded, this move's power is multiplied by 1.5. The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Damp Ability.", + shortDesc: "User faints. User on Misty Terrain: 1.5x power.", + }, + mistyterrain: { + name: "Misty Terrain", + desc: "For 5 turns, the terrain becomes Misty Terrain. During the effect, the power of Dragon-type attacks used against grounded Pokemon is multiplied by 0.5 and grounded Pokemon cannot be inflicted with a major status condition nor confusion. Camouflage transforms the user into a Fairy type, Nature Power becomes Moonblast, and Secret Power has a 30% chance to lower Special Attack by 1 stage. Fails if the current terrain is Misty Terrain.", + shortDesc: "5 turns. Can't status,-Dragon power vs grounded.", + descGen6: "For 5 turns, the terrain becomes Misty Terrain. During the effect, the power of Dragon-type attacks used against grounded Pokemon is multiplied by 0.5 and grounded Pokemon cannot be inflicted with a major status condition. Camouflage transforms the user into a Fairy type, Nature Power becomes Moonblast, and Secret Power has a 30% chance to lower Special Attack by 1 stage. Fails if the current terrain is Misty Terrain.", + }, + moonblast: { + name: "Moonblast", + desc: "Has a 30% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "30% chance to lower the target's Sp. Atk by 1.", + }, + moongeistbeam: { + name: "Moongeist Beam", + desc: "This move and its effects ignore the Abilities of other Pokemon.", + shortDesc: "Ignores the Abilities of other Pokemon.", + }, + moonlight: { + name: "Moonlight", + desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", + shortDesc: "Heals the user by a weather-dependent amount.", + descGen7: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", + descGen5: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded half down.", + descGen4: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded down.", + descGen2: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", + }, + morningsun: { + name: "Morning Sun", + desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", + shortDesc: "Heals the user by a weather-dependent amount.", + descGen7: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", + descGen5: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded half down.", + descGen4: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded down.", + descGen2: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", + }, + mudbomb: { + name: "Mud Bomb", + desc: "Has a 30% chance to lower the target's accuracy by 1 stage.", + shortDesc: "30% chance to lower the target's accuracy by 1.", + }, + mudshot: { + name: "Mud Shot", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the target's Speed by 1.", + }, + mudslap: { + name: "Mud-Slap", + desc: "Has a 100% chance to lower the target's accuracy by 1 stage.", + shortDesc: "100% chance to lower the target's accuracy by 1.", + }, + mudsport: { + name: "Mud Sport", + desc: "For 5 turns, all Electric-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active.", + shortDesc: "For 5 turns, Electric-type attacks have 1/3 power.", + descGen5: "While the user is active, all Electric-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active for any Pokemon.", + shortDescGen5: "Weakens Electric-type attacks to 1/3 their power.", + descGen4: "While the user is active, all Electric-type attacks used by any active Pokemon have their power halved. Fails if this effect is already active for the user. Baton Pass can be used to transfer this effect to an ally.", + shortDescGen4: "Weakens Electric-type attacks to 1/2 their power.", + }, + muddywater: { + name: "Muddy Water", + desc: "Has a 30% chance to lower the target's accuracy by 1 stage.", + shortDesc: "30% chance to lower the foe(s) accuracy by 1.", + }, + multiattack: { + name: "Multi-Attack", + desc: "This move's type depends on the user's held Memory.", + shortDesc: "Type varies based on the held Memory.", + }, + mysticalfire: { + name: "Mystical Fire", + desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "100% chance to lower the target's Sp. Atk by 1.", + }, + nastyplot: { + name: "Nasty Plot", + desc: "Raises the user's Special Attack by 2 stages.", + shortDesc: "Raises the user's Sp. Atk by 2.", + }, + naturalgift: { + name: "Natural Gift", + desc: "The type and power of this move depend on the user's held Berry, and the Berry is lost. Fails if the user is not holding a Berry, if the user has the Klutz Ability, or if Embargo or Magic Room is in effect for the user.", + shortDesc: "Power and type depends on the user's Berry.", + descGen4: "The type and power of this move depend on the user's held Berry, and the Berry is lost. Fails if the user is not holding a Berry, if the user has the Klutz Ability, or if Embargo is in effect for the user.", + }, + naturepower: { + name: "Nature Power", + desc: "This move calls another move for use based on the battle terrain. Tri Attack on the regular Wi-Fi terrain, Thunderbolt during Electric Terrain, Moonblast during Misty Terrain, Energy Ball during Grassy Terrain, and Psychic during Psychic Terrain.", + shortDesc: "Attack depends on terrain (default Tri Attack).", + descGen6: "This move calls another move for use based on the battle terrain. Tri Attack on the regular Wi-Fi terrain, Thunderbolt during Electric Terrain, Moonblast during Misty Terrain, and Energy Ball during Grassy Terrain.", + descGen5: "This move calls another move for use based on the battle terrain. Earthquake on the regular Wi-Fi terrain.", + shortDescGen5: "Attack changes based on terrain. (Earthquake)", + descGen4: "This move calls another move for use based on the battle terrain. Tri Attack in Wi-Fi battles.", + shortDescGen4: "Attack changes based on terrain. (Tri Attack)", + descGen3: "This move calls another move for use depending on the battle terrain. Swift in Wi-Fi battles.", + shortDescGen3: "Attack changes based on terrain. (Swift)", + + move: "Nature Power turned into [MOVE]!", + }, + naturesmadness: { + name: "Nature's Madness", + desc: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP.", + shortDesc: "Does damage equal to 1/2 target's current HP.", + }, + needlearm: { + name: "Needle Arm", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + descGen3: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", + }, + neverendingnightmare: { + name: "Never-Ending Nightmare", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + nightdaze: { + name: "Night Daze", + desc: "Has a 40% chance to lower the target's accuracy by 1 stage.", + shortDesc: "40% chance to lower the target's accuracy by 1.", + }, + nightmare: { + name: "Nightmare", + desc: "Causes the target to lose 1/4 of its maximum HP, rounded down, at the end of each turn as long as it is asleep. This move does not affect the target unless it is asleep. The effect ends when the target wakes up, even if it falls asleep again in the same turn.", + shortDesc: "A sleeping target is hurt by 1/4 max HP per turn.", + + start: " [POKEMON] began having a nightmare!", + damage: " [POKEMON] is locked in a nightmare!", + }, + nightshade: { + name: "Night Shade", + desc: "Deals damage to the target equal to the user's level.", + shortDesc: "Does damage equal to the user's level.", + descGen1: "Deals damage to the target equal to the user's level. This move ignores type immunity.", + shortDescGen1: "Damage = user's level. Can hit Normal types.", + }, + nightslash: { + name: "Night Slash", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + nobleroar: { + name: "Noble Roar", + desc: "Lowers the target's Attack and Special Attack by 1 stage.", + shortDesc: "Lowers the target's Attack and Sp. Atk by 1.", + }, + noretreat: { + name: "No Retreat", + desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage, but it becomes prevented from switching out. The user can still switch out if it uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped. Fails if the user has already been prevented from switching by this effect.", + shortDesc: "Raises all stats by 1 (not acc/eva). Traps user.", + + start: " [POKEMON] can no longer escape because it used No Retreat!", + }, + nuzzle: { + name: "Nuzzle", + desc: "Has a 100% chance to paralyze the target.", + shortDesc: "100% chance to paralyze the target.", + }, + oblivionwing: { + name: "Oblivion Wing", + desc: "The user recovers 3/4 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 75% of the damage dealt.", + }, + obstruct: { + name: "Obstruct", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Defense lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Protects from damaging attacks. Contact: -2 Def.", + }, + oceanicoperetta: { + name: "Oceanic Operetta", + shortDesc: "No additional effect.", + }, + octazooka: { + name: "Octazooka", + desc: "Has a 50% chance to lower the target's accuracy by 1 stage.", + shortDesc: "50% chance to lower the target's accuracy by 1.", + }, + octolock: { + name: "Octolock", + desc: "Prevents the target from switching out. At the end of each turn during effect, the target's Defense and Special Defense are lowered by 1 stage. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Traps target, lowers Def and SpD by 1 each turn.", + + start: " [POKEMON] can no longer escape because of Octolock!", + }, + odorsleuth: { + name: "Odor Sleuth", + desc: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. Fails if the target is already affected, or affected by Foresight or Miracle Eye.", + shortDesc: "Fighting, Normal hit Ghost. Evasiveness ignored.", + descGen4: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it if it is greater than 0, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", + descGen3: "As long as the target remains active, its evasiveness stat stage is ignored during accuracy checks against it, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type.", + }, + ominouswind: { + name: "Ominous Wind", + desc: "Has a 10% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", + shortDesc: "10% chance to raise all stats by 1 (not acc/eva).", + }, + originpulse: { + name: "Origin Pulse", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent foes.", + }, + outrage: { + name: "Outrage", + desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk and the user is asleep, the move is used for one turn and does not confuse the user.", + shortDesc: "Lasts 2-3 turns. Confuses the user afterwards.", + descGen6: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an adjacent opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen4: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen3: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, falls asleep, becomes frozen, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen2: "Whether or not this move is successful, the user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + }, + overdrive: { + name: "Overdrive", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits foe(s).", + }, + overheat: { + name: "Overheat", + desc: "Lowers the user's Special Attack by 2 stages.", + shortDesc: "Lowers the user's Sp. Atk by 2.", + }, + painsplit: { + name: "Pain Split", + desc: "The user and the target's HP become the average of their current HP, rounded down, but not more than the maximum HP of either one.", + shortDesc: "Shares HP of user and target equally.", + + activate: " The battlers shared their pain!", + }, + paleowave: { + name: "Paleo Wave", + desc: "Has a 20% chance to lower the target's Attack by 1 stage.", + shortDesc: "20% chance to lower the target's Attack by 1.", + }, + paraboliccharge: { + name: "Parabolic Charge", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", + shortDesc: "User recovers 50% of the damage dealt.", + }, + partingshot: { + name: "Parting Shot", + desc: "Lowers the target's Attack and Special Attack by 1 stage. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if the target's Attack and Special Attack stat stages were both unchanged, or if there are no unfainted party members.", + shortDesc: "Lowers target's Atk, Sp. Atk by 1. User switches.", + descGen6: "Lowers the target's Attack and Special Attack by 1 stage. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", + + heal: "#memento", + }, + payback: { + name: "Payback", + desc: "Power doubles if the user moves after the target this turn, including actions taken through Instruct or the Dancer Ability. Switching in does not count as an action.", + shortDesc: "Power doubles if the user moves after the target.", + descGen6: "Power doubles if the user moves after the target this turn. Switching in does not count as an action.", + descGen4: "Power doubles if the user moves after the target this turn. Switching in counts as an action.", + }, + payday: { + name: "Pay Day", + desc: "No additional effect.", + shortDesc: "Scatters coins.", + + activate: " Coins were scattered everywhere!", + }, + peck: { + name: "Peck", + shortDesc: "No additional effect.", + }, + perishsong: { + name: "Perish Song", + desc: "Each active Pokemon receives a perish count of 4 if it doesn't already have a perish count. At the end of each turn including the turn used, the perish count of all active Pokemon lowers by 1 and Pokemon faint if the number reaches 0. The perish count is removed from Pokemon that switch out. If a Pokemon uses Baton Pass while it has a perish count, the replacement will gain the perish count and continue to count down.", + shortDesc: "All active Pokemon will faint in 3 turns.", + + start: " All Pok\u00E9mon that heard the song will faint in three turns!", + activate: " [POKEMON]'s perish count fell to [NUMBER].", + }, + petalblizzard: { + name: "Petal Blizzard", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent Pokemon.", + }, + petaldance: { + name: "Petal Dance", + desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk and the user is asleep, the move is used for one turn and does not confuse the user.", + shortDesc: "Lasts 2-3 turns. Confuses the user afterwards.", + descGen6: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an adjacent opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen4: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen3: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, falls asleep, becomes frozen, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen2: "Whether or not this move is successful, the user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen1: "Whether or not this move is successful, the user spends three or four turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. During the effect, this move's accuracy is overwritten every turn with the current calculated accuracy including stat stage changes, but not to less than 1/256 or more than 255/256.", + shortDescGen1: "Lasts 3-4 turns. Confuses the user afterwards.", + }, + phantomforce: { + name: "Phantom Force", + desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection.", + descGen6: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + + prepare: "#shadowforce", + activate: "#shadowforce", + }, + photongeyser: { + name: "Photon Geyser", + desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. This move and its effects ignore the Abilities of other Pokemon.", + shortDesc: "Physical if user's Atk > Sp. Atk. Ignores Abilities.", + }, + pikapapow: { + name: "Pika Papow", + desc: "Power is equal to the greater of (user's Happiness * 2/5), rounded down, or 1.", + shortDesc: "Max happiness: 102 power. Can't miss.", + }, + pinmissile: { + name: "Pin Missile", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + plasmafists: { + name: "Plasma Fists", + desc: "If this move is successful, causes Normal-type moves to become Electric type this turn.", + shortDesc: "Normal moves become Electric type this turn.", + }, + playnice: { + name: "Play Nice", + desc: "Lowers the target's Attack by 1 stage.", + shortDesc: "Lowers the target's Attack by 1.", + }, + playrough: { + name: "Play Rough", + desc: "Has a 10% chance to lower the target's Attack by 1 stage.", + shortDesc: "10% chance to lower the target's Attack by 1.", + }, + pluck: { + name: "Pluck", + desc: "If this move is successful and the user has not fainted, it steals the target's held Berry if it is holding one and eats it immediately, gaining its effects even if the user's item is being ignored. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "User steals and eats the target's Berry.", + descGen4: "The user steals the target's held Berry if it is holding one and eats it immediately, gaining its effects unless the user's item is being ignored. Items lost to this move can be regained with Recycle.", + + removeItem: '#bugbite', + }, + poisonfang: { + name: "Poison Fang", + desc: "Has a 50% chance to badly poison the target.", + shortDesc: "50% chance to badly poison the target.", + descGen5: "Has a 30% chance to badly poison the target.", + shortDescGen5: "30% chance to badly poison the target.", + }, + poisongas: { + name: "Poison Gas", + desc: "Poisons the target.", + shortDesc: "Poisons the foe(s).", + shortDescGen2: "Poisons the target.", + }, + poisonjab: { + name: "Poison Jab", + desc: "Has a 30% chance to poison the target.", + shortDesc: "30% chance to poison the target.", + }, + poisonpowder: { + name: "Poison Powder", + desc: "Poisons the target.", + shortDesc: "Poisons the target.", + }, + poisonsting: { + name: "Poison Sting", + desc: "Has a 30% chance to poison the target.", + shortDesc: "30% chance to poison the target.", + descGen1: "Has a 20% chance to poison the target.", + shortDescGen1: "20% chance to poison the target.", + }, + poisontail: { + name: "Poison Tail", + desc: "Has a 10% chance to poison the target and a higher chance for a critical hit.", + shortDesc: "High critical hit ratio. 10% chance to poison.", + }, + pollenpuff: { + name: "Pollen Puff", + desc: "If the target is an ally, this move restores 1/2 of its maximum HP, rounded down, instead of dealing damage.", + shortDesc: "If the target is an ally, heals 50% of its max HP.", + }, + poltergeist: { + name: "Poltergeist", + shortDesc: "Fails if the target has no held item.", + + activate: " [POKEMON] is about to be attacked by its [ITEM]!", + }, + pound: { + name: "Pound", + shortDesc: "No additional effect.", + }, + powder: { + name: "Powder", + desc: "If the target uses a Fire-type move this turn, it is prevented from executing and the target loses 1/4 of its maximum HP, rounded half up. This effect does not happen if the Fire-type move is prevented by Primordial Sea.", + shortDesc: "If using a Fire move, target loses 1/4 max HP.", + descGen6: "If the target uses a Fire-type move this turn, it is prevented from executing and the target loses 1/4 of its maximum HP, rounded half up. This effect happens before the Fire-type move would be prevented by Primordial Sea.", + + start: " [POKEMON] is covered in powder!", + activate: " When the flame touched the powder on the Pok\u00E9mon, it exploded!", + }, + powdersnow: { + name: "Powder Snow", + desc: "Has a 10% chance to freeze the target.", + shortDesc: "10% chance to freeze the foe(s).", + shortDescGen2: "10% chance to freeze the target.", + }, + powergem: { + name: "Power Gem", + shortDesc: "No additional effect.", + }, + powersplit: { + name: "Power Split", + desc: "The user and the target have their Attack and Special Attack stats set to be equal to the average of the user and the target's Attack and Special Attack stats, respectively, rounded down. Stat stage changes are unaffected.", + shortDesc: "Averages Attack and Sp. Atk stats with target.", + + activate: " [POKEMON] shared its power with the target!", + }, + powerswap: { + name: "Power Swap", + desc: "The user swaps its Attack and Special Attack stat stage changes with the target.", + shortDesc: "Swaps Attack and Sp. Atk stat stages with target.", + }, + powertrick: { + name: "Power Trick", + desc: "The user swaps its Attack and Defense stats, and stat stage changes remain on their respective stats. This move can be used again to swap the stats back. If the user uses Baton Pass, the replacement will have its Attack and Defense stats swapped if the effect is active. If the user has its stats recalculated by changing forme while its stats are swapped, this effect is ignored but is still active for the purposes of Baton Pass.", + shortDesc: "Switches user's Attack and Defense stats.", + + start: " [POKEMON] switched its Attack and Defense!", + end: '#.start', + }, + powertrip: { + name: "Power Trip", + desc: "Power is equal to 20+(X*20), where X is the user's total stat stage changes that are greater than 0.", + shortDesc: " + 20 power for each of the user's stat boosts.", + }, + poweruppunch: { + name: "Power-Up Punch", + desc: "Has a 100% chance to raise the user's Attack by 1 stage.", + shortDesc: "100% chance to raise the user's Attack by 1.", + }, + powerwhip: { + name: "Power Whip", + shortDesc: "No additional effect.", + }, + precipiceblades: { + name: "Precipice Blades", + desc: "No additional effect.", + shortDesc: "No additional effect. Hits adjacent foes.", + }, + present: { + name: "Present", + desc: "If this move is successful, it deals damage or heals the target. 40% chance for 40 power, 30% chance for 80 power, 10% chance for 120 power, and 20% chance to heal the target by 1/4 of its maximum HP, rounded down.", + shortDesc: "40, 80, 120 power, or heals target 1/4 max HP.", + descGen2: "If this move is successful, it deals damage or heals the target. 102/256 chance for 40 power, 76/256 chance for 80 power, 26/256 chance for 120 power, or 52/256 chance to heal the target by 1/4 of its maximum HP, rounded down. If this move deals damage, it uses an abnormal version of the damage formula by substituting certain values. The user's Attack stat is replaced with 10 times the effectiveness of this move against the target, the target's Defense stat is replaced with the index number of the user's secondary type, and the user's level is replaced with the index number of the target's secondary type. If a Pokemon does not have a secondary type, its primary type is used. The index numbers for each type are Normal: 0, Fighting: 1, Flying: 2, Poison: 3, Ground: 4, Rock: 5, Bug: 7, Ghost: 8, Steel: 9, Fire: 20, Water: 21, Grass: 22, Electric: 23, Psychic: 24, Ice: 25, Dragon: 26, Dark: 27. If at any point a division by 0 would happen in the damage formula, it divides by 1 instead.", + }, + prismaticlaser: { + name: "Prismatic Laser", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + protect: { + name: "Protect", + desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Prevents moves from affecting the user this turn.", + descGen7: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen6: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen5: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, Protect, Quick Guard, or Wide Guard. Fails if the user moves last this turn.", + descGen4: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used, up to a maximum of 8. X resets to 1 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", + descGen3: "The user is protected from most attacks made by other Pokemon during this turn. This move has an X/65536 chance of being successful, where X starts at 65535 and halves, rounded down, each time this move is successfully used. After the fourth successful use in a row, X drops to 118 and continues with seemingly random values from 0-65535 on subsequent successful uses. X resets to 65535 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user moves last this turn.", + descGen2: "The user is protected from attacks made by the opponent during this turn. This move has an X/255 chance of being successful, where X starts at 255 and halves, rounded down, each time this move is successfully used. X resets to 255 if this move fails or if the user's last move used is not Detect, Endure, or Protect. Fails if the user has a substitute or moves last this turn.", + + start: " [POKEMON] protected itself!", + block: " [POKEMON] protected itself!", + }, + psybeam: { + name: "Psybeam", + desc: "Has a 10% chance to confuse the target.", + shortDesc: "10% chance to confuse the target.", + }, + psychup: { + name: "Psych Up", + desc: "The user copies all of the target's current stat stage changes.", + shortDesc: "Copies the target's current stat stages.", + descGen2: "The user copies all of the target's current stat stage changes. Fails if the target's stat stages are 0.", + }, + psychic: { + name: "Psychic", + desc: "Has a 10% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "10% chance to lower the target's Sp. Def by 1.", + descGen1: "Has a 33% chance to lower the target's Special by 1 stage.", + shortDescGen1: "33% chance to lower the target's Special by 1.", + }, + psychicfangs: { + name: "Psychic Fangs", + desc: "If this attack does not miss, the effects of Reflect, Light Screen, and Aurora Veil end for the target's side of the field before damage is calculated.", + shortDesc: "Destroys screens, unless the target is immune.", + }, + psychicterrain: { + name: "Psychic Terrain", + desc: "For 5 turns, the terrain becomes Psychic Terrain. During the effect, the power of Psychic-type attacks made by grounded Pokemon is multiplied by 1.3 and grounded Pokemon cannot be hit by moves with priority greater than 0, unless the target is an ally. Camouflage transforms the user into a Psychic type, Nature Power becomes Psychic, and Secret Power has a 30% chance to lower the target's Speed by 1 stage. Fails if the current terrain is Psychic Terrain.", + shortDesc: "5 turns. Grounded: +Psychic power, priority-safe.", + descGen7: "For 5 turns, the terrain becomes Psychic Terrain. During the effect, the power of Psychic-type attacks made by grounded Pokemon is multiplied by 1.5 and grounded Pokemon cannot be hit by moves with priority greater than 0, unless the target is an ally. Camouflage transforms the user into a Psychic type, Nature Power becomes Psychic, and Secret Power has a 30% chance to lower the target's Speed by 1 stage. Fails if the current terrain is Psychic Terrain.", + }, + psychoboost: { + name: "Psycho Boost", + desc: "Lowers the user's Special Attack by 2 stages.", + shortDesc: "Lowers the user's Sp. Atk by 2.", + }, + psychocut: { + name: "Psycho Cut", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + psychoshift: { + name: "Psycho Shift", + desc: "The user's major status condition is transferred to the target, and the user is then cured. Fails if the user has no major status condition or if the target already has one.", + shortDesc: "Transfers the user's status ailment to the target.", + }, + psyshock: { + name: "Psyshock", + desc: "Deals damage to the target based on its Defense instead of Special Defense.", + shortDesc: "Damages target based on Defense, not Sp. Def.", + }, + psystrike: { + name: "Psystrike", + desc: "Deals damage to the target based on its Defense instead of Special Defense.", + shortDesc: "Damages target based on Defense, not Sp. Def.", + }, + psywave: { + name: "Psywave", + desc: "Deals damage to the target equal to (user's level) * (X + 50) / 100, where X is a random number from 0 to 100, rounded down, but not less than 1 HP.", + shortDesc: "Random damage equal to 0.5x-1.5x user's level.", + descGen4: "Deals damage to the target equal to (user's level) * (X * 10 + 50) / 100, where X is a random number from 0 to 10, rounded down, but not less than 1 HP.", + descGen2: "Deals damage to the target equal to a random number from 1 to (user's level * 1.5 - 1), rounded down, but not less than 1 HP.", + shortDescGen2: "Random damage from 1 to (user's level*1.5 - 1).", + }, + pulverizingpancake: { + name: "Pulverizing Pancake", + shortDesc: "No additional effect.", + }, + punishment: { + name: "Punishment", + desc: "Power is equal to 60+(X*20), where X is the target's total stat stage changes that are greater than 0, but not more than 200 power.", + shortDesc: "60 power +20 for each of the target's stat boosts.", + }, + purify: { + name: "Purify", + desc: "The target is cured if it has a major status condition. If the target was cured, the user restores 1/2 of its maximum HP, rounded half up.", + shortDesc: "Cures target's status; heals user 1/2 max HP if so.", + }, + pursuit: { + name: "Pursuit", + desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using Parting Shot, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", + shortDesc: "If a foe is switching out, hits it at 2x power.", + descGen6: "If an adjacent opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using Parting Shot, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", + descGen5: "If an adjacent opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using U-turn or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", + descGen4: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using U-turn, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon becomes active immediately.", + descGen3: "If the target is an opposing Pokemon and it switches out this turn, this move hits that Pokemon before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon becomes active immediately.", + shortDescGen3: "Power doubles if the targeted foe is switching out.", + descGen2: "If the target switches out this turn, this move hits it before it leaves the field with doubled power and the user's turn is over.", + shortDescGen2: "Power doubles if the foe is switching out.", + + activate: " ([TARGET] is being withdrawn...)", + }, + pyroball: { + name: "Pyro Ball", + desc: "Has a 10% chance to burn the target.", + shortDesc: "10% chance to burn the target. Thaws user.", + }, + quash: { + name: "Quash", + desc: "Causes the target to take its turn after all other Pokemon this turn, no matter the priority of its selected move. Fails if the target already moved this turn.", + shortDesc: "Forces the target to move last this turn.", + + activate: " [TARGET]'s move was postponed!", + }, + quickattack: { + name: "Quick Attack", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + quickguard: { + name: "Quick Guard", + desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + shortDesc: "Protects allies from priority attacks this turn.", + descGen7: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + descGen6: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + descGen5: "The user and its party members are protected from attacks with original priority greater than 0 made by other Pokemon, including allies, during this turn. This attack has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this attack fails or if the user's last used move is not Detect, Endure, Protect, Quick Guard, or Wide Guard. If X is 256 or more, this move has a 1/(2^32) chance of being successful. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + + start: " Quick Guard protected [TEAM]!", + block: " Quick Guard protected [POKEMON]!", + }, + quiverdance: { + name: "Quiver Dance", + desc: "Raises the user's Special Attack, Special Defense, and Speed by 1 stage.", + shortDesc: "Raises the user's Sp. Atk, Sp. Def, Speed by 1.", + }, + rage: { + name: "Rage", + desc: "Once this move is successfully used, the user's Attack is raised by 1 stage every time it is hit by another Pokemon's attack as long as this move is chosen for use.", + shortDesc: "Raises the user's Attack by 1 if hit during use.", + descGen3: "Once this move is used and unless the target protected itself, the user's Attack is raised by 1 stage every time it is hit by another Pokemon's attack as long as this move is chosen for use.", + descGen2: "Once this move is successfully used, X starts at 1. This move's damage is multiplied by X, and whenever the user is hit by the opposing Pokemon, X increases by 1, with a maximum of 255. X resets to 1 when the user is no longer active or did not choose this move for use.", + shortDescGen2: "Next Rage increases in damage if hit during use.", + descGen1: "Once this move is successfully used, the user automatically uses this move every turn and can no longer switch out. During the effect, the user's Attack is raised by 1 stage every time it is hit by the opposing Pokemon, and this move's accuracy is overwritten every turn with the current calculated accuracy including stat stage changes, but not to less than 1/256 or more than 255/256.", + shortDescGen1: "Lasts forever. Raises user's Attack by 1 when hit.", + }, + ragepowder: { + name: "Rage Powder", + desc: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double Battle or Battle Royal. This effect is ignored while the user is under the effect of Sky Drop.", + shortDesc: "The foes' moves target the user on the turn used.", + descGen6: "Until the end of the turn, all single-target attacks from the opposing side are redirected to the user if they are in range. Such attacks are redirected to the user before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double or Triple Battle. This effect is ignored while the user is under the effect of Sky Drop.", + + start: '#followme', + startFromZEffect: '#followme', + }, + raindance: { + name: "Rain Dance", + desc: "For 5 turns, the weather becomes Rain Dance. The damage of Water-type attacks is multiplied by 1.5 and the damage of Fire-type attacks is multiplied by 0.5 during the effect. Lasts for 8 turns if the user is holding Damp Rock. Fails if the current weather is Rain Dance.", + shortDesc: "For 5 turns, heavy rain powers Water moves.", + descGen3: "For 5 turns, the weather becomes Rain Dance. The damage of Water-type attacks is multiplied by 1.5 and the damage of Fire-type attacks is multiplied by 0.5 during the effect. Fails if the current weather is Rain Dance.", + descGen2: "For 5 turns, the weather becomes Rain Dance, even if the current weather is Rain Dance. The damage of Water-type attacks is multiplied by 1.5 and the damage of Fire-type attacks is multiplied by 0.5 during the effect.", + }, + rapidspin: { + name: "Rapid Spin", + desc: "If this move is successful and the user has not fainted, the effects of Leech Seed and binding moves end for the user, and all hazards are removed from the user's side of the field. Has a 100% chance to raise the user's Speed by 1 stage.", + shortDesc: "Free user from hazards/bind/Leech Seed; +1 Spe.", + descGen7: "If this move is successful and the user has not fainted, the effects of Leech Seed and binding moves end for the user, and all hazards are removed from the user's side of the field.", + shortDescGen7: "Frees user from hazards, binding, Leech Seed.", + descGen4: "If this move is successful, the effects of Leech Seed and binding moves end against the user, and all hazards are removed from the user's side of the field.", + descGen3: "If this move is successful, the effects of Leech Seed and binding moves end for the user, and Spikes are removed from the user's side of the field.", + }, + razorleaf: { + name: "Razor Leaf", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio. Hits adjacent foes.", + shortDescGen2: "High critical hit ratio.", + }, + razorshell: { + name: "Razor Shell", + desc: "Has a 50% chance to lower the target's Defense by 1 stage.", + shortDesc: "50% chance to lower the target's Defense by 1.", + }, + razorwind: { + name: "Razor Wind", + desc: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Charges, then hits foe(s) turn 2. High crit ratio.", + descGen4: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second.", + descGen3: "This attack charges on the first turn and executes on the second.", + shortDescGen3: "Charges, then hits foe(s) turn 2.", + descGen2: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second.", + shortDescGen2: "Charges, then hits target turn 2. High crit ratio.", + descGen1: "This attack charges on the first turn and executes on the second.", + shortDescGen1: "Charges turn 1. Hits turn 2.", + + prepare: " [POKEMON] whipped up a whirlwind!", + }, + recover: { + name: "Recover", + desc: "The user restores 1/2 of its maximum HP, rounded half up.", + shortDesc: "Heals the user by 50% of its max HP.", + descGen4: "The user restores 1/2 of its maximum HP, rounded down.", + descGen1: "The user restores 1/2 of its maximum HP, rounded down. Fails if (user's maximum HP - user's current HP + 1) is divisible by 256.", + }, + recycle: { + name: "Recycle", + desc: "The user regains the item it last used. Fails if the user is holding an item, if the user has not held an item, if the item was a popped Air Balloon, if the item was picked up by a Pokemon with the Pickup Ability, or if the item was lost to Bug Bite, Covet, Incinerate, Knock Off, Pluck, or Thief. Items thrown with Fling can be regained.", + shortDesc: "Restores the item the user last used.", + descGen4: "The user regains the item last used by a Pokemon in its current position on the field, even if that Pokemon was not the user. Fails if the user is holding an item, if no items have been used at the user's position, or if the item was lost to Covet, Knock Off, or Thief. Items thrown with Fling can be regained.", + + addItem: " [POKEMON] found one [ITEM]!", + }, + reflect: { + name: "Reflect", + desc: "For 5 turns, the user and its party members take 0.5x damage from physical attacks, or 0.66x damage if in a Double Battle. Damage is not reduced further with Aurora Veil. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", + shortDesc: "For 5 turns, physical damage to allies is halved.", + descGen6: "For 5 turns, the user and its party members take 0.5x damage from physical attacks, or 0.66x damage if in a Double or Triple Battle. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", + descGen4: "For 5 turns, the user and its party members take 1/2 damage from physical attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break or Defog. Lasts for 8 turns if the user is holding Light Clay. Fails if the effect is already active on the user's side.", + descGen3: "For 5 turns, the user and its party members take 1/2 damage from physical attacks, or 2/3 damage if there are multiple active Pokemon on the user's side. Critical hits ignore this effect. It is removed from the user's side if the user or an ally is successfully hit by Brick Break. Fails if the effect is already active on the user's side.", + descGen2: "For 5 turns, the user and its party members have their Defense doubled. Critical hits ignore this effect. Fails if the effect is already active on the user's side.", + shortDescGen2: "For 5 turns, the user's party has doubled Def.", + descGen1: "While the user remains active, its Defense is doubled when taking damage. Critical hits ignore this protection. This effect can be removed by Haze.", + shortDescGen1: "While active, the user's Defense is doubled.", + + start: " Reflect made [TEAM] stronger against physical moves!", + end: " [TEAM]'s Reflect wore off!", + // gen 1 + startGen1: " [POKEMON] gained armor!", + }, + reflecttype: { + name: "Reflect Type", + desc: "Causes the user's types to become the same as the current types of the target. If the target's current types include typeless and a non-added type, typeless is ignored. If the target's current types include typeless and an added type from Forest's Curse or Trick-or-Treat, typeless is copied as the Normal type instead. Fails if the user is an Arceus or a Silvally, or if the target's current type is typeless alone.", + shortDesc: "User becomes the same type as the target.", + descGen6: "Causes the user's types to become the same as the current types of the target. Fails if the user is an Arceus.", + + typeChange: " [POKEMON]'s type became the same as [SOURCE]'s type!", + }, + refresh: { + name: "Refresh", + desc: "The user cures its burn, poison, or paralysis. Fails if the user is not burned, poisoned, or paralyzed.", + shortDesc: "User cures its burn, poison, or paralysis.", + }, + relicsong: { + name: "Relic Song", + desc: "Has a 10% chance to cause the target to fall asleep. If this move is successful on at least one target and the user is a Meloetta, it changes to Pirouette Forme if it is currently in Aria Forme, or changes to Aria Forme if it is currently in Pirouette Forme. This forme change does not happen if the Meloetta has the Sheer Force Ability. The Pirouette Forme reverts to Aria Forme when Meloetta is not active.", + shortDesc: "10% chance to sleep foe(s). Meloetta transforms.", + }, + rest: { + name: "Rest", + desc: "The user falls asleep for the next two turns and restores all of its HP, curing itself of any major status condition in the process. Fails if the user has full HP, is already asleep, or if another effect is preventing sleep.", + shortDesc: "User sleeps 2 turns and restores HP and status.", + descGen2: "The user falls asleep for the next two turns and restores all of its HP, curing itself of any major status condition in the process, even if it was already asleep. Fails if the user has full HP.", + descGen1: "The user falls asleep for the next two turns and restores all of its HP, curing itself of any major status condition in the process. This does not remove the user's stat penalty for burn or paralysis. Fails if the user has full HP.", + }, + retaliate: { + name: "Retaliate", + desc: "Power doubles if one of the user's party members fainted last turn.", + shortDesc: "Power doubles if an ally fainted last turn.", + }, + return: { + name: "Return", + desc: "Power is equal to the greater of (user's Happiness * 2/5), rounded down, or 1.", + shortDesc: "Max 102 power at maximum Happiness.", + }, + revelationdance: { + name: "Revelation Dance", + desc: "This move's type depends on the user's primary type. If the user's primary type is typeless, this move's type is the user's secondary type if it has one, otherwise the added type from Forest's Curse or Trick-or-Treat. This move is typeless if the user's type is typeless alone.", + shortDesc: "Type varies based on the user's primary type.", + }, + revenge: { + name: "Revenge", + desc: "Power doubles if the user was hit by the target this turn.", + shortDesc: "Power doubles if user is damaged by the target.", + descGen4: "Power doubles if the user was hit by a Pokemon in the target's current position this turn.", + descGen3: "Damage doubles if the user was hit by a Pokemon in the target's current position this turn, and that Pokemon was the last to hit the user.", + shortDescGen3: "Damage doubles if user is hit by the target.", + }, + reversal: { + name: "Reversal", + desc: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", + shortDesc: "More power the less HP the user has left.", + descGen4: "The power of this move is 20 if X is 43 to 48, 40 if X is 22 to 42, 80 if X is 13 to 21, 100 if X is 6 to 12, 150 if X is 2 to 5, and 200 if X is 0 or 1, where X is equal to (user's current HP * 64 / user's maximum HP), rounded down.", + descGen3: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down.", + descGen2: "The power of this move is 20 if X is 33 to 48, 40 if X is 17 to 32, 80 if X is 10 to 16, 100 if X is 5 to 9, 150 if X is 2 to 4, and 200 if X is 0 or 1, where X is equal to (user's current HP * 48 / user's maximum HP), rounded down. This move does not apply damage variance and cannot be a critical hit.", + }, + risingvoltage: { + name: "Rising Voltage", + desc: "If the current terrain is Electric Terrain and the target is grounded, this move's power is doubled.", + shortDesc: "2x power if target is grounded in Electric Terrain.", + }, + roar: { + name: "Roar", + desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the target used Ingrain previously or has the Suction Cups Ability.", + shortDesc: "Forces the target to switch to a random ally.", + descGen4: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, if the target used Ingrain previously or has the Suction Cups Ability, or if the user's level is lower than the target's and X * (user's level + target's level) / 256 + 1 is less than or equal to (target's level / 4), rounded down, where X is a random number from 0 to 255.", + descGen2: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the user moves before the target.", + descGen1: "No competitive use.", + shortDescGen1: "No competitive use.", + }, + roaroftime: { + name: "Roar of Time", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + rockblast: { + name: "Rock Blast", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + }, + rockclimb: { + name: "Rock Climb", + desc: "Has a 20% chance to confuse the target.", + shortDesc: "20% chance to confuse the target.", + }, + rockpolish: { + name: "Rock Polish", + desc: "Raises the user's Speed by 2 stages.", + shortDesc: "Raises the user's Speed by 2.", + }, + rockslide: { + name: "Rock Slide", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the foe(s).", + shortDescGen2: "30% chance to flinch the target.", + descGen1: "No additional effect.", + shortDescGen1: "No additional effect.", + }, + rocksmash: { + name: "Rock Smash", + desc: "Has a 50% chance to lower the target's Defense by 1 stage.", + shortDesc: "50% chance to lower the target's Defense by 1.", + }, + rockthrow: { + name: "Rock Throw", + shortDesc: "No additional effect.", + }, + rocktomb: { + name: "Rock Tomb", + desc: "Has a 100% chance to lower the target's Speed by 1 stage.", + shortDesc: "100% chance to lower the target's Speed by 1.", + }, + rockwrecker: { + name: "Rock Wrecker", + desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", + shortDesc: "User cannot move next turn.", + }, + roleplay: { + name: "Role Play", + desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or already matches the target, or if the target's Ability is Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, or Zen Mode.", + shortDesc: "User replaces its Ability with the target's.", + descGen6: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Multitype, Stance Change, or already matches the target, or if the target's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Stance Change, Trace, Wonder Guard, or Zen Mode.", + descGen5: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Multitype or already matches the target, or if the target's Ability is Flower Gift, Forecast, Illusion, Imposter, Multitype, Trace, Wonder Guard, or Zen Mode.", + descGen4: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is Multitype or already matches the target, if the target's Ability is Multitype or Wonder Guard, or if the user is holding a Griseous Orb.", + descGen3: "The user's Ability changes to match the target's Ability. Fails if the target's Ability is Wonder Guard.", + + changeAbility: " [POKEMON] copied [SOURCE]'s [ABILITY] Ability!", + }, + rollingkick: { + name: "Rolling Kick", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + rollout: { + name: "Rollout", + desc: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn. If this move hits an active Disguise during the effect, the power multiplier is paused but the turn counter is not, potentially allowing the multiplier to be used on the user's next move after this effect ends.", + shortDesc: "Power doubles with each hit. Repeats for 5 turns.", + descGen6: "If this move is successful, the user is locked into this move and cannot make another move until it misses, 5 turns have passed, or the attack cannot be used. Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user. If this move is called by Sleep Talk, the move is used for one turn.", + }, + roost: { + name: "Roost", + desc: "The user restores 1/2 of its maximum HP, rounded half up. Until the end of the turn, Flying-type users lose their Flying type and pure Flying-type users become Normal type. Does nothing if the user's HP is full.", + shortDesc: "Heals 50% HP. Flying-type removed 'til turn ends.", + descGen4: "The user restores 1/2 of its maximum HP, rounded down. Until the end of the turn, Flying-type users lose their Flying type and pure Flying-type users become typeless. Does nothing if the user's HP is full.", + + start: " ([POKEMON] loses Flying type this turn.)", + }, + rototiller: { + name: "Rototiller", + desc: "Raises the Attack and Special Attack of all grounded Grass-type Pokemon on the field by 1 stage.", + shortDesc: "Raises Atk/Sp. Atk of grounded Grass types by 1.", + }, + round: { + name: "Round", + desc: "If there are other active Pokemon that chose this move for use this turn, those Pokemon take their turn immediately after the user, in Speed order, and this move's power is 120 for each other user.", + shortDesc: "Power doubles if others used Round this turn.", + }, + sacredfire: { + name: "Sacred Fire", + desc: "Has a 50% chance to burn the target.", + shortDesc: "50% chance to burn the target. Thaws user.", + }, + sacredsword: { + name: "Sacred Sword", + desc: "Ignores the target's stat stage changes, including evasiveness.", + shortDesc: "Ignores the target's stat stage changes.", + }, + safeguard: { + name: "Safeguard", + desc: "For 5 turns, the user and its party members cannot have major status conditions or confusion inflicted on them by other Pokemon. It is removed from the user's side if the user or an ally is successfully hit by Defog. Fails if the effect is already active on the user's side.", + shortDesc: "For 5 turns, protects user's party from status.", + descGen3: "For 5 turns, the user and its party members cannot have major status conditions or confusion inflicted on them by other Pokemon. Fails if the effect is already active on the user's side.", + descGen2: "For 5 turns, the user and its party members cannot have major status conditions or confusion inflicted on them by other Pokemon. During the effect, Outrage, Thrash, and Petal Dance do not confuse the user. Fails if the effect is already active on the user's side.", + + start: " [TEAM] cloaked itself in a mystical veil!", + end: " [TEAM] is no longer protected by Safeguard!", + block: " [POKEMON] is protected by Safeguard!", + }, + sandattack: { + name: "Sand Attack", + desc: "Lowers the target's accuracy by 1 stage.", + shortDesc: "Lowers the target's accuracy by 1.", + }, + sandstorm: { + name: "Sandstorm", + desc: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Magic Guard, Overcoat, Sand Force, Sand Rush, or Sand Veil Abilities. During the effect, the Special Defense of Rock-type Pokemon is multiplied by 1.5 when taking damage from a special attack. Lasts for 8 turns if the user is holding Smooth Rock. Fails if the current weather is Sandstorm.", + shortDesc: "For 5 turns, a sandstorm rages.", + descGen4: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Magic Guard or Sand Veil Abilities. During the effect, the Special Defense of Rock-type Pokemon is multiplied by 1.5 when taking damage from a special attack. Lasts for 8 turns if the user is holding Smooth Rock. Fails if the current weather is Sandstorm.", + descGen3: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Sand Veil Ability. Fails if the current weather is Sandstorm.", + descGen2: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/8 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type. Fails if the current weather is Sandstorm.", + }, + sandtomb: { + name: "Sand Tomb", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen5: "Prevents the target from switching for four or five turns; seven turns if the user is holding Grip Claw. Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin. This effect is not stackable or reset by using this or another partial-trapping move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + descGen3: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + + start: " [POKEMON] became trapped by the quicksand!", + }, + sappyseed: { + name: "Sappy Seed", + desc: "This move summons Leech Seed on the foe.", + shortDesc: "Summons Leech Seed.", + }, + savagespinout: { + name: "Savage Spin-Out", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + scald: { + name: "Scald", + desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen.", + shortDesc: "30% chance to burn the target. Thaws target.", + descGen5: "Has a 30% chance to burn the target.", + shortDescGen5: "30% chance to burn the target.", + }, + scaleshot: { + name: "Scale Shot", + desc: "Hits two to five times. Lowers the user's Defense by 1 stage and raises the user's Speed by 1 stage after the last hit. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times. User: -1 Def, +1 Spe after last hit.", + }, + scaryface: { + name: "Scary Face", + desc: "Lowers the target's Speed by 2 stages.", + shortDesc: "Lowers the target's Speed by 2.", + }, + scorchingsands: { + name: "Scorching Sands", + desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen.", + shortDesc: "30% chance to burn the target. Thaws target.", + }, + scratch: { + name: "Scratch", + shortDesc: "No additional effect.", + }, + screech: { + name: "Screech", + desc: "Lowers the target's Defense by 2 stages.", + shortDesc: "Lowers the target's Defense by 2.", + }, + searingshot: { + name: "Searing Shot", + desc: "Has a 30% chance to burn the target.", + shortDesc: "30% chance to burn adjacent Pokemon.", + }, + searingsunrazesmash: { + name: "Searing Sunraze Smash", + desc: "This move and its effects ignore the Abilities of other Pokemon.", + shortDesc: "Ignores the Abilities of other Pokemon.", + }, + secretpower: { + name: "Secret Power", + desc: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Causes paralysis on the regular Wi-Fi terrain, causes paralysis during Electric Terrain, lowers Special Attack by 1 stage during Misty Terrain, causes sleep during Grassy Terrain and lowers Speed by 1 stage during Psychic Terrain.", + shortDesc: "Effect varies with terrain. (30% paralysis chance)", + descGen6: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Causes paralysis on the regular Wi-Fi terrain, causes paralysis during Electric Terrain, lowers Special Attack by 1 stage during Misty Terrain, and causes sleep during Grassy Terrain.", + descGen5: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Lowers accuracy by 1 stage on the regular Wi-Fi terrain. The secondary effect chance is not affected by the Serene Grace Ability.", + shortDescGen5: "Effect varies with terrain. (30% chance acc -1)", + descGen4: "Has a 30% chance to cause a secondary effect on the target based on the battle terrain. Causes paralysis on the regular Wi-Fi terrain.", + shortDescGen4: "Effect varies with terrain. (30% paralysis chance)", + }, + secretsword: { + name: "Secret Sword", + desc: "Deals damage to the target based on its Defense instead of Special Defense.", + shortDesc: "Damages target based on Defense, not Sp. Def.", + }, + seedbomb: { + name: "Seed Bomb", + shortDesc: "No additional effect.", + }, + seedflare: { + name: "Seed Flare", + desc: "Has a 40% chance to lower the target's Special Defense by 2 stages.", + shortDesc: "40% chance to lower the target's Sp. Def by 2.", + }, + seismictoss: { + name: "Seismic Toss", + desc: "Deals damage to the target equal to the user's level.", + shortDesc: "Does damage equal to the user's level.", + descGen1: "Deals damage to the target equal to the user's level. This move ignores type immunity.", + shortDescGen1: "Damage = user's level. Can hit Ghost types.", + }, + selfdestruct: { + name: "Self-Destruct", + desc: "The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Damp Ability.", + shortDesc: "Hits adjacent Pokemon. The user faints.", + descGen4: "The user faints after using this move, unless this move has no target. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", + shortDescGen4: "Deals double damage. The user faints.", + descGen3: "The user faints after using this move. The target's Defense is halved during damage calculation. This move is prevented from executing if any active Pokemon has the Damp Ability.", + descGen2: "The user faints after using this move. The target's Defense is halved during damage calculation.", + descGen1: "The user faints after using this move, unless the target's substitute was broken by the damage. The target's Defense is halved during damage calculation.", + }, + shadowball: { + name: "Shadow Ball", + desc: "Has a 20% chance to lower the target's Special Defense by 1 stage.", + shortDesc: "20% chance to lower the target's Sp. Def by 1.", + }, + shadowbone: { + name: "Shadow Bone", + desc: "Has a 20% chance to lower the target's Defense by 1 stage.", + shortDesc: "20% chance to lower the target's Defense by 1.", + }, + shadowclaw: { + name: "Shadow Claw", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + shadowforce: { + name: "Shadow Force", + desc: "If this move is successful, it breaks through the target's Baneful Bunker, Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection.", + descGen6: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + descGen5: "If this move is successful, it breaks through the target's Detect or Protect for this turn, allowing other Pokemon to attack the target normally. If the target is an opponent and its side is protected by Quick Guard or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the opponent's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn.", + + activate: " It broke through [TARGET]'s protection!", + prepare: "[POKEMON] vanished instantly!", + }, + shadowpunch: { + name: "Shadow Punch", + shortDesc: "This move does not check accuracy.", + }, + shadowsneak: { + name: "Shadow Sneak", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + shadowstrike: { + name: "Shadow Strike", + desc: "Has a 50% chance to lower the target's Defense by 1 stage.", + shortDesc: "50% chance to lower the target's Defense by 1.", + }, + sharpen: { + name: "Sharpen", + desc: "Raises the user's Attack by 1 stage.", + shortDesc: "Raises the user's Attack by 1.", + }, + shatteredpsyche: { + name: "Shattered Psyche", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + sheercold: { + name: "Sheer Cold", + desc: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + X)%, where X is 30 if the user is an Ice type and 20 otherwise, and fails if the target is at a higher level. Ice-type Pokemon and Pokemon with the Sturdy Ability are immune.", + shortDesc: "OHKOs non-Ice targets. Fails if user's lower level.", + descGen6: "Deals damage to the target equal to the target's maximum HP. Ignores accuracy and evasiveness modifiers. This attack's accuracy is equal to (user's level - target's level + 30)%, and fails if the target is at a higher level. Pokemon with the Sturdy Ability are immune.", + shortDescGen6: "OHKOs the target. Fails if user is a lower level.", + }, + shellsidearm: { + name: "Shell Side Arm", + desc: "Has a 20% chance to poison the target. This move becomes a physical attack that makes contact if the value of ((((2 * the user's level / 5 + 2) * 90 * X) / Y) / 50), where X is the user's Attack stat and Y is the target's Defense stat, is greater than the same value where X is the user's Special Attack stat and Y is the target's Special Defense stat. No stat modifiers other than stat stage changes are considered for this purpose. If the two values are equal, this move chooses a damage category at random.", + shortDesc: "20% psn. Physical+contact if it would be stronger.", + }, + shellsmash: { + name: "Shell Smash", + desc: "Lowers the user's Defense and Special Defense by 1 stage. Raises the user's Attack, Special Attack, and Speed by 2 stages.", + shortDesc: "Lowers Def, SpD by 1; raises Atk, SpA, Spe by 2.", + }, + shelltrap: { + name: "Shell Trap", + desc: "Fails unless the user is hit by a physical attack from an opponent this turn before it can execute the move. If the user was hit and has not fainted, it attacks immediately after being hit, and the effect ends. If the opponent's physical attack had a secondary effect removed by the Sheer Force Ability, it does not count for the purposes of this effect.", + shortDesc: "User must take physical damage before moving.", + + start: " [POKEMON] set a shell trap!", + prepare: " [POKEMON] set a shell trap!", + cant: "[POKEMON]'s shell trap didn't work!", + }, + shiftgear: { + name: "Shift Gear", + desc: "Raises the user's Speed by 2 stages and its Attack by 1 stage.", + shortDesc: "Raises the user's Speed by 2 and Attack by 1.", + }, + shockwave: { + name: "Shock Wave", + shortDesc: "This move does not check accuracy.", + }, + shoreup: { + name: "Shore Up", + desc: "The user restores 1/2 of its maximum HP, rounded half down. If the weather is Sandstorm, the user instead restores 2/3 of its maximum HP, rounded half down.", + shortDesc: "User restores 1/2 its max HP; 2/3 in Sandstorm.", + }, + signalbeam: { + name: "Signal Beam", + desc: "Has a 10% chance to confuse the target.", + shortDesc: "10% chance to confuse the target.", + }, + silverwind: { + name: "Silver Wind", + desc: "Has a 10% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", + shortDesc: "10% chance to raise all stats by 1 (not acc/eva).", + }, + simplebeam: { + name: "Simple Beam", + desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is Battle Bond, Comatose, Disguise, Multitype, Power Construct, RKS System, Schooling, Shields Down, Simple, Stance Change, Truant, or Zen Mode.", + shortDesc: "The target's Ability becomes Simple.", + descGen6: "Causes the target's Ability to become Simple. Fails if the target's Ability is Multitype, Simple, Stance Change, or Truant.", + descGen5: "Causes the target's Ability to become Simple. Fails if the target's Ability is Multitype, Simple, or Truant.", + }, + sing: { + name: "Sing", + shortDesc: "Causes the target to fall asleep.", + }, + sinisterarrowraid: { + name: "Sinister Arrow Raid", + shortDesc: "No additional effect.", + }, + sizzlyslide: { + name: "Sizzly Slide", + desc: "Has a 100% chance to burn the foe.", + shortDesc: "100% chance to burn the foe.", + }, + sketch: { + name: "Sketch", + desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Chatter, Sketch, Struggle, or any move the user knows.", + shortDesc: "Permanently copies the last move target used.", + descGen3: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Sketch, Struggle, or any move the user knows.", + descGen2: "Fails when used in Link Battles.", + shortDescGen2: "Fails when used in Link Battles.", + + activate: " [POKEMON] sketched [MOVE]!", + }, + skillswap: { + name: "Skill Swap", + desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Battle Bond, Comatose, Disguise, Gulp Missile, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode.", + shortDesc: "The user and the target trade Abilities.", + descGen7: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Battle Bond, Comatose, Disguise, Illusion, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode.", + descGen6: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Illusion, Multitype, Stance Change, or Wonder Guard.", + descGen5: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Illusion, Multitype, or Wonder Guard, or if both have the same Ability.", + descGen4: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Multitype or Wonder Guard, if both have the same Ability, or if either is holding a Griseous Orb.", + descGen3: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is Wonder Guard.", + + activate: " [POKEMON] swapped Abilities with its target!", + }, + skittersmack: { + name: "Skitter Smack", + desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "100% chance to lower target's Sp. Atk by 1.", + }, + skullbash: { + name: "Skull Bash", + desc: "This attack charges on the first turn and executes on the second. Raises the user's Defense by 1 stage on the first turn. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Raises user's Defense by 1 on turn 1. Hits turn 2.", + descGen3: "This attack charges on the first turn and executes on the second. Raises the user's Defense by 1 stage on the first turn.", + descGen1: "This attack charges on the first turn and executes on the second.", + shortDescGen1: "Charges turn 1. Hits turn 2.", + + prepare: "[POKEMON] tucked in its head!", + }, + skyattack: { + name: "Sky Attack", + desc: "Has a 30% chance to flinch the target and a higher chance for a critical hit. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn.", + shortDesc: "Charges, then hits turn 2. 30% flinch. High crit.", + descGen3: "Has a 30% chance to flinch the target and a higher chance for a critical hit. This attack charges on the first turn and executes on the second.", + descGen2: "This attack charges on the first turn and executes on the second.", + shortDescGen2: "Charges turn 1. Hits turn 2.", + + prepare: "[POKEMON] became cloaked in a harsh light!", + }, + skydrop: { + name: "Sky Drop", + desc: "This attack takes the target into the air with the user on the first turn and executes on the second. Pokemon weighing 200 kg or more cannot be lifted. On the first turn, the user and the target avoid all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister. The user and the target cannot make a move between turns, but the target can select a move to use. This move cannot damage Flying-type Pokemon. Fails on the first turn if the target is an ally, if the target has a substitute, or if the target is using Bounce, Dig, Dive, Fly, Phantom Force, Shadow Force, or Sky Drop.", + shortDesc: "User and foe fly up turn 1. Damages on turn 2.", + descGen5: "This attack takes the target into the air with the user on the first turn and executes on the second. On the first turn, the user and the target avoid all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thunder, and Twister. The user and the target cannot make a move between turns, but the target can select a move to use. This move cannot damage Flying-type Pokemon. Fails on the first turn if the target is an ally, if the target has a substitute, or if the target is using Bounce, Dig, Dive, Fly, Shadow Force, or Sky Drop. If the effect of Gravity ends this effect before the second turn, both the user and the target return to the ground, but the target will otherwise remain under this effect until the user leaves the field or successfully executes the second turn of any two-turn move.", + + prepare: "[POKEMON] took [TARGET] into the sky!", + end: " [POKEMON] was freed from the Sky Drop!", + failSelect: "Sky Drop won't let [POKEMON] go!", + failTooHeavy: " [POKEMON] is too heavy to be lifted!", + }, + skyuppercut: { + name: "Sky Uppercut", + desc: "This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop.", + shortDesc: "Can hit Pokemon using Bounce, Fly, or Sky Drop.", + descGen4: "This move can hit a target using Bounce or Fly.", + shortDescGen4: "Can hit Pokemon using Bounce or Fly.", + }, + slackoff: { + name: "Slack Off", + desc: "The user restores 1/2 of its maximum HP, rounded half up.", + shortDesc: "Heals the user by 50% of its max HP.", + descGen4: "The user restores 1/2 of its maximum HP, rounded down.", + }, + slam: { + name: "Slam", + shortDesc: "No additional effect.", + }, + slash: { + name: "Slash", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + sleeppowder: { + name: "Sleep Powder", + shortDesc: "Causes the target to fall asleep.", + }, + sleeptalk: { + name: "Sleep Talk", + desc: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Beak Blast, Belch, Bide, Celebrate, Chatter, Copycat, Dynamax Cannon, Focus Punch, Hold Hands, Me First, Metronome, Mimic, Mirror Move, Nature Power, Shell Trap, Sketch, Sleep Talk, Struggle, Uproar, any two-turn move, or any Max Move.", + shortDesc: "User must be asleep. Uses another known move.", + descGen7: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Beak Blast, Belch, Bide, Celebrate, Chatter, Copycat, Focus Punch, Hold Hands, Me First, Metronome, Mimic, Mirror Move, Nature Power, Shell Trap, Sketch, Sleep Talk, Struggle, Uproar, any two-turn move, or any Z-Move.", + descGen6: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Belch, Bide, Celebrate, Chatter, Copycat, Focus Punch, Hold Hands, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, Uproar, or any two-turn move.", + descGen5: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Bide, Chatter, Copycat, Focus Punch, Me First, Metronome, Mimic, Mirror Move, Nature Power, Sketch, Sleep Talk, Struggle, Uproar, or any two-turn move.", + descGen4: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Assist, Bide, Chatter, Copycat, Focus Punch, Me First, Metronome, Mirror Move, Sleep Talk, Uproar, or any two-turn move.", + descGen3: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, but if it currently has 0 PP it will fail to be used. This move cannot select Assist, Bide, Focus Punch, Metronome, Mirror Move, Sleep Talk, Uproar, or any two-turn move.", + descGen2: "One of the user's known moves, besides this move, is selected for use at random. Fails if the user is not asleep. The selected move does not have PP deducted from it, and can currently have 0 PP. This move cannot select Bide, Sleep Talk, or any two-turn move.", + }, + sludge: { + name: "Sludge", + desc: "Has a 30% chance to poison the target.", + shortDesc: "30% chance to poison the target.", + descGen1: "Has a 40% chance to poison the target.", + shortDescGen1: "40% chance to poison the target.", + }, + sludgebomb: { + name: "Sludge Bomb", + desc: "Has a 30% chance to poison the target.", + shortDesc: "30% chance to poison the target.", + }, + sludgewave: { + name: "Sludge Wave", + desc: "Has a 10% chance to poison the target.", + shortDesc: "10% chance to poison adjacent Pokemon.", + }, + smackdown: { + name: "Smack Down", + desc: "This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If this move hits a target under the effect of Bounce, Fly, Magnet Rise, or Telekinesis, the effect ends. If the target is a Flying type that has not used Roost this turn or a Pokemon with the Levitate Ability, it loses its immunity to Ground-type attacks and the Arena Trap Ability as long as it remains active. During the effect, Magnet Rise fails for the target and Telekinesis fails against the target.", + shortDesc: "Removes the target's Ground immunity.", + + start: " [POKEMON] fell straight down!", + }, + smartstrike: { + name: "Smart Strike", + shortDesc: "This move does not check accuracy.", + }, + smellingsalts: { + name: "Smelling Salts", + desc: "Power doubles if the target is paralyzed. If the user has not fainted, the target is cured of paralysis.", + shortDesc: "Power doubles if target is paralyzed, and cures it.", + descGen4: "Power doubles if the target is paralyzed. If this move is successful, the target is cured of paralysis.", + descGen3: "Damage doubles if the target is paralyzed. If this move is successful, the target is cured of paralysis.", + shortDescGen3: "Damage doubles if target is paralyzed; cures it.", + }, + smog: { + name: "Smog", + desc: "Has a 40% chance to poison the target.", + shortDesc: "40% chance to poison the target.", + }, + smokescreen: { + name: "Smokescreen", + desc: "Lowers the target's accuracy by 1 stage.", + shortDesc: "Lowers the target's accuracy by 1.", + }, + snaptrap: { + name: "Snap Trap", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + }, + snarl: { + name: "Snarl", + desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "100% chance to lower the foe(s) Sp. Atk by 1.", + }, + snatch: { + name: "Snatch", + desc: "If another Pokemon uses certain non-damaging moves this turn, the user steals that move to use itself. If multiple Pokemon use one of those moves this turn, the applicable moves are all stolen by the first Pokemon in turn order that used this move this turn. This effect is ignored while the user is under the effect of Sky Drop.", + shortDesc: "User steals certain support moves to use itself.", + descGen4: "If another Pokemon uses certain non-damaging moves this turn, the user steals that move to use itself. If multiple Pokemon use this move this turn, the applicable moves are stolen by each of those Pokemon in turn order, and only the last user in turn order will gain the effects.", + + start: " [POKEMON] is waiting for a target to make a move!", + activate: " [POKEMON] snatched [TARGET]'s move!", + }, + snipeshot: { + name: "Snipe Shot", + desc: "Has a higher chance for a critical hit. This move cannot be redirected to a different target by any effect.", + shortDesc: "High critical hit ratio. Cannot be redirected.", + }, + snore: { + name: "Snore", + desc: "Has a 30% chance to flinch the target. Fails if the user is not asleep.", + shortDesc: "User must be asleep. 30% chance to flinch target.", + }, + soak: { + name: "Soak", + desc: "Causes the target to become a Water type. Fails if the target is an Arceus or a Silvally, or if the target is already purely Water type.", + shortDesc: "Changes the target's type to Water.", + descGen6: "Causes the target to become a Water type. Fails if the target is an Arceus, or if the target is already purely Water type.", + descGen5: "Causes the target to become a Water type. Fails if the target is an Arceus.", + }, + softboiled: { + name: "Soft-Boiled", + desc: "The user restores 1/2 of its maximum HP, rounded half up.", + shortDesc: "Heals the user by 50% of its max HP.", + descGen4: "The user restores 1/2 of its maximum HP, rounded down.", + descGen1: "The user restores 1/2 of its maximum HP, rounded down. Fails if (user's maximum HP - user's current HP + 1) is divisible by 256.", + }, + solarbeam: { + name: "Solar Beam", + desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Desolate Land or Sunny Day, the move still requires a turn to charge.", + shortDesc: "Charges turn 1. Hits turn 2. No charge in sunlight.", + descGen7: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn.", + descGen5: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Rain Dance, or Sandstorm. If the user is holding a Power Herb or the weather is Sunny Day, the move completes in one turn.", + descGen4: "This attack charges on the first turn and executes on the second. Damage is halved if the weather is Hail, Rain Dance, or Sandstorm. If the user is holding a Power Herb or the weather is Sunny Day, the move completes in one turn.", + descGen3: "This attack charges on the first turn and executes on the second. Damage is halved if the weather is Hail, Rain Dance, or Sandstorm. If the weather is Sunny Day, the move completes in one turn.", + descGen2: "This attack charges on the first turn and executes on the second. Damage is halved if the weather is Rain Dance. If the weather is Sunny Day, the move completes in one turn.", + descGen1: "This attack charges on the first turn and executes on the second.", + shortDescGen1: "Charges turn 1. Hits turn 2.", + + prepare: " [POKEMON] absorbed light!", + }, + solarblade: { + name: "Solar Blade", + desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Desolate Land or Sunny Day, the move still requires a turn to charge.", + shortDesc: "Charges turn 1. Hits turn 2. No charge in sunlight.", + descGen7: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn.", + + prepare: "#solarbeam", + }, + sonicboom: { + name: "Sonic Boom", + desc: "Deals 20 HP of damage to the target.", + shortDesc: "Always does 20 HP of damage.", + descGen1: "Deals 20 HP of damage to the target. This move ignores type immunity.", + }, + soulstealing7starstrike: { + name: "Soul-Stealing 7-Star Strike", + shortDesc: "No additional effect.", + }, + spacialrend: { + name: "Spacial Rend", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + spark: { + name: "Spark", + desc: "Has a 30% chance to paralyze the target.", + shortDesc: "30% chance to paralyze the target.", + }, + sparklingaria: { + name: "Sparkling Aria", + desc: "If the user has not fainted, the target is cured of its burn.", + shortDesc: "The target is cured of its burn.", + }, + sparklyswirl: { + name: "Sparkly Swirl", + desc: "Every Pokemon in the user's party is cured of its major status condition.", + shortDesc: "Cures the user's party of all status conditions.", + }, + spectralthief: { + name: "Spectral Thief", + desc: "The target's stat stages greater than 0 are stolen from it and applied to the user before dealing damage.", + shortDesc: "Steals target's boosts before dealing damage.", + + clearBoost: " [SOURCE] stole the target's boosted stats!", + }, + speedswap: { + name: "Speed Swap", + desc: "The user swaps its Speed stat with the target. Stat stage changes are unaffected.", + shortDesc: "Swaps Speed stat with target.", + + activate: " [POKEMON] switched Speed with its target!", + }, + spiderweb: { + name: "Spider Web", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Prevents the target from switching out.", + descGen7: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + descGen5: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + descGen4: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", + descGen3: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", + }, + spikecannon: { + name: "Spike Cannon", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + descGen4: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen1: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. Damage is calculated once for the first hit and used for every hit. If one of the hits breaks the target's substitute, the move ends.", + }, + spikes: { + name: "Spikes", + desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", + shortDesc: "Hurts grounded foes on switch-in. Max 3 layers.", + descGen5: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, or is hit by Defog.", + descGen3: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully.", + descGen2: "Sets up a hazard on the opposing side of the field, causing each opposing Pokemon that switches in to lose 1/8 of their maximum HP, rounded down, unless it is a Flying-type Pokemon. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully.", + shortDescGen2: "Hurts grounded foes on switch-in. Max 1 layer.", + + start: " Spikes were scattered on the ground all around [TEAM]!", + end: " The spikes disappeared from the ground around [TEAM]!", + damage: " [POKEMON] was hurt by the spikes!", + }, + spikyshield: { + name: "Spiky Shield", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Protects from moves. Contact: loses 1/8 max HP.", + descGen7: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + descGen6: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + + damage: "#roughskin", + }, + spiritbreak: { + name: "Spirit Break", + desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "100% chance to lower the target's Sp. Atk by 1.", + }, + spiritshackle: { + name: "Spirit Shackle", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Prevents the target from switching out.", + descGen7: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + }, + spitup: { + name: "Spit Up", + desc: "Power is equal to 100 times the user's Stockpile count. Fails if the user's Stockpile count is 0. Whether or not this move is successful, the user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", + shortDesc: "More power with more uses of Stockpile.", + descGen4: "Power is equal to 100 times the user's Stockpile count. This move does not apply damage variance. Fails if the user's Stockpile count is 0. Unless there is no target, whether or not this move is successful the user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", + descGen3: "Damage is multiplied by the user's Stockpile count. This move does not apply damage variance and cannot be a critical hit. Fails if the user's Stockpile count is 0. Unless this move misses, the user's Stockpile count resets to 0.", + }, + spite: { + name: "Spite", + desc: "Causes the target's last move used to lose 4 PP. Fails if the target has not made a move, if the move has 0 PP, or if it no longer knows the move.", + shortDesc: "Lowers the PP of the target's last move by 4.", + descGen3: "Causes the target's last move used to lose 2 to 5 PP, at random. Fails if the target has not made a move, if the move has 0 or 1 PP, or if it no longer knows the move.", + shortDescGen3: "Lowers the PP of the target's last move by 2-5.", + descGen2: "Causes the target's last move used to lose 2 to 5 PP, at random. Fails if the target has not made a move, or if the move has 0 PP.", + + activate: " It reduced the PP of [TARGET]'s [MOVE] by [NUMBER]!", + }, + splash: { + name: "Splash", + shortDesc: "No competitive use.", + + activate: " But nothing happened!", + }, + splinteredstormshards: { + name: "Splintered Stormshards", + desc: "Ends the effects of Electric Terrain, Grassy Terrain, Misty Terrain, and Psychic Terrain.", + shortDesc: "Ends the effects of terrain.", + }, + splishysplash: { + name: "Splishy Splash", + desc: "Has a 30% chance to paralyze the target.", + shortDesc: "30% chance to paralyze the target.", + }, + spore: { + name: "Spore", + shortDesc: "Causes the target to fall asleep.", + }, + spotlight: { + name: "Spotlight", + desc: "Until the end of the turn, all single-target attacks from opponents of the target are redirected to the target. Such attacks are redirected to the target before they can be reflected by Magic Coat or the Magic Bounce Ability, or drawn in by the Lightning Rod or Storm Drain Abilities. Fails if it is not a Double Battle or Battle Royal.", + shortDesc: "Target's foes' moves are redirected to it this turn.", + + start: "#followme", + startFromZEffect: "#followme", + }, + stealthrock: { + name: "Stealth Rock", + desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", + shortDesc: "Hurts foes on switch-in. Factors Rock weakness.", + descGen5: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, or is hit by Defog.", + + start: " Pointed stones float in the air around [TEAM]!", + end: " The pointed stones disappeared from around [TEAM]!", + damage: " Pointed stones dug into [POKEMON]!", + }, + steameruption: { + name: "Steam Eruption", + desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen.", + shortDesc: "30% chance to burn the target. Thaws target.", + }, + steamroller: { + name: "Steamroller", + desc: "Has a 30% chance to flinch the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "30% chance to flinch the target.", + descGen5: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", + }, + steelbeam: { + name: "Steel Beam", + desc: "Whether or not this move is successful and even if it would cause fainting, the user loses 1/2 of its maximum HP, rounded up, unless the user has the Magic Guard Ability.", + shortDesc: "User loses 50% max HP.", + }, + steelroller: { + name: "Steel Roller", + desc: "Fails if there is no terrain active. Ends the effects of Electric Terrain, Grassy Terrain, Misty Terrain, and Psychic Terrain.", + shortDesc: "Fails if there is no terrain active. Ends the effects of terrain.", + }, + steelwing: { + name: "Steel Wing", + desc: "Has a 10% chance to raise the user's Defense by 1 stage.", + shortDesc: "10% chance to raise the user's Defense by 1.", + }, + stickyweb: { + name: "Sticky Web", + desc: "Sets up a hazard on the opposing side of the field, lowering the Speed by 1 stage of each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", + shortDesc: "Lowers Speed of grounded foes by 1 on switch-in.", + + start: " A sticky web has been laid out on the ground around [TEAM]!", + end: " The sticky web has disappeared from the ground around [TEAM]!", + activate: " [POKEMON] was caught in a sticky web!", + }, + stockpile: { + name: "Stockpile", + desc: "Raises the user's Defense and Special Defense by 1 stage. The user's Stockpile count increases by 1. Fails if the user's Stockpile count is 3. The user's Stockpile count is reset to 0 when it is no longer active.", + shortDesc: "Raises user's Defense, Sp. Def by 1. Max 3 uses.", + descGen3: "The user's Stockpile count increases by 1. Fails if the user's Stockpile count is 3. The user's Stockpile count is reset to 0 when it is no longer active.", + shortDescGen3: "Raises user's Stockpile count by 1. Max 3 uses.", + + start: " [POKEMON] stockpiled [NUMBER]!", + end: " [POKEMON]'s stockpiled effect wore off!", + }, + stokedsparksurfer: { + name: "Stoked Sparksurfer", + desc: "Has a 100% chance to paralyze the target.", + shortDesc: "100% chance to paralyze the target.", + }, + stomp: { + name: "Stomp", + desc: "Has a 30% chance to flinch the target. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "30% chance to flinch the target.", + descGen5: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", + descGen4: "Has a 30% chance to flinch the target. Power doubles if the target has used Minimize while active.", + descGen3: "Has a 30% chance to flinch the target. Damage doubles if the target has used Minimize while active.", + descGen2: "Has a 30% chance to flinch the target. Power doubles if the target is under the effect of Minimize.", + descGen1: "Has a 30% chance to flinch the target.", + }, + stompingtantrum: { + name: "Stomping Tantrum", + desc: "Power doubles if the user's last move on the previous turn, including moves called by other moves or those used through Instruct, Magic Coat, Snatch, or the Dancer or Magic Bounce Abilities, failed to do any of its normal effects, not including damage from an unsuccessful High Jump Kick, Jump Kick, or Mind Blown, or if the user was prevented from moving by any effect other than recharging or Sky Drop. A move that was blocked by Baneful Bunker, Detect, King's Shield, Protect, Spiky Shield, Crafty Shield, Mat Block, Quick Guard, or Wide Guard will not double this move's power, nor will Bounce or Fly ending early due to the effect of Gravity, Smack Down, or Thousand Arrows.", + shortDesc: "Power doubles if the user's last move failed.", + }, + stoneedge: { + name: "Stone Edge", + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + }, + storedpower: { + name: "Stored Power", + desc: "Power is equal to 20+(X*20), where X is the user's total stat stage changes that are greater than 0.", + shortDesc: " + 20 power for each of the user's stat boosts.", + }, + stormthrow: { + name: "Storm Throw", + desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", + shortDesc: "Always results in a critical hit.", + }, + strangesteam: { + name: "Strange Steam", + desc: "Has a 20% chance to confuse the target.", + shortDesc: "20% chance to confuse the target.", + }, + strength: { + name: "Strength", + shortDesc: "No additional effect.", + }, + strengthsap: { + name: "Strength Sap", + desc: "Lowers the target's Attack by 1 stage. The user restores its HP equal to the target's Attack stat calculated with its stat stage before this move was used. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. Fails if the target's Attack stat stage is -6.", + shortDesc: "User heals HP=target's Atk stat. Lowers Atk by 1.", + }, + stringshot: { + name: "String Shot", + desc: "Lowers the target's Speed by 2 stages.", + shortDesc: "Lowers the foe(s) Speed by 2.", + descGen5: "Lowers the target's Speed by 1 stage.", + shortDescGen5: "Lowers the foe(s) Speed by 1.", + shortDescGen2: "Lowers the target's Speed by 1.", + }, + struggle: { + name: "Struggle", + desc: "Deals typeless damage to a random opposing Pokemon. If this move was successful, the user loses 1/4 of its maximum HP, rounded half up, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", + shortDesc: "User loses 1/4 of its max HP.", + descGen6: "Deals typeless damage to a random adjacent opposing Pokemon. If this move was successful, the user loses 1/4 of its maximum HP, rounded half up, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", + descGen4: "Deals typeless damage to a random opposing Pokemon. If this move was successful, the user loses 1/4 of its maximum HP, rounded down, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", + descGen3: "Deals typeless damage to a random opposing Pokemon. If this move was successful, the user takes damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP, and the Rock Head Ability does not prevent this. This move is automatically used if none of the user's known moves can be selected.", + shortDescGen3: "User loses 1/4 the HP lost by the target.", + descGen2: "Deals typeless damage. If this move was successful, the user takes damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. This move is automatically used if none of the user's known moves can be selected.", + descGen1: "Deals Normal-type damage. If this move was successful, the user takes damage equal to 1/2 the HP lost by the target, rounded down, but not less than 1 HP. This move is automatically used if none of the user's known moves can be selected.", + shortDescGen1: "User loses 1/2 the HP lost by the target.", + }, + strugglebug: { + name: "Struggle Bug", + desc: "Has a 100% chance to lower the target's Special Attack by 1 stage.", + shortDesc: "100% chance to lower the foe(s) Sp. Atk by 1.", + }, + stuffcheeks: { + name: "Stuff Cheeks", + desc: "This move cannot be selected unless the user is holding a Berry. The user eats its Berry and raises its Defense by 2 stages. This effect is not prevented by the Klutz or Unnerve Abilities, or the effects of Embargo or Magic Room. Fails if the user is not holding a Berry.", + shortDesc: "Must hold Berry to use. User eats Berry, Def +2.", + }, + stunspore: { + name: "Stun Spore", + desc: "Paralyzes the target.", + shortDesc: "Paralyzes the target.", + descGen3: "Paralyzes the target. This move does not ignore type immunity.", + descGen1: "Paralyzes the target.", + }, + submission: { + name: "Submission", + desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 1/4 recoil.", + descGen4: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP.", + descGen2: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP. If this move hits a substitute, the recoil damage is always 1 HP.", + descGen1: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not take any recoil damage.", + }, + substitute: { + name: "Substitute", + desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. Sound-based moves and Pokemon with the Infiltrator Ability ignore substitutes. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", + shortDesc: "User takes 1/4 its max HP to put in a substitute.", + descGen5: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", + descGen1: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute has 1 HP plus the HP used to create it, and is removed once enough damage is inflicted on it or 255 damage is inflicted at once, or if the user switches out or faints. Until the substitute is broken, it receives damage from all attacks made by the opposing Pokemon and shields the user from status effects and stat stage changes caused by the opponent, unless the effect is Disable, Leech Seed, sleep, primary paralysis, or secondary confusion and the user's substitute did not break. The user still takes normal damage from status effects while behind its substitute, unless the effect is confusion damage, which is applied to the opposing Pokemon's substitute instead. If the substitute breaks during a multi-hit attack, the attack ends. Fails if the user does not have enough HP remaining to create a substitute, or if it already has a substitute. The user will create a substitute and then faint if its current HP is exactly 1/4 of its maximum HP.", + shortDescGen1: "User takes 1/4 its max HP to put in a Substitute.", + + start: " [POKEMON] put in a substitute!", + alreadyStarted: " [POKEMON] already has a substitute!", + end: " [POKEMON]'s substitute faded!", + fail: " But it does not have enough HP left to make a substitute!", + activate: " The substitute took damage for [POKEMON]!", + }, + subzeroslammer: { + name: "Subzero Slammer", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + suckerpunch: { + name: "Sucker Punch", + desc: "Fails if the target did not select a physical attack, special attack, or Me First for use this turn, or if the target moves before the user.", + shortDesc: "Usually goes first. Fails if target is not attacking.", + descGen4: "Fails if the target did not select a physical or special attack for use this turn, or if the target moves before the user.", + }, + sunnyday: { + name: "Sunny Day", + desc: "For 5 turns, the weather becomes Sunny Day. The damage of Fire-type attacks is multiplied by 1.5 and the damage of Water-type attacks is multiplied by 0.5 during the effect. Lasts for 8 turns if the user is holding Heat Rock. Fails if the current weather is Sunny Day.", + shortDesc: "For 5 turns, intense sunlight powers Fire moves.", + descGen3: "For 5 turns, the weather becomes Sunny Day. The damage of Fire-type attacks is multiplied by 1.5 and the damage of Water-type attacks is multiplied by 0.5 during the effect. Fails if the current weather is Sunny Day.", + descGen2: "For 5 turns, the weather becomes Sunny Day, even if the current weather is Sunny Day. The damage of Fire-type attacks is multiplied by 1.5 and the damage of Water-type attacks is multiplied by 0.5 during the effect.", + }, + sunsteelstrike: { + name: "Sunsteel Strike", + desc: "This move and its effects ignore the Abilities of other Pokemon.", + shortDesc: "Ignores the Abilities of other Pokemon.", + }, + superfang: { + name: "Super Fang", + desc: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP.", + shortDesc: "Does damage equal to 1/2 target's current HP.", + descGen1: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP. This move ignores type immunity.", + shortDescGen1: "Damage = 1/2 target's current HP. Hits Ghosts.", + }, + superpower: { + name: "Superpower", + desc: "Lowers the user's Attack and Defense by 1 stage.", + shortDesc: "Lowers the user's Attack and Defense by 1.", + }, + supersonic: { + name: "Supersonic", + shortDesc: "Causes the target to become confused.", + }, + supersonicskystrike: { + name: "Supersonic Skystrike", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + surf: { + name: "Surf", + desc: "Damage doubles if the target is using Dive.", + shortDesc: "Hits adjacent Pokemon. Double damage on Dive.", + descGen4: "Power doubles if the target is using Dive.", + shortDescGen4: "Hits adjacent Pokemon. Power doubles on Dive.", + shortDescGen3: "Hits foes. Power doubles against Dive.", + descGen2: "No additional effect.", + shortDescGen2: "No additional effect.", + }, + surgingstrikes: { + name: "Surging Strikes", + desc: "Hits three times. This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", + shortDesc: "Always results in a critical hit. Hits 3 times.", + }, + swagger: { + name: "Swagger", + desc: "Raises the target's Attack by 2 stages and confuses it.", + shortDesc: "Raises the target's Attack by 2 and confuses it.", + descGen2: "Raises the target's Attack by 2 stages and confuses it. This move will miss if the target's Attack cannot be raised.", + }, + swallow: { + name: "Swallow", + desc: "The user restores its HP based on its Stockpile count. Restores 1/4 of its maximum HP if it's 1, 1/2 of its maximum HP if it's 2, both rounded half down, and all of its HP if it's 3. Fails if the user's Stockpile count is 0. The user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", + shortDesc: "Heals the user based on uses of Stockpile.", + descGen4: "The user restores its HP based on its Stockpile count. Restores 1/4 of its maximum HP if it's 1, 1/2 of its maximum HP if it's 2, both rounded down, and all of its HP if it's 3. Fails if the user's Stockpile count is 0. The user's Defense and Special Defense decrease by as many stages as Stockpile had increased them, and the user's Stockpile count resets to 0.", + descGen3: "The user restores its HP based on its Stockpile count. Restores 1/4 of its maximum HP if it's 1, 1/2 of its maximum HP if it's 2, both rounded half down, and all of its HP if it's 3. Fails if the user's Stockpile count is 0. The user's Stockpile count resets to 0.", + }, + sweetkiss: { + name: "Sweet Kiss", + shortDesc: "Causes the target to become confused.", + }, + sweetscent: { + name: "Sweet Scent", + desc: "Lowers the target's evasiveness by 2 stages.", + shortDesc: "Lowers the foe(s) evasiveness by 2.", + descGen5: "Lowers the target's evasiveness by 1 stage.", + shortDescGen5: "Lowers the foe(s) evasiveness by 1.", + shortDescGen2: "Lowers the target's evasiveness by 1.", + }, + swift: { + name: "Swift", + desc: "This move does not check accuracy.", + shortDesc: "This move does not check accuracy. Hits foes.", + shortDescGen2: "This move does not check accuracy.", + descGen1: "This move does not check accuracy and hits even if the target is using Dig or Fly.", + shortDescGen1: "Never misses, even against Dig and Fly.", + }, + switcheroo: { + name: "Switcheroo", + desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Z-Crystal, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, a Drive, or a Memory to or from a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, or a Silvally, respectively. The target is immune to this move if it has the Sticky Hold Ability.", + shortDesc: "User switches its held item with the target's.", + descGen6: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, or a Drive to or from a Kyogre, a Groudon, a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", + descGen5: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, or if the user is trying to give or take a Griseous Orb, a Plate, or a Drive to or from a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", + descGen4: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Griseous Orb, if neither is holding an item, if either has the Multitype Ability, if either is under the effect of Knock Off, or if the target has the Sticky Hold Ability.", + + activate: "#trick", + }, + swordsdance: { + name: "Swords Dance", + desc: "Raises the user's Attack by 2 stages.", + shortDesc: "Raises the user's Attack by 2.", + }, + synchronoise: { + name: "Synchronoise", + desc: "The target is immune if it does not share a type with the user.", + shortDesc: "Hits adjacent Pokemon sharing the user's type.", + }, + synthesis: { + name: "Synthesis", + desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", + shortDesc: "Heals the user by a weather-dependent amount.", + descGen7: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", + descGen5: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded half down.", + descGen4: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, 2/3 of its maximum HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Hail, Rain Dance, or Sandstorm, all rounded down.", + descGen2: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", + }, + tackle: { + name: "Tackle", + shortDesc: "No additional effect.", + }, + tailglow: { + name: "Tail Glow", + desc: "Raises the user's Special Attack by 3 stages.", + shortDesc: "Raises the user's Sp. Atk by 3.", + descGen4: "Raises the user's Special Attack by 2 stages.", + shortDescGen4: "Raises the user's Sp. Atk by 2.", + }, + tailslap: { + name: "Tail Slap", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + shortDesc: "Hits 2-5 times in one turn.", + }, + tailwhip: { + name: "Tail Whip", + desc: "Lowers the target's Defense by 1 stage.", + shortDesc: "Lowers the foe(s) Defense by 1.", + shortDescGen2: "Lowers the target's Defense by 1.", + }, + tailwind: { + name: "Tailwind", + desc: "For 4 turns, the user and its party members have their Speed doubled. Fails if this move is already in effect for the user's side.", + shortDesc: "For 4 turns, allies' Speed is doubled.", + descGen4: "For 3 turns, the user and its party members have their Speed doubled. Fails if this move is already in effect for the user's side.", + shortDescGen4: "For 3 turns, allies' Speed is doubled.", + + start: " The Tailwind blew from behind [TEAM]!", + end: " [TEAM]'s Tailwind petered out!", + }, + takedown: { + name: "Take Down", + desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 1/4 recoil.", + descGen4: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP.", + descGen2: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP. If this move hits a substitute, the recoil damage is always 1 HP.", + descGen1: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded down, but not less than 1 HP. If this move breaks the target's substitute, the user does not take any recoil damage.", + }, + tarshot: { + name: "Tar Shot", + desc: "Lowers the target's Speed by 1 stage. Until the target switches out, the effectiveness of Fire-type moves is doubled against it.", + shortDesc: "Target gets -1 Spe and becomes weaker to Fire.", + + start: " [POKEMON] became weaker to fire!", + }, + taunt: { + name: "Taunt", + desc: "Prevents the target from using non-damaging moves for its next three turns. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune.", + shortDesc: "Target can't use status moves its next 3 turns.", + descGen7: "Prevents the target from using non-damaging moves for its next three turns. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune. Z-Powered moves can still be selected and executed during this effect.", + descGen6: "Prevents the target from using non-damaging moves for its next three turns. Pokemon with the Oblivious Ability or protected by the Aroma Veil Ability are immune.", + descGen5: "Prevents the target from using non-damaging moves for its next three turns.", + descGen4: "For 3 to 5 turns, prevents the target from using non-damaging moves.", + shortDescGen4: "For 3-5 turns, the target can't use status moves.", + descGen3: "For 2 turns, prevents the target from using non-damaging moves.", + shortDescGen3: "For 2 turns, the target can't use status moves.", + + start: " [POKEMON] fell for the taunt!", + end: " [POKEMON] shook off the taunt!", + cant: "[POKEMON] can't use [MOVE] after the taunt!", + }, + tearfullook: { + name: "Tearful Look", + desc: "Lowers the target's Attack and Special Attack by 1 stage.", + shortDesc: "Lowers the target's Attack and Sp. Atk by 1.", + }, + teatime: { + name: "Teatime", + desc: "All active Pokemon consume their held Berries. This effect is not prevented by substitutes, the Klutz or Unnerve Abilities, or the effects of Embargo or Magic Room. Fails if no active Pokemon is holding a Berry.", + shortDesc: "All active Pokemon consume held Berries.", + }, + technoblast: { + name: "Techno Blast", + desc: "This move's type depends on the user's held Drive.", + shortDesc: "Type varies based on the held Drive.", + }, + tectonicrage: { + name: "Tectonic Rage", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + teeterdance: { + name: "Teeter Dance", + desc: "Causes the target to become confused.", + shortDesc: "Confuses adjacent Pokemon.", + }, + telekinesis: { + name: "Telekinesis", + desc: "For 3 turns, the target cannot avoid any attacks made against it, other than OHKO moves, as long as it remains active. During the effect, the target is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability as long as it remains active. If the target uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, Thousand Arrows, and Iron Ball override this move if the target is under any of their effects. Fails if the target is already under this effect or the effects of Ingrain, Smack Down, or Thousand Arrows. The target is immune to this move on use if its species is Diglett, Dugtrio, Alolan Diglett, Alolan Dugtrio, Sandygast, Palossand, or Gengar while Mega-Evolved. Mega Gengar cannot be under this effect by any means.", + shortDesc: "For 3 turns, target floats but moves can't miss it.", + descGen6: "For 3 turns, the target cannot avoid any attacks made against it, other than OHKO moves, as long as it remains active. During the effect, the target is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability as long as it remains active. If the target uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, Thousand Arrows, and Iron Ball override this move if the target is under any of their effects. Fails if the target is already under this effect or the effects of Ingrain, Smack Down, or Thousand Arrows. The target is immune to this move on use if its species is Diglett, Dugtrio, or Gengar while Mega-Evolved. Mega Gengar cannot be under this effect by any means.", + descGen5: "For 3 turns, the target cannot avoid any attacks made against it, other than OHKO moves, as long as it remains active. During the effect, the target is immune to Ground-type attacks and the effects of Spikes, Toxic Spikes, and the Arena Trap Ability as long as it remains active. If the target uses Baton Pass, the replacement will gain the effect. Ingrain, Smack Down, and Iron Ball override this move if the target is under any of their effects. Fails if the target is already under this effect or the effects of Ingrain or Smack Down. The target is immune to this move on use if its species is Diglett or Dugtrio.", + + start: " [POKEMON] was hurled into the air!", + end: " [POKEMON] was freed from the telekinesis!", + }, + teleport: { + name: "Teleport", + desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", + shortDesc: "User switches out.", + descGen7: "Fails when used.", + shortDescGen7: "Fails when used.", + }, + terrainpulse: { + name: "Terrain Pulse", + desc: "Power doubles if the user is grounded and a terrain is active, and this move's type changes to match. Electric type during Electric Terrain, Grass type during Grassy Terrain, Fairy type during Misty Terrain, and Psychic type during Psychic Terrain.", + shortDesc: "User on terrain: power doubles, type varies.", + }, + thief: { + name: "Thief", + desc: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Z-Crystal, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, a Silvally holding a Memory, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + shortDesc: "If the user has no item, it steals the target's.", + descGen6: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Kyogre holding a Blue Orb, a Groudon holding a Red Orb, a Giratina holding a Griseous Orb, an Arceus holding a Plate, a Genesect holding a Drive, or a Pokemon that can Mega Evolve holding the Mega Stone for its species. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + descGen5: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail, or if the target is a Giratina holding a Griseous Orb, an Arceus holding a Plate, or a Genesect holding a Drive. Items lost to this move cannot be regained with Recycle or the Harvest Ability.", + descGen4: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Griseous Orb, or if the target has the Multitype Ability. Items lost to this move cannot be regained with Recycle.", + descGen3: "If this attack was successful and the user has not fainted, it steals the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail or Enigma Berry. Items lost to this move cannot be regained with Recycle.", + descGen2: "Has a 100% chance to steal the target's held item if the user is not holding one. The target's item is not stolen if it is a Mail.", + }, + thousandarrows: { + name: "Thousand Arrows", + desc: "This move can hit airborne Pokemon, which includes Flying-type Pokemon, Pokemon with the Levitate Ability, Pokemon holding an Air Balloon, and Pokemon under the effect of Magnet Rise or Telekinesis. If the target is a Flying type and is not already grounded, this move deals neutral damage regardless of its other type(s). This move can hit a target using Bounce, Fly, or Sky Drop. If this move hits a target under the effect of Bounce, Fly, Magnet Rise, or Telekinesis, the effect ends. If the target is a Flying type that has not used Roost this turn or a Pokemon with the Levitate Ability, it loses its immunity to Ground-type attacks and the Arena Trap Ability as long as it remains active. During the effect, Magnet Rise fails for the target and Telekinesis fails against the target.", + shortDesc: "Grounds adjacent foes. First hit neutral on Flying.", + }, + thousandwaves: { + name: "Thousand Waves", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Hits adjacent foes. Prevents them from switching.", + }, + thrash: { + name: "Thrash", + desc: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk and the user is asleep, the move is used for one turn and does not confuse the user.", + shortDesc: "Lasts 2-3 turns. Confuses the user afterwards.", + descGen6: "The user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect if it is not already. This move targets an adjacent opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target on the first turn of the effect or the second turn of a three-turn effect, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen4: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, is asleep at the beginning of a turn, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen3: "The user spends two or three turns locked into this move and becomes confused at the end of the last turn of the effect if it is not already. This move targets an opposing Pokemon at random on each turn. If the user is prevented from moving, falls asleep, becomes frozen, or the attack is not successful against the target, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen2: "Whether or not this move is successful, the user spends two or three turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. If this move is called by Sleep Talk, the move is used for one turn and does not confuse the user.", + descGen1: "Whether or not this move is successful, the user spends three or four turns locked into this move and becomes confused immediately after its move on the last turn of the effect, even if it is already confused. If the user is prevented from moving, the effect ends without causing confusion. During the effect, this move's accuracy is overwritten every turn with the current calculated accuracy including stat stage changes, but not to less than 1/256 or more than 255/256.", + shortDescGen1: "Lasts 3-4 turns. Confuses the user afterwards.", + }, + throatchop: { + name: "Throat Chop", + desc: "For 2 turns, the target cannot use sound-based moves.", + shortDesc: "For 2 turns, the target cannot use sound moves.", + descGen7: "For 2 turns, the target cannot use sound-based moves. Z-Powered sound moves can still be selected and executed during this effect.", + + cant: "The effects of Throat Chop prevent [POKEMON] from using certain moves!", + }, + thunder: { + name: "Thunder", + desc: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 70%.", + shortDesc: "30% chance to paralyze. Can't miss in rain.", + descGen7: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If the weather is Desolate Land or Sunny Day, this move's accuracy is 50%.", + descGen5: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", + descGen4: "Has a 30% chance to paralyze the target. This move can hit a target using Bounce or Fly. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", + descGen2: "Has a 30% chance to paralyze the target. This move can hit a target using Fly. If the weather is Rain Dance, this move does not check accuracy. If the weather is Sunny Day, this move's accuracy is 50%.", + descGen1: "Has a 10% chance to paralyze the target.", + shortDescGen1: "10% chance to paralyze the target.", + }, + thunderbolt: { + name: "Thunderbolt", + desc: "Has a 10% chance to paralyze the target.", + shortDesc: "10% chance to paralyze the target.", + }, + thunderfang: { + name: "Thunder Fang", + desc: "Has a 10% chance to paralyze the target and a 10% chance to flinch it.", + shortDesc: "10% chance to paralyze. 10% chance to flinch.", + }, + thunderpunch: { + name: "Thunder Punch", + desc: "Has a 10% chance to paralyze the target.", + shortDesc: "10% chance to paralyze the target.", + }, + thundershock: { + name: "Thunder Shock", + desc: "Has a 10% chance to paralyze the target.", + shortDesc: "10% chance to paralyze the target.", + }, + thunderwave: { + name: "Thunder Wave", + desc: "Paralyzes the target. This move does not ignore type immunity.", + shortDesc: "Paralyzes the target.", + }, + tickle: { + name: "Tickle", + desc: "Lowers the target's Attack and Defense by 1 stage.", + shortDesc: "Lowers the target's Attack and Defense by 1.", + }, + topsyturvy: { + name: "Topsy-Turvy", + desc: "The target's positive stat stages become negative and vice versa. Fails if all of the target's stat stages are 0.", + shortDesc: "Inverts the target's stat stages.", + }, + torment: { + name: "Torment", + desc: "Prevents the target from selecting the same move for use two turns in a row. This effect ends when the target is no longer active.", + shortDesc: "Target can't select the same move twice in a row.", + + start: " [POKEMON] was subjected to torment!", + end: " [POKEMON] is no longer tormented!", + }, + toxic: { + name: "Toxic", + desc: "Badly poisons the target. If a Poison-type Pokemon uses this move, the target cannot avoid the attack, even if the target is in the middle of a two-turn move.", + shortDesc: "Badly poisons the target. Poison types can't miss.", + descGen5: "Badly poisons the target.", + shortDescGen5: "Badly poisons the target.", + }, + toxicspikes: { + name: "Toxic Spikes", + desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", + shortDesc: "Poisons grounded foes on switch-in. Max 2 layers.", + descGen5: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", + descGen4: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, as well as switching in with a substitute.", + + start: " Poison spikes were scattered on the ground all around [TEAM]!", + end: " The poison spikes disappeared from the ground around [TEAM]!", + }, + toxicthread: { + name: "Toxic Thread", + desc: "Lowers the target's Speed by 1 stage and poisons it.", + shortDesc: "Lowers the target's Speed by 1 and poisons it.", + }, + transform: { + name: "Transform", + desc: "The user transforms into the target. The target's current stats, stat stages, types, moves, Ability, weight, gender, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP, with a maximum of 5 PP each. The user can no longer change formes if it would have the ability to do so. This move fails if it hits a substitute, if either the user or the target is already transformed, or if either is behind an Illusion.", + shortDesc: "Copies target's stats, moves, types, and Ability.", + descGen4: "The user transforms into the target. The target's current stats, stat stages, types, moves, Ability, weight, IVs, species, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP. This move fails if the target has transformed.", + descGen2: "The user transforms into the target. The target's current stats, stat stages, types, moves, DVs, species, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP. This move fails if the target has transformed.", + shortDescGen2: "Copies target's stats, moves, types, and species.", + descGen1: "The user transforms into the target. The target's current stats, stat stages, types, moves, DVs, species, and sprite are copied. The user's level and HP remain the same and each copied move receives only 5 PP. This move can hit a target using Dig or Fly.", + + transform: "[POKEMON] transformed into [SPECIES]!", + }, + triattack: { + name: "Tri Attack", + desc: "Has a 20% chance to either burn, freeze, or paralyze the target.", + shortDesc: "20% chance to paralyze or burn or freeze target.", + descGen2: "This move selects burn, freeze, or paralysis at random, and has a 20% chance to inflict the target with that status. If the target is frozen and burn was selected, it thaws out.", + descGen1: "No additional effect.", + shortDescGen1: "No additional effect.", + }, + trick: { + name: "Trick", + desc: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Z-Crystal, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, a Drive, or a Memory to or from a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, or a Silvally, respectively. The target is immune to this move if it has the Sticky Hold Ability.", + shortDesc: "User switches its held item with the target's.", + descGen6: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, or a Drive to or from a Kyogre, a Groudon, a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", + descGen5: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, or if the user is trying to give or take a Griseous Orb, a Plate, or a Drive to or from a Giratina, an Arceus, or a Genesect, respectively. The target is immune to this move if it has the Sticky Hold Ability.", + descGen4: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail or Griseous Orb, if neither is holding an item, if either has the Multitype Ability, if either is under the effect of Knock Off, or if the target has the Sticky Hold Ability.", + descGen3: "The user swaps its held item with the target's held item. Fails if either the user or the target is holding a Mail, if neither is holding an item, if either is under the effect of Knock Off, or if the target has the Sticky Hold Ability.", + + activate: " [POKEMON] switched items with its target!", + }, + trickortreat: { + name: "Trick-or-Treat", + desc: "Causes the Ghost type to be added to the target, effectively making it have two or three types. Fails if the target is already a Ghost type. If Forest's Curse adds a type to the target, it replaces the type added by this move and vice versa.", + shortDesc: "Adds Ghost to the target's type(s).", + }, + trickroom: { + name: "Trick Room", + desc: "For 5 turns, the Speed of every Pokemon is recalculated for the purposes of determining turn order. During the effect, each Pokemon's Speed is considered to be (10000 - its normal Speed), and if this value is greater than 8191, 8192 is subtracted from it. If this move is used during the effect, the effect ends.", + shortDesc: "Goes last. For 5 turns, turn order is reversed.", + descGen4: "For 5 turns, all active Pokemon with lower Speed will move before those with higher Speed, within their priority brackets. If this move is used during the effect, the effect ends.", + }, + tripleaxel: { + name: "Triple Axel", + desc: "Hits three times. Power increases to 40 for the second hit and 60 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit three times.", + shortDesc: "Hits 3 times. Each hit can miss, but power rises.", + }, + triplekick: { + name: "Triple Kick", + desc: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit three times.", + shortDesc: "Hits 3 times. Each hit can miss, but power rises.", + descGen4: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", + descGen2: "Hits one to three times, at random. Power increases to 20 for the second hit and 30 for the third.", + shortDescGen2: "Hits 1-3 times. Power rises with each hit.", + }, + tropkick: { + name: "Trop Kick", + desc: "Has a 100% chance to lower the target's Attack by 1 stage.", + shortDesc: "100% chance to lower the target's Attack by 1.", + }, + trumpcard: { + name: "Trump Card", + desc: "The power of this move is based on the amount of PP remaining after normal PP reduction and the Pressure Ability resolve. 200 power for 0 PP, 80 power for 1 PP, 60 power for 2 PP, 50 power for 3 PP, and 40 power for 4 or more PP.", + shortDesc: "More power the fewer PP this move has left.", + }, + twineedle: { + name: "Twineedle", + desc: "Hits twice, with each hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit.", + shortDesc: "Hits 2 times. Each hit has 20% chance to poison.", + descGen4: "Hits twice, with each hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", + descGen3: "Hits twice, with each hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit.", + descGen2: "Hits twice, with the second hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, it will take damage for the second hit but the target cannot be poisoned by it.", + shortDescGen2: "Hits 2 times. Last hit has 20% chance to poison.", + descGen1: "Hits twice, with the second hit having a 20% chance to poison the target. If the first hit breaks the target's substitute, the move ends.", + }, + twinkletackle: { + name: "Twinkle Tackle", + shortDesc: "Power is equal to the base move's Z-Power.", + }, + twister: { + name: "Twister", + desc: "Has a 20% chance to flinch the target. Power doubles if the target is using Bounce, Fly, or Sky Drop, or is under the effect of Sky Drop.", + shortDesc: "20% chance to flinch the foe(s).", + descGen4: "Has a 20% chance to flinch the target. Power doubles if the target is using Bounce or Fly.", + descGen2: "Has a 20% chance to flinch the target. Power doubles if the target is using Fly.", + shortDescGen2: "20% chance to flinch the target.", + }, + uturn: { + name: "U-turn", + desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", + shortDesc: "User switches out after damaging the target.", + descGen6: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button.", + descGen4: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", + + switchOut: "[POKEMON] went back to [TRAINER]!", + }, + uproar: { + name: "Uproar", + desc: "The user spends three turns locked into this move. This move targets an opponent at random on each turn. On the first of the three turns, all sleeping active Pokemon wake up. During the three turns, no active Pokemon can fall asleep by any means, and Pokemon switched in during the effect do not wake up. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", + shortDesc: "Lasts 3 turns. Active Pokemon cannot fall asleep.", + descGen6: "The user spends three turns locked into this move. This move targets an adjacent opponent at random on each turn. On the first of the three turns, all sleeping active Pokemon wake up. During the three turns, no active Pokemon can fall asleep by any means, and Pokemon switched in during the effect do not wake up. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", + descGen4: "The user spends three to six turns locked into this move. This move targets an opponent at random on each turn. During effect, no active Pokemon can fall asleep by any means, and Pokemon that are already asleep wake up as their turn starts or at the end of each turn, including the last one. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", + shortDescGen4: "Lasts 3-6 turns. Active Pokemon cannot sleep.", + descGen3: "The user spends three to five turns locked into this move. This move targets an opposing Pokemon at random on each turn. During effect, no active Pokemon can fall asleep by any means, and Pokemon that are already asleep wake up as their turn starts or at the end of each turn, including the last one. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", + shortDescGen3: "Lasts 3-5 turns. Active Pokemon cannot sleep.", + + start: " [POKEMON] caused an uproar!", + end: " [POKEMON] calmed down.", + upkeep: " [POKEMON] is making an uproar!", + block: " But the uproar kept [POKEMON] awake!", + blockSelf: " [POKEMON] can't sleep in an uproar!", + }, + vacuumwave: { + name: "Vacuum Wave", + desc: "No additional effect.", + shortDesc: "Usually goes first.", + }, + vcreate: { + name: "V-create", + desc: "Lowers the user's Speed, Defense, and Special Defense by 1 stage.", + shortDesc: "Lowers the user's Defense, Sp. Def, Speed by 1.", + }, + veeveevolley: { + name: "Veevee Volley", + desc: "Power is equal to the greater of (user's Happiness * 2/5), rounded down, or 1.", + shortDesc: "Max happiness: 102 power. Can't miss.", + }, + venomdrench: { + name: "Venom Drench", + desc: "Lowers the target's Attack, Special Attack, and Speed by 1 stage if the target is poisoned. Fails if the target is not poisoned.", + shortDesc: "Lowers Atk/Sp. Atk/Speed of poisoned foes by 1.", + }, + venoshock: { + name: "Venoshock", + desc: "Power doubles if the target is poisoned.", + shortDesc: "Power doubles if the target is poisoned.", + }, + vinewhip: { + name: "Vine Whip", + shortDesc: "No additional effect.", + }, + visegrip: { + name: "Vise Grip", + shortDesc: "No additional effect.", + }, + vitalthrow: { + name: "Vital Throw", + desc: "This move does not check accuracy.", + shortDesc: "This move does not check accuracy. Goes last.", + }, + voltswitch: { + name: "Volt Switch", + desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", + shortDesc: "User switches out after damaging the target.", + descGen6: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button.", + + switchOut: '#uturn', + }, + volttackle: { + name: "Volt Tackle", + desc: "Has a 10% chance to paralyze the target. If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 33% recoil. 10% chance to paralyze target.", + descGen4: "Has a 10% chance to paralyze the target. If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", + shortDescGen4: "Has 1/3 recoil. 10% chance to paralyze target.", + descGen3: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", + shortDescGen3: "Has 1/3 recoil.", + }, + wakeupslap: { + name: "Wake-Up Slap", + desc: "Power doubles if the target is asleep. If the user has not fainted, the target wakes up.", + shortDesc: "Power doubles if target is asleep, and wakes it.", + descGen4: "Power doubles if the target is asleep. If this move is successful, the target wakes up.", + }, + waterfall: { + name: "Waterfall", + desc: "Has a 20% chance to flinch the target.", + shortDesc: "20% chance to flinch the target.", + descGen3: "No additional effect.", + shortDescGen3: "No additional effect.", + }, + watergun: { + name: "Water Gun", + shortDesc: "No additional effect.", + }, + waterpledge: { + name: "Water Pledge", + desc: "If one of the user's allies chose to use Fire Pledge or Grass Pledge this turn and has not moved yet, it takes its turn immediately after the user and the user's move does nothing. If combined with Fire Pledge, the ally uses Water Pledge with 150 power and a rainbow appears on the user's side for 4 turns, which doubles secondary effect chances but does not stack with the Serene Grace Ability. If combined with Grass Pledge, the ally uses Grass Pledge with 150 power and a swamp appears on the target's side for 4 turns, which quarters the Speed of each Pokemon on that side. When used as a combined move, this move gains STAB no matter what the user's type is. This move does not consume the user's Water Gem, and cannot be redirected by the Storm Drain Ability.", + shortDesc: "Use with Grass or Fire Pledge for added effect.", + + activate: " [POKEMON] is waiting for [TARGET]'s move...", + start: " A rainbow appeared in the sky on [TEAM]'s side!", + end: " The rainbow on [TEAM]'s side disappeared!", + }, + waterpulse: { + name: "Water Pulse", + desc: "Has a 20% chance to confuse the target.", + shortDesc: "20% chance to confuse the target.", + }, + watershuriken: { + name: "Water Shuriken", + desc: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is an Ash-Greninja with the Battle Bond Ability, this move has a power of 20 and always hits three times.", + shortDesc: "Usually goes first. Hits 2-5 times in one turn.", + descGen6: "Hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, + watersport: { + name: "Water Sport", + desc: "For 5 turns, all Fire-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active.", + shortDesc: "For 5 turns, Fire-type attacks have 1/3 power.", + descGen5: "While the user is active, all Fire-type attacks used by any active Pokemon have their power multiplied by 0.33. Fails if this effect is already active for any Pokemon.", + shortDescGen5: "Weakens Fire-type attacks to 1/3 their power.", + descGen4: "While the user is active, all Fire-type attacks used by any active Pokemon have their power halved. Fails if this effect is already active for the user. Baton Pass can be used to transfer this effect to an ally.", + shortDescGen4: "Weakens Fire-type attacks to 1/2 their power.", + }, + waterspout: { + name: "Water Spout", + desc: "Power is equal to (user's current HP * 150 / user's maximum HP), rounded down, but not less than 1.", + shortDesc: "Less power as user's HP decreases. Hits foe(s).", + }, + weatherball: { + name: "Weather Ball", + desc: "Power doubles if a weather condition other than Delta Stream is active, and this move's type changes to match. Ice type during Hail, Water type during Primordial Sea or Rain Dance, Rock type during Sandstorm, and Fire type during Desolate Land or Sunny Day. If the user is holding Utility Umbrella and uses Weather Ball during Primordial Sea, Rain Dance, Desolate Land, or Sunny Day, the move is still Normal-type and does not have a base power boost.", + shortDesc: "Power doubles and type varies in each weather.", + descGen5: "Power doubles if a weather condition is active, and this move's type changes to match. Ice type during Hail, Water type during Rain Dance, Rock type during Sandstorm, and Fire type during Sunny Day.", + descGen3: "Damage doubles if a weather condition is active, and this move's type changes to match. Ice type during Hail, Water type during Rain Dance, Rock type during Sandstorm, and Fire type during Sunny Day.", + shortDescGen3: "Damage doubles and type varies during weather.", + + move: "Breakneck Blitz turned into [MOVE] due to the weather!", + }, + whirlpool: { + name: "Whirlpool", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen5: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + descGen3: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + + start: " [POKEMON] became trapped in the vortex!", + }, + whirlwind: { + name: "Whirlwind", + desc: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the target used Ingrain previously or has the Suction Cups Ability.", + shortDesc: "Forces the target to switch to a random ally.", + descGen4: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, if the target used Ingrain previously or has the Suction Cups Ability, or if the user's level is lower than the target's and X * (user's level + target's level) / 256 + 1 is less than or equal to (target's level / 4), rounded down, where X is a random number from 0 to 255.", + descGen2: "The target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the user moves before the target.", + descGen1: "No competitive use.", + shortDescGen1: "No competitive use.", + }, + wickedblow: { + name: "Wicked Blow", + desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities.", + shortDesc: "Always results in a critical hit.", + }, + wideguard: { + name: "Wide Guard", + desc: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + shortDesc: "Protects allies from multi-target moves this turn.", + descGen7: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + descGen6: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Detect, Endure, King's Shield, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + shortDescGen6: "Protects allies from multi-target damage this turn.", + descGen5: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This attack has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this attack fails or if the user's last used move is not Detect, Endure, Protect, Quick Guard, or Wide Guard. If X is 256 or more, this move has a 1/(2^32) chance of being successful. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + + start: " Wide Guard protected [TEAM]!", + block: " Wide Guard protected [POKEMON]!", + }, + wildcharge: { + name: "Wild Charge", + desc: "If the target lost HP, the user takes recoil damage equal to 1/4 the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 1/4 recoil.", + }, + willowisp: { + name: "Will-O-Wisp", + desc: "Burns the target.", + shortDesc: "Burns the target.", + }, + wingattack: { + name: "Wing Attack", + shortDesc: "No additional effect.", + }, + wish: { + name: "Wish", + desc: "At the end of the next turn, the Pokemon at the user's position has 1/2 of the user's maximum HP restored to it, rounded half up. Fails if this move is already in effect for the user's position.", + shortDesc: "Next turn, 50% of the user's max HP is restored.", + descGen4: "At the end of the next turn, the Pokemon at the user's position has 1/2 of its maximum HP restored to it, rounded down. Fails if this move is already in effect for the user's position.", + shortDescGen4: "Next turn, heals 50% of the recipient's max HP.", + + heal: " [NICKNAME]'s wish came true!", + }, + withdraw: { + name: "Withdraw", + desc: "Raises the user's Defense by 1 stage.", + shortDesc: "Raises the user's Defense by 1.", + }, + wonderroom: { + name: "Wonder Room", + desc: "For 5 turns, all active Pokemon have their Defense and Special Defense stats swapped. Stat stage changes are unaffected. If this move is used during the effect, the effect ends.", + shortDesc: "For 5 turns, all Defense and Sp. Def stats switch.", + }, + woodhammer: { + name: "Wood Hammer", + desc: "If the target lost HP, the user takes recoil damage equal to 33% the HP lost by the target, rounded half up, but not less than 1 HP.", + shortDesc: "Has 33% recoil.", + descGen4: "If the target lost HP, the user takes recoil damage equal to 1/3 the HP lost by the target, rounded down, but not less than 1 HP.", + shortDescGen4: "Has 1/3 recoil.", + }, + workup: { + name: "Work Up", + desc: "Raises the user's Attack and Special Attack by 1 stage.", + shortDesc: "Raises the user's Attack and Sp. Atk by 1.", + }, + worryseed: { + name: "Worry Seed", + desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Battle Bond, Comatose, Disguise, Insomnia, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Truant, or Zen Mode.", + shortDesc: "The target's Ability becomes Insomnia.", + descGen6: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Insomnia, Multitype, Stance Change, or Truant.", + descGen5: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Insomnia, Multitype, or Truant.", + descGen4: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is Multitype or Truant, or if the target is holding a Griseous Orb.", + }, + wrap: { + name: "Wrap", + desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4-5 turns.", + descGen7: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen5: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen4: "Prevents the target from switching for two to five turns (always five turns if the user is holding Grip Claw). Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass or U-turn. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + shortDescGen4: "Traps and damages the target for 2-5 turns.", + descGen3: "Prevents the target from switching for two to five turns. Causes damage to the target equal to 1/16 of its maximum HP, rounded down, at the end of each turn during effect. The target can still switch out if it uses Baton Pass. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + descGen1: "The user spends two to five turns using this move. Has a 3/8 chance to last two or three turns, and a 1/8 chance to last four or five turns. The damage calculated for the first turn is used for every other turn. The user cannot select a move and the target cannot execute a move during the effect, but both may switch out. If the user switches out, the target remains unable to execute a move during that turn. If the target switches out, the user uses this move again automatically, and if it had 0 PP at the time, it becomes 63. If the user or the target switch out, or the user is prevented from moving, the effect ends. This move can prevent the target from moving even if it has type immunity, but will not deal damage.", + shortDescGen1: "Prevents the target from moving for 2-5 turns.", + + start: " [POKEMON] was wrapped by [SOURCE]!", + move: "[POKEMON]'s attack continues!", // gen 1 only + }, + wringout: { + name: "Wring Out", + desc: "Power is equal to 120 * (target's current HP / target's maximum HP), rounded half down, but not less than 1.", + shortDesc: "More power the more HP the target has left.", + descGen4: "Power is equal to 120 * (target's current HP / target's maximum HP) + 1, rounded down.", + }, + xscissor: { + name: "X-Scissor", + shortDesc: "No additional effect.", + }, + yawn: { + name: "Yawn", + desc: "Causes the target to fall asleep at the end of the next turn. Fails when used if the target cannot fall asleep or if it already has a major status condition. At the end of the next turn, if the target is still active, does not have a major status condition, and can fall asleep, it falls asleep. If the target becomes affected, this effect cannot be prevented by Safeguard or a substitute, or by falling asleep and waking up during the effect.", + shortDesc: "Puts the target to sleep after 1 turn.", + + start: " [POKEMON] grew drowsy!", + }, + zapcannon: { + name: "Zap Cannon", + desc: "Has a 100% chance to paralyze the target.", + shortDesc: "100% chance to paralyze the target.", + }, + zenheadbutt: { + name: "Zen Headbutt", + desc: "Has a 20% chance to flinch the target.", + shortDesc: "20% chance to flinch the target.", + }, + zingzap: { + name: "Zing Zap", + desc: "Has a 30% chance to flinch the target.", + shortDesc: "30% chance to flinch the target.", + }, + zippyzap: { + name: "Zippy Zap", + desc: "Has a 100% chance to raise the user's evasion by 1 stage.", + shortDesc: "Goes first. Raises user's evasion by 1.", + descGen7: "Will always result in a critical hit.", + shortDescGen7: "Nearly always goes first. Always crits.", + }, +}; diff --git a/data/text/pokedex.ts b/data/text/pokedex.ts new file mode 100644 index 0000000000..b1ab307fb6 --- /dev/null +++ b/data/text/pokedex.ts @@ -0,0 +1,3656 @@ +export const PokedexText = { + bulbasaur: { + name: "Bulbasaur", + }, + ivysaur: { + name: "Ivysaur", + }, + venusaur: { + name: "Venusaur", + }, + venusaurmega: { + name: "Venusaur-Mega", + }, + venusaurgmax: { + name: "Venusaur-Gmax", + }, + charmander: { + name: "Charmander", + }, + charmeleon: { + name: "Charmeleon", + }, + charizard: { + name: "Charizard", + }, + charizardmegax: { + name: "Charizard-Mega-X", + }, + charizardmegay: { + name: "Charizard-Mega-Y", + }, + charizardgmax: { + name: "Charizard-Gmax", + }, + squirtle: { + name: "Squirtle", + }, + wartortle: { + name: "Wartortle", + }, + blastoise: { + name: "Blastoise", + }, + blastoisemega: { + name: "Blastoise-Mega", + }, + blastoisegmax: { + name: "Blastoise-Gmax", + }, + caterpie: { + name: "Caterpie", + }, + metapod: { + name: "Metapod", + }, + butterfree: { + name: "Butterfree", + }, + butterfreegmax: { + name: "Butterfree-Gmax", + }, + weedle: { + name: "Weedle", + }, + kakuna: { + name: "Kakuna", + }, + beedrill: { + name: "Beedrill", + }, + beedrillmega: { + name: "Beedrill-Mega", + }, + pidgey: { + name: "Pidgey", + }, + pidgeotto: { + name: "Pidgeotto", + }, + pidgeot: { + name: "Pidgeot", + }, + pidgeotmega: { + name: "Pidgeot-Mega", + }, + rattata: { + name: "Rattata", + }, + rattataalola: { + name: "Rattata-Alola", + }, + raticate: { + name: "Raticate", + }, + raticatealola: { + name: "Raticate-Alola", + }, + raticatealolatotem: { + name: "Raticate-Alola-Totem", + }, + spearow: { + name: "Spearow", + }, + fearow: { + name: "Fearow", + }, + ekans: { + name: "Ekans", + }, + arbok: { + name: "Arbok", + }, + pikachu: { + name: "Pikachu", + }, + pikachucosplay: { + name: "Pikachu-Cosplay", + }, + pikachurockstar: { + name: "Pikachu-Rock-Star", + }, + pikachubelle: { + name: "Pikachu-Belle", + }, + pikachupopstar: { + name: "Pikachu-Pop-Star", + }, + pikachuphd: { + name: "Pikachu-PhD", + }, + pikachulibre: { + name: "Pikachu-Libre", + }, + pikachuoriginal: { + name: "Pikachu-Original", + }, + pikachuhoenn: { + name: "Pikachu-Hoenn", + }, + pikachusinnoh: { + name: "Pikachu-Sinnoh", + }, + pikachuunova: { + name: "Pikachu-Unova", + }, + pikachukalos: { + name: "Pikachu-Kalos", + }, + pikachualola: { + name: "Pikachu-Alola", + }, + pikachupartner: { + name: "Pikachu-Partner", + }, + pikachustarter: { + name: "Pikachu-Starter", + }, + pikachugmax: { + name: "Pikachu-Gmax", + }, + pikachuworld: { + name: "Pikachu-World", + }, + raichu: { + name: "Raichu", + }, + raichualola: { + name: "Raichu-Alola", + }, + sandshrew: { + name: "Sandshrew", + }, + sandshrewalola: { + name: "Sandshrew-Alola", + }, + sandslash: { + name: "Sandslash", + }, + sandslashalola: { + name: "Sandslash-Alola", + }, + nidoranf: { + name: "Nidoran-F", + }, + nidorina: { + name: "Nidorina", + }, + nidoqueen: { + name: "Nidoqueen", + }, + nidoranm: { + name: "Nidoran-M", + }, + nidorino: { + name: "Nidorino", + }, + nidoking: { + name: "Nidoking", + }, + clefairy: { + name: "Clefairy", + }, + clefable: { + name: "Clefable", + }, + vulpix: { + name: "Vulpix", + }, + vulpixalola: { + name: "Vulpix-Alola", + }, + ninetales: { + name: "Ninetales", + }, + ninetalesalola: { + name: "Ninetales-Alola", + }, + jigglypuff: { + name: "Jigglypuff", + }, + wigglytuff: { + name: "Wigglytuff", + }, + zubat: { + name: "Zubat", + }, + golbat: { + name: "Golbat", + }, + oddish: { + name: "Oddish", + }, + gloom: { + name: "Gloom", + }, + vileplume: { + name: "Vileplume", + }, + paras: { + name: "Paras", + }, + parasect: { + name: "Parasect", + }, + venonat: { + name: "Venonat", + }, + venomoth: { + name: "Venomoth", + }, + diglett: { + name: "Diglett", + }, + diglettalola: { + name: "Diglett-Alola", + }, + dugtrio: { + name: "Dugtrio", + }, + dugtrioalola: { + name: "Dugtrio-Alola", + }, + meowth: { + name: "Meowth", + }, + meowthalola: { + name: "Meowth-Alola", + }, + meowthgalar: { + name: "Meowth-Galar", + }, + meowthgmax: { + name: "Meowth-Gmax", + }, + persian: { + name: "Persian", + }, + persianalola: { + name: "Persian-Alola", + }, + psyduck: { + name: "Psyduck", + }, + golduck: { + name: "Golduck", + }, + mankey: { + name: "Mankey", + }, + primeape: { + name: "Primeape", + }, + growlithe: { + name: "Growlithe", + }, + arcanine: { + name: "Arcanine", + }, + poliwag: { + name: "Poliwag", + }, + poliwhirl: { + name: "Poliwhirl", + }, + poliwrath: { + name: "Poliwrath", + }, + abra: { + name: "Abra", + }, + kadabra: { + name: "Kadabra", + }, + alakazam: { + name: "Alakazam", + }, + alakazammega: { + name: "Alakazam-Mega", + }, + machop: { + name: "Machop", + }, + machoke: { + name: "Machoke", + }, + machamp: { + name: "Machamp", + }, + machampgmax: { + name: "Machamp-Gmax", + }, + bellsprout: { + name: "Bellsprout", + }, + weepinbell: { + name: "Weepinbell", + }, + victreebel: { + name: "Victreebel", + }, + tentacool: { + name: "Tentacool", + }, + tentacruel: { + name: "Tentacruel", + }, + geodude: { + name: "Geodude", + }, + geodudealola: { + name: "Geodude-Alola", + }, + graveler: { + name: "Graveler", + }, + graveleralola: { + name: "Graveler-Alola", + }, + golem: { + name: "Golem", + }, + golemalola: { + name: "Golem-Alola", + }, + ponyta: { + name: "Ponyta", + }, + ponytagalar: { + name: "Ponyta-Galar", + }, + rapidash: { + name: "Rapidash", + }, + rapidashgalar: { + name: "Rapidash-Galar", + }, + slowpoke: { + name: "Slowpoke", + }, + slowpokegalar: { + name: "Slowpoke-Galar", + }, + slowbro: { + name: "Slowbro", + }, + slowbromega: { + name: "Slowbro-Mega", + }, + slowbrogalar: { + name: "Slowbro-Galar", + }, + magnemite: { + name: "Magnemite", + }, + magneton: { + name: "Magneton", + }, + farfetchd: { + name: "Farfetch\u2019d", + }, + farfetchdgalar: { + name: "Farfetch\u2019d-Galar", + }, + doduo: { + name: "Doduo", + }, + dodrio: { + name: "Dodrio", + }, + seel: { + name: "Seel", + }, + dewgong: { + name: "Dewgong", + }, + grimer: { + name: "Grimer", + }, + grimeralola: { + name: "Grimer-Alola", + }, + muk: { + name: "Muk", + }, + mukalola: { + name: "Muk-Alola", + }, + shellder: { + name: "Shellder", + }, + cloyster: { + name: "Cloyster", + }, + gastly: { + name: "Gastly", + }, + haunter: { + name: "Haunter", + }, + gengar: { + name: "Gengar", + }, + gengarmega: { + name: "Gengar-Mega", + }, + gengargmax: { + name: "Gengar-Gmax", + }, + onix: { + name: "Onix", + }, + drowzee: { + name: "Drowzee", + }, + hypno: { + name: "Hypno", + }, + krabby: { + name: "Krabby", + }, + kingler: { + name: "Kingler", + }, + kinglergmax: { + name: "Kingler-Gmax", + }, + voltorb: { + name: "Voltorb", + }, + electrode: { + name: "Electrode", + }, + exeggcute: { + name: "Exeggcute", + }, + exeggutor: { + name: "Exeggutor", + }, + exeggutoralola: { + name: "Exeggutor-Alola", + }, + cubone: { + name: "Cubone", + }, + marowak: { + name: "Marowak", + }, + marowakalola: { + name: "Marowak-Alola", + }, + marowakalolatotem: { + name: "Marowak-Alola-Totem", + }, + hitmonlee: { + name: "Hitmonlee", + }, + hitmonchan: { + name: "Hitmonchan", + }, + lickitung: { + name: "Lickitung", + }, + koffing: { + name: "Koffing", + }, + weezing: { + name: "Weezing", + }, + weezinggalar: { + name: "Weezing-Galar", + }, + rhyhorn: { + name: "Rhyhorn", + }, + rhydon: { + name: "Rhydon", + }, + chansey: { + name: "Chansey", + }, + tangela: { + name: "Tangela", + }, + kangaskhan: { + name: "Kangaskhan", + }, + kangaskhanmega: { + name: "Kangaskhan-Mega", + }, + horsea: { + name: "Horsea", + }, + seadra: { + name: "Seadra", + }, + goldeen: { + name: "Goldeen", + }, + seaking: { + name: "Seaking", + }, + staryu: { + name: "Staryu", + }, + starmie: { + name: "Starmie", + }, + mrmime: { + name: "Mr. Mime", + }, + mrmimegalar: { + name: "Mr. Mime-Galar", + }, + scyther: { + name: "Scyther", + }, + jynx: { + name: "Jynx", + }, + electabuzz: { + name: "Electabuzz", + }, + magmar: { + name: "Magmar", + }, + pinsir: { + name: "Pinsir", + }, + pinsirmega: { + name: "Pinsir-Mega", + }, + tauros: { + name: "Tauros", + }, + magikarp: { + name: "Magikarp", + }, + gyarados: { + name: "Gyarados", + }, + gyaradosmega: { + name: "Gyarados-Mega", + }, + lapras: { + name: "Lapras", + }, + laprasgmax: { + name: "Lapras-Gmax", + }, + ditto: { + name: "Ditto", + }, + eevee: { + name: "Eevee", + }, + eeveestarter: { + name: "Eevee-Starter", + }, + eeveegmax: { + name: "Eevee-Gmax", + }, + vaporeon: { + name: "Vaporeon", + }, + jolteon: { + name: "Jolteon", + }, + flareon: { + name: "Flareon", + }, + porygon: { + name: "Porygon", + }, + omanyte: { + name: "Omanyte", + }, + omastar: { + name: "Omastar", + }, + kabuto: { + name: "Kabuto", + }, + kabutops: { + name: "Kabutops", + }, + aerodactyl: { + name: "Aerodactyl", + }, + aerodactylmega: { + name: "Aerodactyl-Mega", + }, + snorlax: { + name: "Snorlax", + }, + snorlaxgmax: { + name: "Snorlax-Gmax", + }, + articuno: { + name: "Articuno", + }, + zapdos: { + name: "Zapdos", + }, + moltres: { + name: "Moltres", + }, + dratini: { + name: "Dratini", + }, + dragonair: { + name: "Dragonair", + }, + dragonite: { + name: "Dragonite", + }, + mewtwo: { + name: "Mewtwo", + }, + mewtwomegax: { + name: "Mewtwo-Mega-X", + }, + mewtwomegay: { + name: "Mewtwo-Mega-Y", + }, + mew: { + name: "Mew", + }, + chikorita: { + name: "Chikorita", + }, + bayleef: { + name: "Bayleef", + }, + meganium: { + name: "Meganium", + }, + cyndaquil: { + name: "Cyndaquil", + }, + quilava: { + name: "Quilava", + }, + typhlosion: { + name: "Typhlosion", + }, + totodile: { + name: "Totodile", + }, + croconaw: { + name: "Croconaw", + }, + feraligatr: { + name: "Feraligatr", + }, + sentret: { + name: "Sentret", + }, + furret: { + name: "Furret", + }, + hoothoot: { + name: "Hoothoot", + }, + noctowl: { + name: "Noctowl", + }, + ledyba: { + name: "Ledyba", + }, + ledian: { + name: "Ledian", + }, + spinarak: { + name: "Spinarak", + }, + ariados: { + name: "Ariados", + }, + crobat: { + name: "Crobat", + }, + chinchou: { + name: "Chinchou", + }, + lanturn: { + name: "Lanturn", + }, + pichu: { + name: "Pichu", + }, + pichuspikyeared: { + name: "Pichu-Spiky-eared", + }, + cleffa: { + name: "Cleffa", + }, + igglybuff: { + name: "Igglybuff", + }, + togepi: { + name: "Togepi", + }, + togetic: { + name: "Togetic", + }, + natu: { + name: "Natu", + }, + xatu: { + name: "Xatu", + }, + mareep: { + name: "Mareep", + }, + flaaffy: { + name: "Flaaffy", + }, + ampharos: { + name: "Ampharos", + }, + ampharosmega: { + name: "Ampharos-Mega", + }, + bellossom: { + name: "Bellossom", + }, + marill: { + name: "Marill", + }, + azumarill: { + name: "Azumarill", + }, + sudowoodo: { + name: "Sudowoodo", + }, + politoed: { + name: "Politoed", + }, + hoppip: { + name: "Hoppip", + }, + skiploom: { + name: "Skiploom", + }, + jumpluff: { + name: "Jumpluff", + }, + aipom: { + name: "Aipom", + }, + sunkern: { + name: "Sunkern", + }, + sunflora: { + name: "Sunflora", + }, + yanma: { + name: "Yanma", + }, + wooper: { + name: "Wooper", + }, + quagsire: { + name: "Quagsire", + }, + espeon: { + name: "Espeon", + }, + umbreon: { + name: "Umbreon", + }, + murkrow: { + name: "Murkrow", + }, + slowking: { + name: "Slowking", + }, + misdreavus: { + name: "Misdreavus", + }, + unown: { + name: "Unown", + }, + wobbuffet: { + name: "Wobbuffet", + }, + girafarig: { + name: "Girafarig", + }, + pineco: { + name: "Pineco", + }, + forretress: { + name: "Forretress", + }, + dunsparce: { + name: "Dunsparce", + }, + gligar: { + name: "Gligar", + }, + steelix: { + name: "Steelix", + }, + steelixmega: { + name: "Steelix-Mega", + }, + snubbull: { + name: "Snubbull", + }, + granbull: { + name: "Granbull", + }, + qwilfish: { + name: "Qwilfish", + }, + scizor: { + name: "Scizor", + }, + scizormega: { + name: "Scizor-Mega", + }, + shuckle: { + name: "Shuckle", + }, + heracross: { + name: "Heracross", + }, + heracrossmega: { + name: "Heracross-Mega", + }, + sneasel: { + name: "Sneasel", + }, + teddiursa: { + name: "Teddiursa", + }, + ursaring: { + name: "Ursaring", + }, + slugma: { + name: "Slugma", + }, + magcargo: { + name: "Magcargo", + }, + swinub: { + name: "Swinub", + }, + piloswine: { + name: "Piloswine", + }, + corsola: { + name: "Corsola", + }, + corsolagalar: { + name: "Corsola-Galar", + }, + remoraid: { + name: "Remoraid", + }, + octillery: { + name: "Octillery", + }, + delibird: { + name: "Delibird", + }, + mantine: { + name: "Mantine", + }, + skarmory: { + name: "Skarmory", + }, + houndour: { + name: "Houndour", + }, + houndoom: { + name: "Houndoom", + }, + houndoommega: { + name: "Houndoom-Mega", + }, + kingdra: { + name: "Kingdra", + }, + phanpy: { + name: "Phanpy", + }, + donphan: { + name: "Donphan", + }, + porygon2: { + name: "Porygon2", + }, + stantler: { + name: "Stantler", + }, + smeargle: { + name: "Smeargle", + }, + tyrogue: { + name: "Tyrogue", + }, + hitmontop: { + name: "Hitmontop", + }, + smoochum: { + name: "Smoochum", + }, + elekid: { + name: "Elekid", + }, + magby: { + name: "Magby", + }, + miltank: { + name: "Miltank", + }, + blissey: { + name: "Blissey", + }, + raikou: { + name: "Raikou", + }, + entei: { + name: "Entei", + }, + suicune: { + name: "Suicune", + }, + larvitar: { + name: "Larvitar", + }, + pupitar: { + name: "Pupitar", + }, + tyranitar: { + name: "Tyranitar", + }, + tyranitarmega: { + name: "Tyranitar-Mega", + }, + lugia: { + name: "Lugia", + }, + hooh: { + name: "Ho-Oh", + }, + celebi: { + name: "Celebi", + }, + treecko: { + name: "Treecko", + }, + grovyle: { + name: "Grovyle", + }, + sceptile: { + name: "Sceptile", + }, + sceptilemega: { + name: "Sceptile-Mega", + }, + torchic: { + name: "Torchic", + }, + combusken: { + name: "Combusken", + }, + blaziken: { + name: "Blaziken", + }, + blazikenmega: { + name: "Blaziken-Mega", + }, + mudkip: { + name: "Mudkip", + }, + marshtomp: { + name: "Marshtomp", + }, + swampert: { + name: "Swampert", + }, + swampertmega: { + name: "Swampert-Mega", + }, + poochyena: { + name: "Poochyena", + }, + mightyena: { + name: "Mightyena", + }, + zigzagoon: { + name: "Zigzagoon", + }, + zigzagoongalar: { + name: "Zigzagoon-Galar", + }, + linoone: { + name: "Linoone", + }, + linoonegalar: { + name: "Linoone-Galar", + }, + wurmple: { + name: "Wurmple", + }, + silcoon: { + name: "Silcoon", + }, + beautifly: { + name: "Beautifly", + }, + cascoon: { + name: "Cascoon", + }, + dustox: { + name: "Dustox", + }, + lotad: { + name: "Lotad", + }, + lombre: { + name: "Lombre", + }, + ludicolo: { + name: "Ludicolo", + }, + seedot: { + name: "Seedot", + }, + nuzleaf: { + name: "Nuzleaf", + }, + shiftry: { + name: "Shiftry", + }, + taillow: { + name: "Taillow", + }, + swellow: { + name: "Swellow", + }, + wingull: { + name: "Wingull", + }, + pelipper: { + name: "Pelipper", + }, + ralts: { + name: "Ralts", + }, + kirlia: { + name: "Kirlia", + }, + gardevoir: { + name: "Gardevoir", + }, + gardevoirmega: { + name: "Gardevoir-Mega", + }, + surskit: { + name: "Surskit", + }, + masquerain: { + name: "Masquerain", + }, + shroomish: { + name: "Shroomish", + }, + breloom: { + name: "Breloom", + }, + slakoth: { + name: "Slakoth", + }, + vigoroth: { + name: "Vigoroth", + }, + slaking: { + name: "Slaking", + }, + nincada: { + name: "Nincada", + }, + ninjask: { + name: "Ninjask", + }, + shedinja: { + name: "Shedinja", + }, + whismur: { + name: "Whismur", + }, + loudred: { + name: "Loudred", + }, + exploud: { + name: "Exploud", + }, + makuhita: { + name: "Makuhita", + }, + hariyama: { + name: "Hariyama", + }, + azurill: { + name: "Azurill", + }, + nosepass: { + name: "Nosepass", + }, + skitty: { + name: "Skitty", + }, + delcatty: { + name: "Delcatty", + }, + sableye: { + name: "Sableye", + }, + sableyemega: { + name: "Sableye-Mega", + }, + mawile: { + name: "Mawile", + }, + mawilemega: { + name: "Mawile-Mega", + }, + aron: { + name: "Aron", + }, + lairon: { + name: "Lairon", + }, + aggron: { + name: "Aggron", + }, + aggronmega: { + name: "Aggron-Mega", + }, + meditite: { + name: "Meditite", + }, + medicham: { + name: "Medicham", + }, + medichammega: { + name: "Medicham-Mega", + }, + electrike: { + name: "Electrike", + }, + manectric: { + name: "Manectric", + }, + manectricmega: { + name: "Manectric-Mega", + }, + plusle: { + name: "Plusle", + }, + minun: { + name: "Minun", + }, + volbeat: { + name: "Volbeat", + }, + illumise: { + name: "Illumise", + }, + roselia: { + name: "Roselia", + }, + gulpin: { + name: "Gulpin", + }, + swalot: { + name: "Swalot", + }, + carvanha: { + name: "Carvanha", + }, + sharpedo: { + name: "Sharpedo", + }, + sharpedomega: { + name: "Sharpedo-Mega", + }, + wailmer: { + name: "Wailmer", + }, + wailord: { + name: "Wailord", + }, + numel: { + name: "Numel", + }, + camerupt: { + name: "Camerupt", + }, + cameruptmega: { + name: "Camerupt-Mega", + }, + torkoal: { + name: "Torkoal", + }, + spoink: { + name: "Spoink", + }, + grumpig: { + name: "Grumpig", + }, + spinda: { + name: "Spinda", + }, + trapinch: { + name: "Trapinch", + }, + vibrava: { + name: "Vibrava", + }, + flygon: { + name: "Flygon", + }, + cacnea: { + name: "Cacnea", + }, + cacturne: { + name: "Cacturne", + }, + swablu: { + name: "Swablu", + }, + altaria: { + name: "Altaria", + }, + altariamega: { + name: "Altaria-Mega", + }, + zangoose: { + name: "Zangoose", + }, + seviper: { + name: "Seviper", + }, + lunatone: { + name: "Lunatone", + }, + solrock: { + name: "Solrock", + }, + barboach: { + name: "Barboach", + }, + whiscash: { + name: "Whiscash", + }, + corphish: { + name: "Corphish", + }, + crawdaunt: { + name: "Crawdaunt", + }, + baltoy: { + name: "Baltoy", + }, + claydol: { + name: "Claydol", + }, + lileep: { + name: "Lileep", + }, + cradily: { + name: "Cradily", + }, + anorith: { + name: "Anorith", + }, + armaldo: { + name: "Armaldo", + }, + feebas: { + name: "Feebas", + }, + milotic: { + name: "Milotic", + }, + castform: { + name: "Castform", + }, + castformsunny: { + name: "Castform-Sunny", + }, + castformrainy: { + name: "Castform-Rainy", + }, + castformsnowy: { + name: "Castform-Snowy", + }, + kecleon: { + name: "Kecleon", + }, + shuppet: { + name: "Shuppet", + }, + banette: { + name: "Banette", + }, + banettemega: { + name: "Banette-Mega", + }, + duskull: { + name: "Duskull", + }, + dusclops: { + name: "Dusclops", + }, + tropius: { + name: "Tropius", + }, + chimecho: { + name: "Chimecho", + }, + absol: { + name: "Absol", + }, + absolmega: { + name: "Absol-Mega", + }, + wynaut: { + name: "Wynaut", + }, + snorunt: { + name: "Snorunt", + }, + glalie: { + name: "Glalie", + }, + glaliemega: { + name: "Glalie-Mega", + }, + spheal: { + name: "Spheal", + }, + sealeo: { + name: "Sealeo", + }, + walrein: { + name: "Walrein", + }, + clamperl: { + name: "Clamperl", + }, + huntail: { + name: "Huntail", + }, + gorebyss: { + name: "Gorebyss", + }, + relicanth: { + name: "Relicanth", + }, + luvdisc: { + name: "Luvdisc", + }, + bagon: { + name: "Bagon", + }, + shelgon: { + name: "Shelgon", + }, + salamence: { + name: "Salamence", + }, + salamencemega: { + name: "Salamence-Mega", + }, + beldum: { + name: "Beldum", + }, + metang: { + name: "Metang", + }, + metagross: { + name: "Metagross", + }, + metagrossmega: { + name: "Metagross-Mega", + }, + regirock: { + name: "Regirock", + }, + regice: { + name: "Regice", + }, + registeel: { + name: "Registeel", + }, + latias: { + name: "Latias", + }, + latiasmega: { + name: "Latias-Mega", + }, + latios: { + name: "Latios", + }, + latiosmega: { + name: "Latios-Mega", + }, + kyogre: { + name: "Kyogre", + }, + kyogreprimal: { + name: "Kyogre-Primal", + }, + groudon: { + name: "Groudon", + }, + groudonprimal: { + name: "Groudon-Primal", + }, + rayquaza: { + name: "Rayquaza", + }, + rayquazamega: { + name: "Rayquaza-Mega", + }, + jirachi: { + name: "Jirachi", + }, + deoxys: { + name: "Deoxys", + }, + deoxysattack: { + name: "Deoxys-Attack", + }, + deoxysdefense: { + name: "Deoxys-Defense", + }, + deoxysspeed: { + name: "Deoxys-Speed", + }, + turtwig: { + name: "Turtwig", + }, + grotle: { + name: "Grotle", + }, + torterra: { + name: "Torterra", + }, + chimchar: { + name: "Chimchar", + }, + monferno: { + name: "Monferno", + }, + infernape: { + name: "Infernape", + }, + piplup: { + name: "Piplup", + }, + prinplup: { + name: "Prinplup", + }, + empoleon: { + name: "Empoleon", + }, + starly: { + name: "Starly", + }, + staravia: { + name: "Staravia", + }, + staraptor: { + name: "Staraptor", + }, + bidoof: { + name: "Bidoof", + }, + bibarel: { + name: "Bibarel", + }, + kricketot: { + name: "Kricketot", + }, + kricketune: { + name: "Kricketune", + }, + shinx: { + name: "Shinx", + }, + luxio: { + name: "Luxio", + }, + luxray: { + name: "Luxray", + }, + budew: { + name: "Budew", + }, + roserade: { + name: "Roserade", + }, + cranidos: { + name: "Cranidos", + }, + rampardos: { + name: "Rampardos", + }, + shieldon: { + name: "Shieldon", + }, + bastiodon: { + name: "Bastiodon", + }, + burmy: { + name: "Burmy", + }, + wormadam: { + name: "Wormadam", + }, + wormadamsandy: { + name: "Wormadam-Sandy", + }, + wormadamtrash: { + name: "Wormadam-Trash", + }, + mothim: { + name: "Mothim", + }, + combee: { + name: "Combee", + }, + vespiquen: { + name: "Vespiquen", + }, + pachirisu: { + name: "Pachirisu", + }, + buizel: { + name: "Buizel", + }, + floatzel: { + name: "Floatzel", + }, + cherubi: { + name: "Cherubi", + }, + cherrim: { + name: "Cherrim", + }, + cherrimsunshine: { + name: "Cherrim-Sunshine", + }, + shellos: { + name: "Shellos", + }, + gastrodon: { + name: "Gastrodon", + }, + ambipom: { + name: "Ambipom", + }, + drifloon: { + name: "Drifloon", + }, + drifblim: { + name: "Drifblim", + }, + buneary: { + name: "Buneary", + }, + lopunny: { + name: "Lopunny", + }, + lopunnymega: { + name: "Lopunny-Mega", + }, + mismagius: { + name: "Mismagius", + }, + honchkrow: { + name: "Honchkrow", + }, + glameow: { + name: "Glameow", + }, + purugly: { + name: "Purugly", + }, + chingling: { + name: "Chingling", + }, + stunky: { + name: "Stunky", + }, + skuntank: { + name: "Skuntank", + }, + bronzor: { + name: "Bronzor", + }, + bronzong: { + name: "Bronzong", + }, + bonsly: { + name: "Bonsly", + }, + mimejr: { + name: "Mime Jr.", + }, + happiny: { + name: "Happiny", + }, + chatot: { + name: "Chatot", + }, + spiritomb: { + name: "Spiritomb", + }, + gible: { + name: "Gible", + }, + gabite: { + name: "Gabite", + }, + garchomp: { + name: "Garchomp", + }, + garchompmega: { + name: "Garchomp-Mega", + }, + munchlax: { + name: "Munchlax", + }, + riolu: { + name: "Riolu", + }, + lucario: { + name: "Lucario", + }, + lucariomega: { + name: "Lucario-Mega", + }, + hippopotas: { + name: "Hippopotas", + }, + hippowdon: { + name: "Hippowdon", + }, + skorupi: { + name: "Skorupi", + }, + drapion: { + name: "Drapion", + }, + croagunk: { + name: "Croagunk", + }, + toxicroak: { + name: "Toxicroak", + }, + carnivine: { + name: "Carnivine", + }, + finneon: { + name: "Finneon", + }, + lumineon: { + name: "Lumineon", + }, + mantyke: { + name: "Mantyke", + }, + snover: { + name: "Snover", + }, + abomasnow: { + name: "Abomasnow", + }, + abomasnowmega: { + name: "Abomasnow-Mega", + }, + weavile: { + name: "Weavile", + }, + magnezone: { + name: "Magnezone", + }, + lickilicky: { + name: "Lickilicky", + }, + rhyperior: { + name: "Rhyperior", + }, + tangrowth: { + name: "Tangrowth", + }, + electivire: { + name: "Electivire", + }, + magmortar: { + name: "Magmortar", + }, + togekiss: { + name: "Togekiss", + }, + yanmega: { + name: "Yanmega", + }, + leafeon: { + name: "Leafeon", + }, + glaceon: { + name: "Glaceon", + }, + gliscor: { + name: "Gliscor", + }, + mamoswine: { + name: "Mamoswine", + }, + porygonz: { + name: "Porygon-Z", + }, + gallade: { + name: "Gallade", + }, + gallademega: { + name: "Gallade-Mega", + }, + probopass: { + name: "Probopass", + }, + dusknoir: { + name: "Dusknoir", + }, + froslass: { + name: "Froslass", + }, + rotom: { + name: "Rotom", + }, + rotomheat: { + name: "Rotom-Heat", + }, + rotomwash: { + name: "Rotom-Wash", + }, + rotomfrost: { + name: "Rotom-Frost", + }, + rotomfan: { + name: "Rotom-Fan", + }, + rotommow: { + name: "Rotom-Mow", + }, + uxie: { + name: "Uxie", + }, + mesprit: { + name: "Mesprit", + }, + azelf: { + name: "Azelf", + }, + dialga: { + name: "Dialga", + }, + palkia: { + name: "Palkia", + }, + heatran: { + name: "Heatran", + }, + regigigas: { + name: "Regigigas", + }, + giratina: { + name: "Giratina", + }, + giratinaorigin: { + name: "Giratina-Origin", + }, + cresselia: { + name: "Cresselia", + }, + phione: { + name: "Phione", + }, + manaphy: { + name: "Manaphy", + }, + darkrai: { + name: "Darkrai", + }, + shaymin: { + name: "Shaymin", + }, + shayminsky: { + name: "Shaymin-Sky", + }, + arceus: { + name: "Arceus", + }, + arceusbug: { + name: "Arceus-Bug", + }, + arceusdark: { + name: "Arceus-Dark", + }, + arceusdragon: { + name: "Arceus-Dragon", + }, + arceuselectric: { + name: "Arceus-Electric", + }, + arceusfairy: { + name: "Arceus-Fairy", + }, + arceusfighting: { + name: "Arceus-Fighting", + }, + arceusfire: { + name: "Arceus-Fire", + }, + arceusflying: { + name: "Arceus-Flying", + }, + arceusghost: { + name: "Arceus-Ghost", + }, + arceusgrass: { + name: "Arceus-Grass", + }, + arceusground: { + name: "Arceus-Ground", + }, + arceusice: { + name: "Arceus-Ice", + }, + arceuspoison: { + name: "Arceus-Poison", + }, + arceuspsychic: { + name: "Arceus-Psychic", + }, + arceusrock: { + name: "Arceus-Rock", + }, + arceussteel: { + name: "Arceus-Steel", + }, + arceuswater: { + name: "Arceus-Water", + }, + victini: { + name: "Victini", + }, + snivy: { + name: "Snivy", + }, + servine: { + name: "Servine", + }, + serperior: { + name: "Serperior", + }, + tepig: { + name: "Tepig", + }, + pignite: { + name: "Pignite", + }, + emboar: { + name: "Emboar", + }, + oshawott: { + name: "Oshawott", + }, + dewott: { + name: "Dewott", + }, + samurott: { + name: "Samurott", + }, + patrat: { + name: "Patrat", + }, + watchog: { + name: "Watchog", + }, + lillipup: { + name: "Lillipup", + }, + herdier: { + name: "Herdier", + }, + stoutland: { + name: "Stoutland", + }, + purrloin: { + name: "Purrloin", + }, + liepard: { + name: "Liepard", + }, + pansage: { + name: "Pansage", + }, + simisage: { + name: "Simisage", + }, + pansear: { + name: "Pansear", + }, + simisear: { + name: "Simisear", + }, + panpour: { + name: "Panpour", + }, + simipour: { + name: "Simipour", + }, + munna: { + name: "Munna", + }, + musharna: { + name: "Musharna", + }, + pidove: { + name: "Pidove", + }, + tranquill: { + name: "Tranquill", + }, + unfezant: { + name: "Unfezant", + }, + blitzle: { + name: "Blitzle", + }, + zebstrika: { + name: "Zebstrika", + }, + roggenrola: { + name: "Roggenrola", + }, + boldore: { + name: "Boldore", + }, + gigalith: { + name: "Gigalith", + }, + woobat: { + name: "Woobat", + }, + swoobat: { + name: "Swoobat", + }, + drilbur: { + name: "Drilbur", + }, + excadrill: { + name: "Excadrill", + }, + audino: { + name: "Audino", + }, + audinomega: { + name: "Audino-Mega", + }, + timburr: { + name: "Timburr", + }, + gurdurr: { + name: "Gurdurr", + }, + conkeldurr: { + name: "Conkeldurr", + }, + tympole: { + name: "Tympole", + }, + palpitoad: { + name: "Palpitoad", + }, + seismitoad: { + name: "Seismitoad", + }, + throh: { + name: "Throh", + }, + sawk: { + name: "Sawk", + }, + sewaddle: { + name: "Sewaddle", + }, + swadloon: { + name: "Swadloon", + }, + leavanny: { + name: "Leavanny", + }, + venipede: { + name: "Venipede", + }, + whirlipede: { + name: "Whirlipede", + }, + scolipede: { + name: "Scolipede", + }, + cottonee: { + name: "Cottonee", + }, + whimsicott: { + name: "Whimsicott", + }, + petilil: { + name: "Petilil", + }, + lilligant: { + name: "Lilligant", + }, + basculin: { + name: "Basculin", + }, + basculinbluestriped: { + name: "Basculin-Blue-Striped", + }, + sandile: { + name: "Sandile", + }, + krokorok: { + name: "Krokorok", + }, + krookodile: { + name: "Krookodile", + }, + darumaka: { + name: "Darumaka", + }, + darumakagalar: { + name: "Darumaka-Galar", + }, + darmanitan: { + name: "Darmanitan", + }, + darmanitanzen: { + name: "Darmanitan-Zen", + }, + darmanitangalar: { + name: "Darmanitan-Galar", + }, + darmanitangalarzen: { + name: "Darmanitan-Galar-Zen", + }, + maractus: { + name: "Maractus", + }, + dwebble: { + name: "Dwebble", + }, + crustle: { + name: "Crustle", + }, + scraggy: { + name: "Scraggy", + }, + scrafty: { + name: "Scrafty", + }, + sigilyph: { + name: "Sigilyph", + }, + yamask: { + name: "Yamask", + }, + yamaskgalar: { + name: "Yamask-Galar", + }, + cofagrigus: { + name: "Cofagrigus", + }, + tirtouga: { + name: "Tirtouga", + }, + carracosta: { + name: "Carracosta", + }, + archen: { + name: "Archen", + }, + archeops: { + name: "Archeops", + }, + trubbish: { + name: "Trubbish", + }, + garbodor: { + name: "Garbodor", + }, + garbodorgmax: { + name: "Garbodor-Gmax", + }, + zorua: { + name: "Zorua", + }, + zoroark: { + name: "Zoroark", + }, + minccino: { + name: "Minccino", + }, + cinccino: { + name: "Cinccino", + }, + gothita: { + name: "Gothita", + }, + gothorita: { + name: "Gothorita", + }, + gothitelle: { + name: "Gothitelle", + }, + solosis: { + name: "Solosis", + }, + duosion: { + name: "Duosion", + }, + reuniclus: { + name: "Reuniclus", + }, + ducklett: { + name: "Ducklett", + }, + swanna: { + name: "Swanna", + }, + vanillite: { + name: "Vanillite", + }, + vanillish: { + name: "Vanillish", + }, + vanilluxe: { + name: "Vanilluxe", + }, + deerling: { + name: "Deerling", + }, + sawsbuck: { + name: "Sawsbuck", + }, + emolga: { + name: "Emolga", + }, + karrablast: { + name: "Karrablast", + }, + escavalier: { + name: "Escavalier", + }, + foongus: { + name: "Foongus", + }, + amoonguss: { + name: "Amoonguss", + }, + frillish: { + name: "Frillish", + }, + jellicent: { + name: "Jellicent", + }, + alomomola: { + name: "Alomomola", + }, + joltik: { + name: "Joltik", + }, + galvantula: { + name: "Galvantula", + }, + ferroseed: { + name: "Ferroseed", + }, + ferrothorn: { + name: "Ferrothorn", + }, + klink: { + name: "Klink", + }, + klang: { + name: "Klang", + }, + klinklang: { + name: "Klinklang", + }, + tynamo: { + name: "Tynamo", + }, + eelektrik: { + name: "Eelektrik", + }, + eelektross: { + name: "Eelektross", + }, + elgyem: { + name: "Elgyem", + }, + beheeyem: { + name: "Beheeyem", + }, + litwick: { + name: "Litwick", + }, + lampent: { + name: "Lampent", + }, + chandelure: { + name: "Chandelure", + }, + axew: { + name: "Axew", + }, + fraxure: { + name: "Fraxure", + }, + haxorus: { + name: "Haxorus", + }, + cubchoo: { + name: "Cubchoo", + }, + beartic: { + name: "Beartic", + }, + cryogonal: { + name: "Cryogonal", + }, + shelmet: { + name: "Shelmet", + }, + accelgor: { + name: "Accelgor", + }, + stunfisk: { + name: "Stunfisk", + }, + stunfiskgalar: { + name: "Stunfisk-Galar", + }, + mienfoo: { + name: "Mienfoo", + }, + mienshao: { + name: "Mienshao", + }, + druddigon: { + name: "Druddigon", + }, + golett: { + name: "Golett", + }, + golurk: { + name: "Golurk", + }, + pawniard: { + name: "Pawniard", + }, + bisharp: { + name: "Bisharp", + }, + bouffalant: { + name: "Bouffalant", + }, + rufflet: { + name: "Rufflet", + }, + braviary: { + name: "Braviary", + }, + vullaby: { + name: "Vullaby", + }, + mandibuzz: { + name: "Mandibuzz", + }, + heatmor: { + name: "Heatmor", + }, + durant: { + name: "Durant", + }, + deino: { + name: "Deino", + }, + zweilous: { + name: "Zweilous", + }, + hydreigon: { + name: "Hydreigon", + }, + larvesta: { + name: "Larvesta", + }, + volcarona: { + name: "Volcarona", + }, + cobalion: { + name: "Cobalion", + }, + terrakion: { + name: "Terrakion", + }, + virizion: { + name: "Virizion", + }, + tornadus: { + name: "Tornadus", + }, + tornadustherian: { + name: "Tornadus-Therian", + }, + thundurus: { + name: "Thundurus", + }, + thundurustherian: { + name: "Thundurus-Therian", + }, + reshiram: { + name: "Reshiram", + }, + zekrom: { + name: "Zekrom", + }, + landorus: { + name: "Landorus", + }, + landorustherian: { + name: "Landorus-Therian", + }, + kyurem: { + name: "Kyurem", + }, + kyuremblack: { + name: "Kyurem-Black", + }, + kyuremwhite: { + name: "Kyurem-White", + }, + keldeo: { + name: "Keldeo", + }, + keldeoresolute: { + name: "Keldeo-Resolute", + }, + meloetta: { + name: "Meloetta", + }, + meloettapirouette: { + name: "Meloetta-Pirouette", + }, + genesect: { + name: "Genesect", + }, + genesectdouse: { + name: "Genesect-Douse", + }, + genesectshock: { + name: "Genesect-Shock", + }, + genesectburn: { + name: "Genesect-Burn", + }, + genesectchill: { + name: "Genesect-Chill", + }, + chespin: { + name: "Chespin", + }, + quilladin: { + name: "Quilladin", + }, + chesnaught: { + name: "Chesnaught", + }, + fennekin: { + name: "Fennekin", + }, + braixen: { + name: "Braixen", + }, + delphox: { + name: "Delphox", + }, + froakie: { + name: "Froakie", + }, + frogadier: { + name: "Frogadier", + }, + greninja: { + name: "Greninja", + }, + greninjaash: { + name: "Greninja-Ash", + }, + bunnelby: { + name: "Bunnelby", + }, + diggersby: { + name: "Diggersby", + }, + fletchling: { + name: "Fletchling", + }, + fletchinder: { + name: "Fletchinder", + }, + talonflame: { + name: "Talonflame", + }, + scatterbug: { + name: "Scatterbug", + }, + spewpa: { + name: "Spewpa", + }, + vivillon: { + name: "Vivillon", + }, + vivillonfancy: { + name: "Vivillon-Fancy", + }, + vivillonpokeball: { + name: "Vivillon-Pokeball", + }, + litleo: { + name: "Litleo", + }, + pyroar: { + name: "Pyroar", + }, + flabebe: { + name: "Flabe\u0301be\u0301", + }, + floette: { + name: "Floette", + }, + floetteeternal: { + name: "Floette-Eternal", + }, + florges: { + name: "Florges", + }, + skiddo: { + name: "Skiddo", + }, + gogoat: { + name: "Gogoat", + }, + pancham: { + name: "Pancham", + }, + pangoro: { + name: "Pangoro", + }, + furfrou: { + name: "Furfrou", + }, + espurr: { + name: "Espurr", + }, + meowstic: { + name: "Meowstic", + }, + meowsticf: { + name: "Meowstic-F", + }, + honedge: { + name: "Honedge", + }, + doublade: { + name: "Doublade", + }, + aegislash: { + name: "Aegislash", + }, + aegislashblade: { + name: "Aegislash-Blade", + }, + spritzee: { + name: "Spritzee", + }, + aromatisse: { + name: "Aromatisse", + }, + swirlix: { + name: "Swirlix", + }, + slurpuff: { + name: "Slurpuff", + }, + inkay: { + name: "Inkay", + }, + malamar: { + name: "Malamar", + }, + binacle: { + name: "Binacle", + }, + barbaracle: { + name: "Barbaracle", + }, + skrelp: { + name: "Skrelp", + }, + dragalge: { + name: "Dragalge", + }, + clauncher: { + name: "Clauncher", + }, + clawitzer: { + name: "Clawitzer", + }, + helioptile: { + name: "Helioptile", + }, + heliolisk: { + name: "Heliolisk", + }, + tyrunt: { + name: "Tyrunt", + }, + tyrantrum: { + name: "Tyrantrum", + }, + amaura: { + name: "Amaura", + }, + aurorus: { + name: "Aurorus", + }, + sylveon: { + name: "Sylveon", + }, + hawlucha: { + name: "Hawlucha", + }, + dedenne: { + name: "Dedenne", + }, + carbink: { + name: "Carbink", + }, + goomy: { + name: "Goomy", + }, + sliggoo: { + name: "Sliggoo", + }, + goodra: { + name: "Goodra", + }, + klefki: { + name: "Klefki", + }, + phantump: { + name: "Phantump", + }, + trevenant: { + name: "Trevenant", + }, + pumpkaboo: { + name: "Pumpkaboo", + }, + pumpkaboosmall: { + name: "Pumpkaboo-Small", + }, + pumpkaboolarge: { + name: "Pumpkaboo-Large", + }, + pumpkaboosuper: { + name: "Pumpkaboo-Super", + }, + gourgeist: { + name: "Gourgeist", + }, + gourgeistsmall: { + name: "Gourgeist-Small", + }, + gourgeistlarge: { + name: "Gourgeist-Large", + }, + gourgeistsuper: { + name: "Gourgeist-Super", + }, + bergmite: { + name: "Bergmite", + }, + avalugg: { + name: "Avalugg", + }, + noibat: { + name: "Noibat", + }, + noivern: { + name: "Noivern", + }, + xerneas: { + name: "Xerneas", + }, + xerneasneutral: { + name: "Xerneas-Neutral", + }, + yveltal: { + name: "Yveltal", + }, + zygarde: { + name: "Zygarde", + }, + zygarde10: { + name: "Zygarde-10%", + }, + zygardecomplete: { + name: "Zygarde-Complete", + }, + diancie: { + name: "Diancie", + }, + dianciemega: { + name: "Diancie-Mega", + }, + hoopa: { + name: "Hoopa", + }, + hoopaunbound: { + name: "Hoopa-Unbound", + }, + volcanion: { + name: "Volcanion", + }, + rowlet: { + name: "Rowlet", + }, + dartrix: { + name: "Dartrix", + }, + decidueye: { + name: "Decidueye", + }, + litten: { + name: "Litten", + }, + torracat: { + name: "Torracat", + }, + incineroar: { + name: "Incineroar", + }, + popplio: { + name: "Popplio", + }, + brionne: { + name: "Brionne", + }, + primarina: { + name: "Primarina", + }, + pikipek: { + name: "Pikipek", + }, + trumbeak: { + name: "Trumbeak", + }, + toucannon: { + name: "Toucannon", + }, + yungoos: { + name: "Yungoos", + }, + gumshoos: { + name: "Gumshoos", + }, + gumshoostotem: { + name: "Gumshoos-Totem", + }, + grubbin: { + name: "Grubbin", + }, + charjabug: { + name: "Charjabug", + }, + vikavolt: { + name: "Vikavolt", + }, + vikavolttotem: { + name: "Vikavolt-Totem", + }, + crabrawler: { + name: "Crabrawler", + }, + crabominable: { + name: "Crabominable", + }, + oricorio: { + name: "Oricorio", + }, + oricoriopompom: { + name: "Oricorio-Pom-Pom", + }, + oricoriopau: { + name: "Oricorio-Pa'u", + }, + oricoriosensu: { + name: "Oricorio-Sensu", + }, + cutiefly: { + name: "Cutiefly", + }, + ribombee: { + name: "Ribombee", + }, + ribombeetotem: { + name: "Ribombee-Totem", + }, + rockruff: { + name: "Rockruff", + }, + lycanroc: { + name: "Lycanroc", + }, + lycanrocmidnight: { + name: "Lycanroc-Midnight", + }, + lycanrocdusk: { + name: "Lycanroc-Dusk", + }, + wishiwashi: { + name: "Wishiwashi", + }, + wishiwashischool: { + name: "Wishiwashi-School", + }, + mareanie: { + name: "Mareanie", + }, + toxapex: { + name: "Toxapex", + }, + mudbray: { + name: "Mudbray", + }, + mudsdale: { + name: "Mudsdale", + }, + dewpider: { + name: "Dewpider", + }, + araquanid: { + name: "Araquanid", + }, + araquanidtotem: { + name: "Araquanid-Totem", + }, + fomantis: { + name: "Fomantis", + }, + lurantis: { + name: "Lurantis", + }, + lurantistotem: { + name: "Lurantis-Totem", + }, + morelull: { + name: "Morelull", + }, + shiinotic: { + name: "Shiinotic", + }, + salandit: { + name: "Salandit", + }, + salazzle: { + name: "Salazzle", + }, + salazzletotem: { + name: "Salazzle-Totem", + }, + stufful: { + name: "Stufful", + }, + bewear: { + name: "Bewear", + }, + bounsweet: { + name: "Bounsweet", + }, + steenee: { + name: "Steenee", + }, + tsareena: { + name: "Tsareena", + }, + comfey: { + name: "Comfey", + }, + oranguru: { + name: "Oranguru", + }, + passimian: { + name: "Passimian", + }, + wimpod: { + name: "Wimpod", + }, + golisopod: { + name: "Golisopod", + }, + sandygast: { + name: "Sandygast", + }, + palossand: { + name: "Palossand", + }, + pyukumuku: { + name: "Pyukumuku", + }, + typenull: { + name: "Type: Null", + }, + silvally: { + name: "Silvally", + }, + silvallybug: { + name: "Silvally-Bug", + }, + silvallydark: { + name: "Silvally-Dark", + }, + silvallydragon: { + name: "Silvally-Dragon", + }, + silvallyelectric: { + name: "Silvally-Electric", + }, + silvallyfairy: { + name: "Silvally-Fairy", + }, + silvallyfighting: { + name: "Silvally-Fighting", + }, + silvallyfire: { + name: "Silvally-Fire", + }, + silvallyflying: { + name: "Silvally-Flying", + }, + silvallyghost: { + name: "Silvally-Ghost", + }, + silvallygrass: { + name: "Silvally-Grass", + }, + silvallyground: { + name: "Silvally-Ground", + }, + silvallyice: { + name: "Silvally-Ice", + }, + silvallypoison: { + name: "Silvally-Poison", + }, + silvallypsychic: { + name: "Silvally-Psychic", + }, + silvallyrock: { + name: "Silvally-Rock", + }, + silvallysteel: { + name: "Silvally-Steel", + }, + silvallywater: { + name: "Silvally-Water", + }, + minior: { + name: "Minior", + }, + miniormeteor: { + name: "Minior-Meteor", + }, + komala: { + name: "Komala", + }, + turtonator: { + name: "Turtonator", + }, + togedemaru: { + name: "Togedemaru", + }, + togedemarutotem: { + name: "Togedemaru-Totem", + }, + mimikyu: { + name: "Mimikyu", + }, + mimikyubusted: { + name: "Mimikyu-Busted", + }, + mimikyutotem: { + name: "Mimikyu-Totem", + }, + mimikyubustedtotem: { + name: "Mimikyu-Busted-Totem", + }, + bruxish: { + name: "Bruxish", + }, + drampa: { + name: "Drampa", + }, + dhelmise: { + name: "Dhelmise", + }, + jangmoo: { + name: "Jangmo-o", + }, + hakamoo: { + name: "Hakamo-o", + }, + kommoo: { + name: "Kommo-o", + }, + kommoototem: { + name: "Kommo-o-Totem", + }, + tapukoko: { + name: "Tapu Koko", + }, + tapulele: { + name: "Tapu Lele", + }, + tapubulu: { + name: "Tapu Bulu", + }, + tapufini: { + name: "Tapu Fini", + }, + cosmog: { + name: "Cosmog", + }, + cosmoem: { + name: "Cosmoem", + }, + solgaleo: { + name: "Solgaleo", + }, + lunala: { + name: "Lunala", + }, + nihilego: { + name: "Nihilego", + }, + buzzwole: { + name: "Buzzwole", + }, + pheromosa: { + name: "Pheromosa", + }, + xurkitree: { + name: "Xurkitree", + }, + celesteela: { + name: "Celesteela", + }, + kartana: { + name: "Kartana", + }, + guzzlord: { + name: "Guzzlord", + }, + necrozma: { + name: "Necrozma", + }, + necrozmaduskmane: { + name: "Necrozma-Dusk-Mane", + }, + necrozmadawnwings: { + name: "Necrozma-Dawn-Wings", + }, + necrozmaultra: { + name: "Necrozma-Ultra", + }, + magearna: { + name: "Magearna", + }, + magearnaoriginal: { + name: "Magearna-Original", + }, + marshadow: { + name: "Marshadow", + }, + poipole: { + name: "Poipole", + }, + naganadel: { + name: "Naganadel", + }, + stakataka: { + name: "Stakataka", + }, + blacephalon: { + name: "Blacephalon", + }, + zeraora: { + name: "Zeraora", + }, + meltan: { + name: "Meltan", + }, + melmetal: { + name: "Melmetal", + }, + melmetalgmax: { + name: "Melmetal-Gmax", + }, + grookey: { + name: "Grookey", + }, + thwackey: { + name: "Thwackey", + }, + rillaboom: { + name: "Rillaboom", + }, + rillaboomgmax: { + name: "Rillaboom-Gmax", + }, + scorbunny: { + name: "Scorbunny", + }, + raboot: { + name: "Raboot", + }, + cinderace: { + name: "Cinderace", + }, + cinderacegmax: { + name: "Cinderace-Gmax", + }, + sobble: { + name: "Sobble", + }, + drizzile: { + name: "Drizzile", + }, + inteleon: { + name: "Inteleon", + }, + inteleongmax: { + name: "Inteleon-Gmax", + }, + skwovet: { + name: "Skwovet", + }, + greedent: { + name: "Greedent", + }, + rookidee: { + name: "Rookidee", + }, + corvisquire: { + name: "Corvisquire", + }, + corviknight: { + name: "Corviknight", + }, + corviknightgmax: { + name: "Corviknight-Gmax", + }, + blipbug: { + name: "Blipbug", + }, + dottler: { + name: "Dottler", + }, + orbeetle: { + name: "Orbeetle", + }, + orbeetlegmax: { + name: "Orbeetle-Gmax", + }, + nickit: { + name: "Nickit", + }, + thievul: { + name: "Thievul", + }, + gossifleur: { + name: "Gossifleur", + }, + eldegoss: { + name: "Eldegoss", + }, + wooloo: { + name: "Wooloo", + }, + dubwool: { + name: "Dubwool", + }, + chewtle: { + name: "Chewtle", + }, + drednaw: { + name: "Drednaw", + }, + drednawgmax: { + name: "Drednaw-Gmax", + }, + yamper: { + name: "Yamper", + }, + boltund: { + name: "Boltund", + }, + rolycoly: { + name: "Rolycoly", + }, + carkol: { + name: "Carkol", + }, + coalossal: { + name: "Coalossal", + }, + coalossalgmax: { + name: "Coalossal-Gmax", + }, + applin: { + name: "Applin", + }, + flapple: { + name: "Flapple", + }, + flapplegmax: { + name: "Flapple-Gmax", + }, + appletun: { + name: "Appletun", + }, + appletungmax: { + name: "Appletun-Gmax", + }, + silicobra: { + name: "Silicobra", + }, + sandaconda: { + name: "Sandaconda", + }, + sandacondagmax: { + name: "Sandaconda-Gmax", + }, + cramorant: { + name: "Cramorant", + }, + cramorantgulping: { + name: "Cramorant-Gulping", + }, + cramorantgorging: { + name: "Cramorant-Gorging", + }, + arrokuda: { + name: "Arrokuda", + }, + barraskewda: { + name: "Barraskewda", + }, + toxel: { + name: "Toxel", + }, + toxtricity: { + name: "Toxtricity", + }, + toxtricitylowkey: { + name: "Toxtricity-Low-Key", + }, + toxtricitygmax: { + name: "Toxtricity-Gmax", + }, + toxtricitylowkeygmax: { + name: "Toxtricity-Low-Key-Gmax", + }, + sizzlipede: { + name: "Sizzlipede", + }, + centiskorch: { + name: "Centiskorch", + }, + centiskorchgmax: { + name: "Centiskorch-Gmax", + }, + clobbopus: { + name: "Clobbopus", + }, + grapploct: { + name: "Grapploct", + }, + sinistea: { + name: "Sinistea", + }, + sinisteaantique: { + name: "Sinistea-Antique", + }, + polteageist: { + name: "Polteageist", + }, + polteageistantique: { + name: "Polteageist-Antique", + }, + hatenna: { + name: "Hatenna", + }, + hattrem: { + name: "Hattrem", + }, + hatterene: { + name: "Hatterene", + }, + hatterenegmax: { + name: "Hatterene-Gmax", + }, + impidimp: { + name: "Impidimp", + }, + morgrem: { + name: "Morgrem", + }, + grimmsnarl: { + name: "Grimmsnarl", + }, + grimmsnarlgmax: { + name: "Grimmsnarl-Gmax", + }, + obstagoon: { + name: "Obstagoon", + }, + perrserker: { + name: "Perrserker", + }, + cursola: { + name: "Cursola", + }, + sirfetchd: { + name: "Sirfetch\u2019d", + }, + mrrime: { + name: "Mr. Rime", + }, + runerigus: { + name: "Runerigus", + }, + milcery: { + name: "Milcery", + }, + alcremie: { + name: "Alcremie", + }, + alcremiegmax: { + name: "Alcremie-Gmax", + }, + falinks: { + name: "Falinks", + }, + pincurchin: { + name: "Pincurchin", + }, + snom: { + name: "Snom", + }, + frosmoth: { + name: "Frosmoth", + }, + stonjourner: { + name: "Stonjourner", + }, + eiscue: { + name: "Eiscue", + }, + eiscuenoice: { + name: "Eiscue-Noice", + }, + indeedee: { + name: "Indeedee", + }, + indeedeef: { + name: "Indeedee-F", + }, + morpeko: { + name: "Morpeko", + }, + morpekohangry: { + name: "Morpeko-Hangry", + }, + cufant: { + name: "Cufant", + }, + copperajah: { + name: "Copperajah", + }, + copperajahgmax: { + name: "Copperajah-Gmax", + }, + dracozolt: { + name: "Dracozolt", + }, + arctozolt: { + name: "Arctozolt", + }, + dracovish: { + name: "Dracovish", + }, + arctovish: { + name: "Arctovish", + }, + duraludon: { + name: "Duraludon", + }, + duraludongmax: { + name: "Duraludon-Gmax", + }, + dreepy: { + name: "Dreepy", + }, + drakloak: { + name: "Drakloak", + }, + dragapult: { + name: "Dragapult", + }, + zacian: { + name: "Zacian", + }, + zaciancrowned: { + name: "Zacian-Crowned", + }, + zamazenta: { + name: "Zamazenta", + }, + zamazentacrowned: { + name: "Zamazenta-Crowned", + }, + eternatus: { + name: "Eternatus", + }, + eternatuseternamax: { + name: "Eternatus-Eternamax", + }, + kubfu: { + name: "Kubfu", + }, + urshifu: { + name: "Urshifu", + }, + urshifurapidstrike: { + name: "Urshifu-Rapid-Strike", + }, + urshifugmax: { + name: "Urshifu-Gmax", + }, + urshifurapidstrikegmax: { + name: "Urshifu-Rapid-Strike-Gmax", + }, + zarude: { + name: "Zarude", + }, + zarudedada: { + name: "Zarude-Dada", + }, + missingno: { + name: "MissingNo.", + }, + syclar: { + name: "Syclar", + }, + syclant: { + name: "Syclant", + }, + revenankh: { + name: "Revenankh", + }, + embirch: { + name: "Embirch", + }, + flarelm: { + name: "Flarelm", + }, + pyroak: { + name: "Pyroak", + }, + breezi: { + name: "Breezi", + }, + fidgit: { + name: "Fidgit", + }, + rebble: { + name: "Rebble", + }, + tactite: { + name: "Tactite", + }, + stratagem: { + name: "Stratagem", + }, + privatyke: { + name: "Privatyke", + }, + arghonaut: { + name: "Arghonaut", + }, + kitsunoh: { + name: "Kitsunoh", + }, + cyclohm: { + name: "Cyclohm", + }, + colossoil: { + name: "Colossoil", + }, + krilowatt: { + name: "Krilowatt", + }, + voodoll: { + name: "Voodoll", + }, + voodoom: { + name: "Voodoom", + }, + scratchet: { + name: "Scratchet", + }, + tomohawk: { + name: "Tomohawk", + }, + necturine: { + name: "Necturine", + }, + necturna: { + name: "Necturna", + }, + mollux: { + name: "Mollux", + }, + cupra: { + name: "Cupra", + }, + argalis: { + name: "Argalis", + }, + aurumoth: { + name: "Aurumoth", + }, + brattler: { + name: "Brattler", + }, + malaconda: { + name: "Malaconda", + }, + cawdet: { + name: "Cawdet", + }, + cawmodore: { + name: "Cawmodore", + }, + volkritter: { + name: "Volkritter", + }, + volkraken: { + name: "Volkraken", + }, + snugglow: { + name: "Snugglow", + }, + plasmanta: { + name: "Plasmanta", + }, + floatoy: { + name: "Floatoy", + }, + caimanoe: { + name: "Caimanoe", + }, + naviathan: { + name: "Naviathan", + }, + crucibelle: { + name: "Crucibelle", + }, + crucibellemega: { + name: "Crucibelle-Mega", + }, + pluffle: { + name: "Pluffle", + }, + kerfluffle: { + name: "Kerfluffle", + }, + pajantom: { + name: "Pajantom", + }, + mumbao: { + name: "Mumbao", + }, + jumbao: { + name: "Jumbao", + }, + fawnifer: { + name: "Fawnifer", + }, + electrelk: { + name: "Electrelk", + }, + caribolt: { + name: "Caribolt", + }, + smogecko: { + name: "Smogecko", + }, + smoguana: { + name: "Smoguana", + }, + smokomodo: { + name: "Smokomodo", + }, + swirlpool: { + name: "Swirlpool", + }, + coribalis: { + name: "Coribalis", + }, + snaelstrom: { + name: "Snaelstrom", + }, + equilibra: { + name: "Equilibra", + }, + astrolotl: { + name: "Astrolotl", + }, + pokestarsmeargle: { + name: "Pokestar Smeargle", + }, + pokestarufo: { + name: "Pokestar UFO", + }, + pokestarufo2: { + name: "Pokestar UFO-2", + }, + pokestarbrycenman: { + name: "Pokestar Brycen-Man", + }, + pokestarmt: { + name: "Pokestar MT", + }, + pokestarmt2: { + name: "Pokestar MT2", + }, + pokestartransport: { + name: "Pokestar Transport", + }, + pokestargiant: { + name: "Pokestar Giant", + }, + pokestarhumanoid: { + name: "Pokestar Humanoid", + }, + pokestarmonster: { + name: "Pokestar Monster", + }, + pokestarf00: { + name: "Pokestar F-00", + }, + pokestarf002: { + name: "Pokestar F-002", + }, + pokestarspirit: { + name: "Pokestar Spirit", + }, + pokestarblackdoor: { + name: "Pokestar Black Door", + }, + pokestarwhitedoor: { + name: "Pokestar White Door", + }, + pokestarblackbelt: { + name: "Pokestar Black Belt", + }, + pokestarufopropu2: { + name: "Pokestar UFO-PropU2", + }, +}; diff --git a/sim/dex.ts b/sim/dex.ts index a168c5d727..63e6da0bac 100644 --- a/sim/dex.ts +++ b/sim/dex.ts @@ -102,6 +102,12 @@ interface DexTableData { Conditions: DexTable; TypeChart: DexTable; } +interface TextTableData { + Abilities: AnyObject; + Items: AnyObject; + Moves: AnyObject; + Pokedex: AnyObject; +} const Natures: {[k: string]: Nature} = { adamant: {name: "Adamant", plus: 'atk', minus: 'spa'}, @@ -155,6 +161,7 @@ export class ModdedDex { modsLoaded: boolean; dataCache: DexTableData | null; + textCache: TextTableData | null; formatsCache: DexTable | null; deepClone = Utils.deepClone; @@ -182,6 +189,7 @@ export class ModdedDex { this.modsLoaded = false; this.dataCache = null; + this.textCache = null; this.formatsCache = null; if (!isOriginal) { @@ -472,6 +480,35 @@ export class ModdedDex { return learnsetData; } + getDescs(table: keyof TextTableData, id: ID, dataEntry: AnyObject) { + if (dataEntry.shortDesc) { + return { + desc: dataEntry.desc, + shortDesc: dataEntry.shortDesc, + }; + } + const entry = this.loadTextData()[table][id]; + if (!entry) return null; + const descs = { + desc: '', + shortDesc: '', + }; + for (let i = this.gen; i < dexes['base'].gen; i++) { + const curDesc = entry[`descGen${i}`]; + const curShortDesc = entry[`shortDescGen${i}`]; + if (!descs.desc && curDesc) { + descs.desc = curDesc; + } + if (!descs.shortDesc && curShortDesc) { + descs.shortDesc = curShortDesc; + } + if (descs.desc && descs.shortDesc) break; + } + if (!descs.shortDesc) descs.shortDesc = entry.shortDesc || ''; + if (!descs.desc) descs.desc = entry.desc || descs.shortDesc; + return descs; + } + getMove(name?: string | Move): Move { if (name && typeof name !== 'string') return name; @@ -490,7 +527,9 @@ export class ModdedDex { id = /([a-z]*)([0-9]*)/.exec(id)![1] as ID; } if (id && this.data.Moves.hasOwnProperty(id)) { - move = new Data.Move({name}, this.data.Moves[id]); + const moveData = this.data.Moves[id]; + const moveTextData = this.getDescs('Moves', id, moveData); + move = new Data.Move({name}, moveData, moveTextData); if (move.gen > this.gen) { (move as any).isNonstandard = 'Future'; } @@ -655,7 +694,9 @@ export class ModdedDex { return item; } if (id && this.data.Items.hasOwnProperty(id)) { - item = new Data.Item({name}, this.data.Items[id]); + const itemData = this.data.Items[id]; + const itemTextData = this.getDescs('Items', id, itemData); + item = new Data.Item({name}, itemData, itemTextData); if (item.gen > this.gen) { (item as any).isNonstandard = 'Future'; } @@ -685,7 +726,9 @@ export class ModdedDex { return ability; } if (id && this.data.Abilities.hasOwnProperty(id)) { - ability = new Data.Ability({name}, this.data.Abilities[id]); + const abilityData = this.data.Abilities[id]; + const abilityTextData = this.getDescs('Abilities', id, abilityData); + ability = new Data.Ability({name}, abilityData, abilityTextData); if (ability.gen > this.gen) { (ability as any).isNonstandard = 'Future'; } @@ -1401,6 +1444,11 @@ export class ModdedDex { return {}; } + loadTextFile(name: string, exportName: string): AnyObject { + // eslint-disable-next-line @typescript-eslint/no-var-requires + return require(`${DATA_DIR}/text/${name}`)[exportName]; + } + includeMods(): ModdedDex { if (!this.isBase) throw new Error(`This must be called on the base Dex`); if (this.modsLoaded) return this; @@ -1425,6 +1473,17 @@ export class ModdedDex { return this; } + loadTextData() { + if (dexes['base'].textCache) return dexes['base'].textCache; + dexes['base'].textCache = { + Pokedex: this.loadTextFile('pokedex', 'PokedexText'), + Moves: this.loadTextFile('moves', 'MovesText'), + Abilities: this.loadTextFile('abilities', 'AbilitiesText'), + Items: this.loadTextFile('items', 'ItemsText'), + }; + return dexes['base'].textCache; + } + loadData(): DexTableData { if (this.dataCache) return this.dataCache; dexes['base'].includeMods(); diff --git a/tsconfig.json b/tsconfig.json index 864d9a0ce8..8026fc418d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,6 +16,7 @@ "include": [ "./config/*.ts", "./data/*", + "./data/text/*", "./data/mods/*/*", "./dev-tools/*.ts", "./lib/*",