diff --git a/data/mods/gen9ssb/abilities.ts b/data/mods/gen9ssb/abilities.ts index e31dd7a55..1dba7f1e4 100644 --- a/data/mods/gen9ssb/abilities.ts +++ b/data/mods/gen9ssb/abilities.ts @@ -7,8 +7,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { /* // Example abilityid: { - desc: "", // long description shortDesc: "", // short description, shows up in /dt + desc: "", // long description name: "Ability Name", // The bulk of an ability is not easily shown in an example since it varies // For more examples, see https://github.com/smogon/pokemon-showdown/blob/master/data/abilities.ts @@ -180,7 +180,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // A Quag To The Past quagofruin: { - shortDesc: "Active Pokemon without this Ability have their Def multiplied by 0.85. Ignores abilities.", + shortDesc: "Active Pokemon without this Ability have 0.85x Defense. Ignores abilities.", + desc: "Active Pokemon without this Ability have their Defense multiplied by 0.85x. This Pokemon's moves and their effects ignore certain Abilities of other Pokemon.", name: "Quag of Ruin", onStart(pokemon) { if (this.suppressingAbility(pokemon)) return; @@ -202,7 +203,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { gen: 9, }, clodofruin: { - shortDesc: "Active Pokemon without this Ability have their Atk multiplied by 0.85. Ignores stat changes.", + shortDesc: "Active Pokemon without this Ability have 0.85x Attack. Ignores stat changes.", + desc: "Active Pokemon without this Ability have their Attack multiplied by 0.85x. This Pokemon ignores other Pokemon's stat stages when taking or doing damage.", name: "Clod of Ruin", onStart(pokemon) { if (this.suppressingAbility(pokemon)) return; @@ -257,7 +259,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Arcueid marblephantasm: { - shortDesc: "Sets up Millennium Castle, effects vary with user's form.", + shortDesc: "Deoxys-Defense is immune to status moves/effects. Deoxys-Attack gains Fairy type.", + desc: "If this Pokemon is a Deoxys-Defense, it is immune to status moves and cannot be afflicted with any non-volatile status condition. If this Pokemon is a Deoxys-Attack, it gains an additional Fairy typing for as long as this Ability remains active.", name: "Marble Phantasm", onStart(source) { this.field.setWeather('millenniumcastle'); @@ -300,7 +303,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Arsenal onemore: { - shortDesc: "Super Effective and Critical hits cause this Pokemon to flinch.", + shortDesc: "Super effective and critical hits cause this Pokemon to flinch.", name: "One More", onHit(target, source, move) { const hitData = target.getMoveHitData(move); @@ -355,6 +358,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // ausma cascade: { shortDesc: "Switches out when below 50% HP. First re-entry gives +1 Def/SpD and +3 Spe.", + 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. When this Pokemon next enters the field, its Defense and Special Defense are boosted by 1 stage and its Speed is boosted by 3 stages.", name: "Cascade", onEmergencyExit(target) { if (target.volatiles['sigilsstorm']?.lostFocus) { @@ -433,7 +437,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Blitz blitzofruin: { - shortDesc: "Active Pokemon without this Ability have their Speed multiplied by 0.75. Also Dazzling.", + shortDesc: "Dazzling + active Pokemon without this Ability have 0.75x Speed.", + desc: "Active Pokemon without this Ability have their Speed multiplied by 0.75x. This Pokemon is protected from opposing priority moves.", name: "Blitz of Ruin", onStart(pokemon) { this.add('-ability', pokemon, 'Blitz of Ruin'); @@ -538,7 +543,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Clementine meltingpoint: { - shortDesc: "Fire moves change user to Water type. +2 Speed. Fire immunity.", + shortDesc: "+2 Speed. Fire moves change user to Water type. Fire immunity.", name: "Melting Point", onTryHit(target, source, move) { if (target !== source && move.type === 'Fire') { @@ -556,6 +561,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // clerica masquerade: { shortDesc: "(Mimikyu only) The first hit is blocked: instead, takes 1/8 damage and gets +1 Atk/Spe.", + 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, its Attack and Speed are boosted by 1 stage, and it loses 1/8 of its max HP. Confusion damage also breaks the disguise.", name: "Masquerade", onDamagePriority: 1, onDamage(damage, target, source, effect) { @@ -605,7 +611,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Clouds jetstream: { - shortDesc: "Delta Stream + Stealth Rock Immunity.", + shortDesc: "Delta Stream + Stealth Rock immunity.", name: "Jet Stream", onStart(source) { this.field.setWeather('deltastream'); @@ -635,7 +641,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Coolcodename firewall: { - shortDesc: "Burns opponents that attempt to use status moves on this Pokemon; Status move immunity.", + shortDesc: "Burns foes that attempt to use status moves on this Pokemon; Status move immunity.", name: "Firewall", onTryHit(target, source, move) { if (move.category === 'Status' && target !== source) { @@ -672,6 +678,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Dawn of Artemis formchange: { shortDesc: ">50% HP Necrozma, else Necrozma-Ultra. SpA boosts become Atk boosts and vice versa.", + desc: "If this Pokemon is a Necrozma, it changes to Necrozma-Ultra and switches its Attack and Special Attack stat stage changes if it has 1/2 or less of its maximum HP at the end of a turn. If Necrozma-Ultra's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Necrozma and switches its Attack and Special Attack stat stage changes.", name: "Form Change", onResidual(pokemon) { if (pokemon.baseSpecies.baseSpecies !== 'Necrozma' || pokemon.transformed || !pokemon.hp) return; @@ -721,9 +728,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // dhelmise coalescence: { - name: "Coalescence", - desc: "All moves heal 37% of damage dealt. Unfainted allies heal 5% HP at the end of each turn. If this Pokemon's HP is less than 25%, moves heal 114% of damage dealt, and allies restore 10% of their health.", shortDesc: "Moves drain 37%. Allies heal 5% HP. <25% HP, moves drain 114%, allies get 10%.", + desc: "All moves heal 37% of damage dealt. Unfainted allies heal 5% HP at the end of each turn. If this Pokemon's HP is less than 25%, moves heal 114% of damage dealt, and allies restore 10% of their health.", + name: "Coalescence", onModifyMove(move, pokemon, target) { if (move.category !== "Status") { // move.flags['heal'] = 1; // For Heal Block @@ -758,8 +765,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Elly stormsurge: { - shortDesc: "Rain+wind moves have perfect acc, 1.2x BP.", - desc: "Wind moves get perfect accuracy and become 20% stronger. Water moves are 50% stronger, Fire moves are 50% weaker.", + shortDesc: "On switch-in, summons rain that causes wind moves to have perfect accuracy and 1.2x Base Power.", + desc: "Summons the Storm Surge weather on switch-in. While Storm Surge is active, wind moves used by any Pokemon are perfectly accurate and become 20% stronger. Water moves are 50% stronger, Fire moves are 50% weaker.", name: "Storm Surge", onStart(source) { this.field.setWeather('stormsurge'); @@ -769,6 +776,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Emboar02 hogwash: { shortDesc: "Reckless; on STAB moves, also add Rock Head. On non-STAB moves, recoil is recovery.", + desc: "This Pokemon's attacks that would normally have recoil or crash damage have their power multiplied by 1.2. Does not affect Struggle. STAB recoil attacks used by this Pokemon do not deal recoil damage to the user. Non-STAB recoil attacks used by this Pokemon will heal the user instead of dealing recoil damage.", name: "Hogwash", onBasePowerPriority: 23, onBasePower(basePower, attacker, defender, move) { @@ -874,6 +882,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Goro Yagami illusionmaster: { shortDesc: "This Pokemon has an illusion until it falls below 33% health.", + name: "Illusion Master", onBeforeSwitchIn(pokemon) { pokemon.illusion = null; // yes, you can Illusion an active pokemon but only if it's to your right @@ -926,12 +935,11 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { pokemon.illusion = null; }, flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1}, - name: "Illusion Master", }, // havi mensiscage: { - shortDesc: "Immune to status and is considered to be asleep. 30% chance to disable when hit.", + shortDesc: "Immune to status and is considered to be asleep. 30% chance to Disable when hit.", name: "Mensis Cage", onDamagingHit(damage, target, source, move) { if (source.volatiles['disable']) return; @@ -1004,7 +1012,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // HoeenHero misspelled: { - shortDesc: "SpA 1.5x, Accuracy 0.8x, Never misses, only misspells moves.", + shortDesc: "Special Attack 1.5x, Accuracy 0.8x. Never misses, only misspells moves.", name: "Misspelled", onModifySpAPriority: 5, onModifySpA(spa) { @@ -1022,7 +1030,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Hydrostatics hydrostaticpositivity: { - shortDesc: "Sturdy + Storm Drain + Motor Drive + x1.3 accuracy of water & electric moves", + shortDesc: "Sturdy + Storm Drain + Motor Drive + 1.3x accuracy of Water & Electric moves", name: "Hydrostatic Positivity", onTryHit(target, source, move) { // Storm Drain @@ -1093,7 +1101,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Irpachuza mimeknowsbest: { - desc: "Uses a random screen/protect move on switch in.", + shortDesc: "When this Pokemon switches in, it uses a random screen or protect move.", + desc: "When this Pokemon switches in, it will randomly use one of Light Screen, Reflect, Protect, Detect, Barrier, Spiky Shield, Baneful Bunker, Safeguard, Mist, King's Shield, Magic Coat, or Aurora Veil.", name: "Mime knows best", onStart(target) { const randomMove = [ @@ -1110,8 +1119,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // J0rdy004 fortifyingfrost: { - name: "Fortifying Frost", shortDesc: "If Snow is active, this Pokemon's Sp. Atk and Sp. Def are 1.5x.", + name: "Fortifying Frost", onModifySpAPriority: 5, onModifySpA(spa, pokemon) { if (['hail', 'snow'].includes(pokemon.effectiveWeather())) { @@ -1128,6 +1137,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // kenn deserteddunes: { + shortDesc: "Summons Deserted Dunes until switch-out; Sandstorm + Rock weaknesses removed.", + desc: "On switch-in, the weather becomes Deserted Dunes, which removes the weaknesses of the Rock type from Rock-type Pokemon. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by the Desolate Land, Primordial Sea or Delta Stream Abilities.", + name: "Deserted Dunes", onStart(source) { this.field.setWeather('deserteddunes'); }, @@ -1146,9 +1158,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { this.field.clearWeather(); }, flags: {}, - name: "Deserted Dunes", - desc: "On switch-in, the weather becomes Deserted Dunes, which removes the weaknesses of the Rock type from Rock-type Pokemon. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by the Desolate Land, Primordial Sea or Delta Stream Abilities.", - shortDesc: "On switch-in, a strong Sandstorm begins until this Ability is not active in battle.", gen: 9, }, @@ -1236,8 +1245,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Kiwi surehitsorcery: { - name: "Sure Hit Sorcery", shortDesc: "No Guard + Prankster + Grassy Surge.", + name: "Sure Hit Sorcery", onAnyInvulnerabilityPriority: 1, onAnyInvulnerability(target, source, move) { if (move && (source === this.effectState.target || target === this.effectState.target)) return 0; @@ -1262,8 +1271,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Klmondo superskilled: { - name: "Super Skilled", shortDesc: "Skill Link + Multiscale.", + name: "Super Skilled", onModifyMove(move) { if (move.multihit && Array.isArray(move.multihit) && move.multihit.length) { move.multihit = move.multihit[1]; @@ -1283,8 +1292,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Kry flashfreeze: { + shortDesc: "Heatproof + If attacker's used offensive stat has positive stat changes, take 0.75x damage.", name: "Flash Freeze", - shortDesc: "Heatproof + foe's moves coming off of boosted attacking stat do 75% dmg.", onSourceModifyAtkPriority: 6, onSourceModifyAtk(atk, attacker, defender, move) { if (move.type === 'Fire') { @@ -1317,7 +1326,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Lasen idealizedworld: { - shortDesc: "Removes everything on Switchin.", + shortDesc: "Removes everything on switch-in.", + desc: "When this Pokemon switches in, all stat boosts, entry hazards, weathers, terrains, persistent weathers (such as Primordial Sea), and any other field effects (such as Aurora Veil) are removed from all sides of the field.", name: "Idealized World", onStart(pokemon) { const target = pokemon.side.foe; @@ -1348,8 +1358,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Lionyx enormoos: { - name: "EnorMOOs", shortDesc: "This Pokemon's Defense is used in damage calculation instead of Attack or Sp. Atk.", + name: "EnorMOOs", onModifyMove(move, pokemon, target) { if (move.category !== "Status") { move.overrideOffensiveStat = 'def'; @@ -1360,7 +1370,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Lumari pyrotechnic: { - shortDesc: "Critical hits are guaranteed when foe is burned.", + shortDesc: "Critical hits are guaranteed when the foe is burned.", name: "Pyrotechnic", onModifyCritRatio(critRatio, source, target) { if (target?.status === 'brn') return 5; @@ -1370,7 +1380,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Lunell lowtidehightide: { - shortDesc: "Switch-in sets Gravity, water immune, traps water type foes.", + shortDesc: "Switch-in sets Gravity, immune to Water, traps Water-type foes.", name: "Low Tide, High Tide", onStart(source) { this.field.addPseudoWeather('gravity', source); @@ -1436,6 +1446,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Mad Monty climatechange: { shortDesc: "1.5x SpA in sun, 1.5x Def/SpD in snow, heals 50% in rain. Changes forme/weather.", + desc: "If this Pokemon is a Castform, it changes the active weather and therefore this Pokemon's forme and set at the end of each turn, alternating between sun, rain, and snow in that order. When the weather is sun, this Pokemon's Special Attack is multiplied by 1.5x. When the weather becomes rain, this Pokemon heals for 1/2 of its maximum HP. When the weather is snow, this Pokemon's Defense and Special Defense are multiplied by 1.5x.", name: "Climate Change", onResidualOrder: 28, onResidualSubOrder: 2, @@ -1531,7 +1542,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // maroon builtdifferent: { - shortDesc: "Stamina + Normal type moves get +1 priority.", + shortDesc: "Stamina + Normal-type moves get +1 priority.", name: "Built Different", onDamagingHit(damage, target, source, effect) { this.boost({def: 1}); @@ -1589,7 +1600,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // MyPearl eoncall: { - shortDesc: "Changes into Latios after Status move, Latias after Special move.", + shortDesc: "Changes into Latios after status move, Latias after special move.", + desc: "If this Pokemon is a Latios, it changes into Latias after using a status move. If this Pokemon is a Latias, it changes into Latios after using a special attack.", name: "Eon Call", onAfterMove(source, target, move) { if (move.category === 'Status' && source.species.baseSpecies === 'Latias') { @@ -1626,6 +1638,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // nya adorablegrace: { shortDesc: "This Pokemon's secondary effects and certain items have their activation chance doubled.", + desc: "This Pokemon's secondary effects of attacks, as well as the effects of chance based items like Focus Band and King's Rock, have their activation chance doubled.", name: "Adorable Grace", onModifyMovePriority: -2, onModifyMove(move) { @@ -1642,8 +1655,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Nyx lasthymn: { + shortDesc: "Weakens incoming attacks by 10% for each Pokemon fainted.", name: "Last Hymn", - shortDesc: "Weakens incoming attacks for each Pokemon fainted.", onStart(pokemon) { if (pokemon.side.totalFainted) { this.add('-activate', pokemon, 'ability: Last Hymn'); @@ -1665,8 +1678,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Opple orchardsgift: { - name: "Orchard's Gift", shortDesc: "Summons Grassy Terrain. 1.5x Sp. Atk and Sp. Def during Grassy Terrain.", + name: "Orchard's Gift", onStart(pokemon) { if (this.field.setTerrain('grassyterrain')) { this.add('-activate', pokemon, 'Orchard\'s Gift', '[source]'); @@ -1693,6 +1706,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // PartMan ctiershitposter: { shortDesc: "-1 Atk/SpA, +1 Def/SpD. +1 Atk/SpA/Spe, -1 Def/SpD, Mold Breaker if 420+ dmg taken.", + desc: "When this Pokemon switches in, its Defense and Special Defense are boosted by 1 stage and its Attack and Special Attack are lowered by 1 stage. Once this Pokemon has taken total damage throughout the battle equal to or greater than 420 HP, it instead ignores the Abilities of opposing Pokemon when attacking and its existing stat stage changes are cleared. After this and whenever it gets sent out from this point onwards, this Pokemon boosts its Attack, Special Attack, and Speed by 1 stage, and lowers its Defense and Special Defense by 1 stage.", name: "C- Tier Shitposter", onDamage(damage, target, source, effect) { target.m.damageTaken ??= 0; @@ -1728,8 +1742,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // PenQuin poleonspyroquirk: { - name: "'Poleon's Pyro Quirk", shortDesc: "Burned Pokemon also become confused.", + name: "'Poleon's Pyro Quirk", onAnyAfterSetStatus(status, target, source, effect) { if (source !== this.effectState.target || target === source || effect.effectType !== 'Move') return; if (status.id === 'brn') { @@ -1748,9 +1762,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, // Pulse_kS - notorichalcumpulse: { + pulseluck: { shortDesc: "Mega Launcher + Super Luck.", - name: "Not Orichalcum Pulse", + name: "Pulse Luck", onBasePowerPriority: 19, onBasePower(basePower, attacker, defender, move) { if (move.flags['pulse']) { @@ -1829,8 +1843,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // R8 antipelau: { + shortDesc: "Boosts Sp. Atk by 2 and sets a 25% Wish upon switch-in.", name: "Anti-Pelau", - shortDesc: "Boosts Sp. Atk by 2 and sets a 25% wish upon switch-in.", onStart(target) { this.boost({spa: 2}, target); const wish = this.dex.getActiveMove('wish'); @@ -1856,8 +1870,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Rainshaft rainysaura: { + shortDesc: "On switch-in, this Pokemon summons rain. Boosts all Psychic-type damage by 33%.", name: "Rainy's Aura", - shortDesc: "Switch-in sets rain and boosts all Psychic-type damage by 33%.", onStart(source) { if (this.suppressingAbility(source)) return; for (const action of this.queue) { @@ -1879,6 +1893,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Ransei ultramystik: { shortDesc: "Stats 1.5x until hit super effectively + Magic Guard + Leftovers.", + desc: "This Pokemon can only be damaged by direct attacks. At the end of each turn, this Pokemon restores 1/16 of its maximum HP. This Pokemon's Attack, Defense, Special Attack, Special Defense, and Speed are boosted by 1.5x if it has not been hit by a super effective attack during this battle.", name: "Ultra Mystik", onStart(target) { if (!this.effectState.superHit) { @@ -2044,7 +2059,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Rumia youkaiofthedusk: { - shortDesc: "Defense: x2. Status moves: +1 Priority.", + shortDesc: "This Pokemon's Defense is doubled and its status moves gain +1 priority.", name: "Youkai of the Dusk", onModifyDefPriority: 6, onModifyDef(def) { @@ -2062,6 +2077,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // SexyMalasada ancestryritual: { shortDesc: "Recoil heals. While below 50% HP, changes to Typhlosion-Hisui.", + desc: "Moves that would deal recoil or crash damage, aside from Struggle, heal this Pokemon for the corresponding amount instead. If this Pokemon is a Typhlosion, it changes to Typhlosion-Hisui if it has 1/2 or less of its maximum HP at the end of a turn. If Typhlosion-Hisui's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Typhlosion.", name: "Ancestry Ritual", onDamage(damage, target, source, effect) { if (effect.id === 'recoil') { @@ -2275,7 +2291,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Swiffix stinky: { - desc: "10% chance to either poison or paralyze the Pokemon on hit.", + desc: "10% chance to either poison or paralyze the target on hit.", name: "Stinky", onModifyMovePriority: -1, onModifyMove(move) { @@ -2397,9 +2413,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Two of Roses aswesee: { - name: "As We See", - desc: "Once per turn, when any active Pokemon has a stat boosted, this Pokemon has a 50% chance of copying it and a 15% chance to raise another random stat.", shortDesc: "1x per turn: Stat gets boosted -> 50% chance to copy, 15% to raise another.", + desc: "Once per turn, when any active Pokemon has a stat boosted, this Pokemon has a 50% chance of copying it and a 15% chance to raise another random stat.", + name: "As We See", onFoeAfterBoost(boost, target, source, effect) { // Opportunist if (this.randomChance(1, 2)) { if (effect && ['As We See', 'Mirror Herb', 'Opportunist'].includes(effect.name)) return; @@ -2460,7 +2476,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // umuwo soulsurfer: { name: "Soul Surfer", - shortDesc: "Rain on entry; Speed: x2 in Electric Terrain.", + shortDesc: "Drizzle + Surge Surfer.", onStart(source) { this.field.setWeather('raindance'); }, @@ -2486,7 +2502,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Venous concreteoverwater: { - shortDesc: "+1 Def/Spd before getting hit by a Super Effective move", + shortDesc: "Gains +1 Defense and Sp. Def before getting hit by a super effective move.", name: "Concrete Over Water", onTryHit(target, source, move) { if (target === source || move.category === 'Status') return; @@ -2499,7 +2515,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Violet seenoevilhearnoevilspeaknoevil: { - shortDesc: "Dark Immunity; Cornerstone: Sound immunity. Wellspring: Moves never miss. Hearthflame: 1.3x bp vs male Pokemon.", + shortDesc: "Dark immune; Cornerstone: Sound immune. Wellspring: Moves never miss. Hearthflame: 1.3x BP vs male.", + desc: "This Pokemon is immune to Dark-type attacks. If this Pokemon is Ogerpon-Cornerstone, it is immune to sound moves. If this Pokemon is Ogerpon-Wellspring, its moves will never miss. If this Pokemon is Ogerpon-Hearthflame, its damage against male targets is multiplied by 1.3x.", name: "See No Evil, Hear No Evil, Speak No Evil", onTryHit(target, source, move) { if (target !== source && move.flags['sound'] && target.species.id.startsWith('ogerponcornerstone')) { @@ -2559,7 +2576,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // vmnunes wildgrowth: { - shortDesc: "Attacking moves also inflict Leech Seed on foes.", + shortDesc: "Attacking moves also inflict Leech Seed on the target.", name: "Wild Growth", onModifyMovePriority: -1, onAfterMove(source, target, move) { @@ -2572,7 +2589,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // WarriorGallade primevalharvest: { shortDesc: "Sun: Heal 1/8 max HP, random berry if no item. Else 50% random berry if no item.", - desc: "In Sun, the user restores 1/8th of its max HP at the end of the turn and has a 100% chance to get a random berry if it has no item. Outside of sun, there is a 50% chance to get a random berry. Berry given will be one of: Cheri, Chesto, Pecha, Lum, Aguav, Liechi, Ganlon, Petaya, Apicot, Salac, Micle, Lansat, Enigma, Custap, Kee or Maranga.", + desc: "In Sun, the user restores 1/8th of its maximum HP at the end of the turn and has a 100% chance to get a random berry if it has no item. Outside of sun, there is a 50% chance to get a random berry. Berry given will be one of: Cheri, Chesto, Pecha, Lum, Aguav, Liechi, Ganlon, Petaya, Apicot, Salac, Micle, Lansat, Enigma, Custap, Kee or Maranga.", name: "Primeval Harvest", onResidualOrder: 28, onResidualSubOrder: 2, @@ -2598,7 +2615,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // WigglyTree treestance: { - shortDesc: "No recoil; 3/4 damage from supereffective attacks.", + shortDesc: "Rock Head + Filter.", name: "Tree Stance", onDamage(damage, target, source, effect) { if (effect.id === 'recoil') { @@ -2617,7 +2634,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // xy01 panic: { - shortDesc: "Lowers the opponent's Atk and Sp. Atk by 1 upon switch-in.", + shortDesc: "Lowers the foe's Atk and Sp. Atk by 1 upon switch-in.", name: "Panic", onStart(pokemon) { let activated = false; @@ -2638,8 +2655,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Yellow Paint yellowmagic: { - shortDesc: "+25% HP, +1 SpA, +1 Spe, Charge, or Paralyzes attacker when hit by an Electric move; Electric immunity.", - desc: "This Pokemon is immune to Electric type moves. When this Pokemon is hit by one, it either: restores 25% of its max HP, boosts Sp. Atk by 1 stage, boosts Speed by 1 stage, begins charging or paralyzes the attacker.", + shortDesc: "+25% HP, +1 SpA, +1 Spe, Charge, or paralyzes attacker when hit by an Electric move; Electric immunity.", + desc: "This Pokemon is immune to Electric type moves. When this Pokemon is hit by one, it either: restores 25% of its maximum HP, boosts its Special Attack by 1 stage, boosts its Speed by 1 stage, gains the Charge effect, or paralyzes the attacker.", name: "Yellow Magic", onTryHit(target, source, move) { if (target !== source && move.type === 'Electric') { @@ -2676,7 +2693,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // YveltalNL heightadvantage: { - shortDesc: "If this Pokemon's height is more than that of the opponent, lowers the opponent's Atk and Sp. Atk by 1.", + shortDesc: "If this Pokemon's height is more than that of the foe, -1 to foe's Attack/Sp. Atk.", name: "Height Advantage", onStart(pokemon) { let activated = false; @@ -2727,7 +2744,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // zoro ninelives: { - shortDesc: "Twice per battle, Umbreon will survive a lethal hit with 1 HP remaining, regardless of the HP it was at.", + shortDesc: "Twice per battle, this Pokemon will survive a lethal hit with 1 HP remaining, regardless of HP.", name: "Nine Lives", onTryHit(pokemon, target, move) { if (move.ohko) { diff --git a/data/mods/gen9ssb/conditions.ts b/data/mods/gen9ssb/conditions.ts index d80db60b2..5f1a9e159 100644 --- a/data/mods/gen9ssb/conditions.ts +++ b/data/mods/gen9ssb/conditions.ts @@ -2073,7 +2073,7 @@ export const Conditions: {[k: string]: ModdedConditionData & {innateName?: strin if (pokemon.illusion) return; changeSet(this, pokemon, ssbSets['sharp_claw-Rough']); } else { - this.add(`c:|${getName('sharp_claw')}|brb, getting my sister C:`); + this.add(`c:|${getName('sharp_claw')}|brb, getting my sister c:`); if (pokemon.illusion) return; changeSet(this, pokemon, ssbSets['sharp_claw']); } diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index 5feee1d66..16b5b3843 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -9,8 +9,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, // a number or true for always hits basePower: 100, // Not used for Status moves, base power of the move, number category: "Physical", // "Physical", "Special", or "Status" - desc: "", // long description shortDesc: "", // short description, shows up in /dt + desc: "", // long description name: "Move Name", gen: 8, pp: 10, // unboosted PP count @@ -47,7 +47,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 80, category: "Physical", shortDesc: "50% +1 Atk, 50% +1 Def, eats berry.", - desc: "Almost always goes first. This move has a 50% chance to raise the user's Attack and a 50% chance to raise the user's Defense. After using the move, the user eats its berry if holding one.", + desc: "Nearly always moves first. This move has a 50% chance to raise the user's Attack by 1 stage and a 50% chance to raise the user's Defense by 1 stage. After using the move, the user eats its berry if holding one.", name: "Equip Aegislash", gen: 9, pp: 10, @@ -95,6 +95,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "User protects, burns itself, and gains +2 Spe/+1 Atk.", + desc: "Nearly always moves first. The user is protected from most attacks made by other Pokemon during this turn. This move burns the user, raises their Speed by 2 stages, and raises their Attack by 1 stage. This move fails entirely if the user moved last this turn or if the foe switches out, and this move has an increasing chance to fail when used consectively.", name: "Smelt", gen: 9, pp: 10, @@ -123,6 +124,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 140, category: "Special", shortDesc: "Lowers user's Def, Sp. Atk and Speed by 2 stages.", + desc: "Lowers the user's Defense, Special Attack, and Speed by 2 stages.", name: "I. AM. ATOMIC.", gen: 9, pp: 5, @@ -154,6 +156,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Haze + Parting Shot + Replacement heals 33%.", + desc: "Resets the stat stages of all active Pokemon to 0, then lowers the foe's Attack and Special Attack by 1 stage each while switching out. The Pokemon that switches in heals 33% of its maximum HP. This move bypasses all Protect-like effects.", name: "Free Switch Button", gen: 9, pp: 10, @@ -200,6 +203,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Leech Seed + Heal Block + Infestation", + desc: "Applies the effects of Leech Seed, Heal Block, and partial trapping to the target, causing the user to steal 1/8 of the target's maximum HP at the end of each turn until the target switches out, preventing the target from using any moves, items, or Abilities that heal HP for 5 turns, and preventing the target from switching out while damaging it for an additional 1/8 of its maximum HP at the end of each turn for 4-5 turns. If the target uses Baton Pass, the effects of Leech Seed, Heal Block, and partial trapping will remain in effect for the replacement.", name: "Spicier Extract", pp: 15, priority: 0, @@ -229,6 +233,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Uses a random damaging, non-resisted move.", + desc: "A random damaging non-resisted move is selected for use, other than moves uncallable by Metronome and moves originating from Super Staff Bros Ultimate.", name: "Scumhunt", pp: 10, priority: 0, @@ -276,7 +281,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Recycles held berry and boosts 2 random stats (-acc/eva) by 1.", + shortDesc: "Recycles berry, +1 to 2 random stats (-acc/eva).", + desc: "The user regains the item it last used, and then boosts two random stats by 1 stage each, except Accuracy and Evasion. If the user is currently holding an item or has had their item forcibly removed, the stat boosts occur without the Recycle effect.", name: "Extra Course", gen: 9, pp: 5, @@ -326,7 +332,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Confuses the foe and deals 1/6th of its max HP for 4-5 turns.", + shortDesc: "Confuses foe & deals 1/6th max HP for 4-5 turns.", + desc: "Causes the target to become confused. If this move is successful, the target takes damage equal to 1/6th of its maximum HP at the end of each turn for 4-5 turns.", name: "Tori's Stori", gen: 9, pp: 5, @@ -370,7 +377,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Quag: Protect; Clod: Recover. Switch to other sire.", + shortDesc: "Quag: Protect; Clod: Recover. Switch sires.", + desc: "Nearly always moves first. If the user is Quagsire, the user is protected from most attacks made by other Pokemon during this turn and then transforms into Clodsire. If the user is Clodsire, the user recovers 1/2 of its maximum HP and then transforms into Quagsire. This move fails if the user is neither Quagsire nor Clodsire.", name: "Sire Switch", gen: 9, pp: 20, @@ -418,7 +426,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Cures status conditions and heals 25% HP for entire party except the user.", + shortDesc: "Cures team status, all but user heal 25% max HP.", + desc: "Z-Move that requires Lilligantium Z. Every Pokemon in the user's party is cured of its non-volatile status condition. With the exception of the user, every Pokemon in the user's party heals for 1/4 of their maximum HP. This effect cannot revive fainted Pokemon.", name: "Aura Rain", pp: 1, priority: 0, @@ -457,7 +466,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Changes user's forme, effects vary with forme.", - desc: "If Deoxys-Defense, change to Deoxys-Attack and use a random move from its moveset. If Deoxys-Attack, change to Deoxys-Defense and boost 2 random stats by 1 stage.", + desc: "If the user is Deoxys-Defense, it transforms into Deoxys-Attack and uses a random move from its moveset. If the user is Deoxys-Attack, it transforms into Deoxys-Defense and boosts two random stats by 1 stage each, except Accuracy and Evasion.", name: "Funny Vamp", gen: 9, pp: 10, @@ -531,7 +540,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 90, category: "Special", - shortDesc: "Changes the move's and user's type to deal super effective damage. 25% false positive rate.", + shortDesc: "Change move/user's type to SE. 25% NVE instead.", + desc: "Randomly changes the move's and user's type to deal super effective damage. There is a 25% chance that this move has a false positive and changes the move's and user's type to deal not very effective damage instead.", name: "Automated Response", pp: 20, priority: 0, @@ -583,7 +593,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 80, category: "Special", shortDesc: "+2 SpA for 2 turns.", - desc: "The user's Sp. Atk is boosted by 2 stages for 2 turns, and is restored to its original value at the end. Does not stack with itself.", + desc: "The user's Special Attack is boosted by 2 stages for 2 turns and is restored to its original value at the end. Does not stack with itself.", name: "Anyone can be killed", pp: 10, priority: 0, @@ -618,6 +628,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 90, category: "Special", shortDesc: "+1 Defense if Protosynthesis is active.", + desc: "Raises the user's Defense by 1 stage if the user is under the effect of the Protosynthesis Ability.", name: "Season's Smite", gen: 9, pp: 10, @@ -646,7 +657,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 123, category: "Special", - shortDesc: "If user is hit, sets Trick Room. If not, random effect happens.", + shortDesc: "If hit, Trick Room. Else, attack+random effect.", + desc: "Begins to charge an attack at the start of the turn. Nearly always moves last. If the user is directly damaged while charging, Trick Room is set instead, making the slower Pokemon move first for 5 turns. The Trick Room effect occurs before Cascade if both would activate on the same turn. If the user was not directly damaged while charging, the attack executes and one random effect will occur from the following: poison; burn; paralysis; confusion; the user recovers HP equal to 75% of damage dealt; all entry hazards are removed from the field; a random entry hazard is set, except G-Max Steelsurge; two random stats of the user are raised by 1 stage each, except Accuracy and Evasion; two random stats of the target are lowered by 1 stage each, except Accuracy and Evasion; or the target transforms into a Fennekin with Ember, Scratch, and Growl until they switch out.", name: "Sigil's Storm", pp: 5, priority: -6, @@ -758,6 +770,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Raises the user's Sp. Atk by 2 and Speed by 1.", + desc: "The user's Special Attack is boosted by 2 stages and its Speed is boosted by 1 stage.", name: "Prep Time", pp: 5, priority: 0, @@ -782,6 +795,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 105, category: "Special", shortDesc: "40% chance to force the foe out.", + desc: "Nearly always moves last. If this attack is successful, there is a 40% chance that the target is forced to switch out and be replaced with a random unfainted ally.", name: "yu-gi-oh reference", pp: 5, priority: -6, @@ -807,7 +821,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 50, category: "Physical", - shortDesc: "+3 priority if target uses custom move. +3 Atk if it KOs.", + shortDesc: "+3 prio if foe uses custom move. +3 Atk on KO.", + desc: "This move will nearly always move first (+3 priority) if the target would use a custom move from Super Staff Bros Ultimate this turn. Raises the user's Attack by 3 stages if this move knocks out the target.", name: "Buzzer Stinger Counter", gen: 9, pp: 10, @@ -834,7 +849,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Eats berry, gives random new berry, heals 25%.", - desc: "The user eats its berry, heals 25% of its max HP and gets a random berry that is one of: Iapapa, Leppa, Lum, Maranga, Ganlon, Starf, Liechi or Enigma.", + desc: "The user consumes its held berry if it is holding one, heals 25% of its maximum HP, and then gains a random item from the following: Iapapa Berry, Leppa Berry, Lum Berry, Maranga Berry, Ganlon Berry, Starf Berry, Liechi Berry, or Enigma Berry.", name: "what kind", gen: 9, pp: 10, @@ -865,7 +880,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "80%: Change into Lunala, else Solgaleo.", - desc: "This move has an 80% chance of transforming the user into Lunala, gaining the effect of Focus Energy. It has a 20% chance of transforming the user into Solgaleo, boosting its attack by 1 stage, trapping it and gaining the effect of Perish Song.", + desc: "This move has an 80% chance of transforming the user into Lunala, gaining the effect of Focus Energy. It has a 20% chance of instead transforming the user into Solgaleo, boosting its Attack by 1 stage, preventing it from switching out, and causing it to faint after three turns, akin to Perish Song.", name: "Hack Check", gen: 9, pp: 5, @@ -897,7 +912,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Protects user, disables foes that strike the protection.", + shortDesc: "Protects user, Disables attackers.", + desc: "Nearly always moves first. The user is protected from most attacks made by other Pokemon during this turn. If a targeted move is blocked during this effect, the move used by the target is disabled and cannot be selected for 4 turns. This move cannot disable more than one move at a time. This move fails if the user moves last, and has an increasing chance to fail when used consecutively.", name: "Veto", gen: 9, pp: 10, @@ -956,7 +972,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 95, basePower: 100, category: "Special", - shortDesc: "Combines Fire in its type effectiveness; Ignores weather.", + shortDesc: "Fire + Water-type attack. Ignores weather.", + desc: "This move combines Fire in its type effectiveness against the target and does not increase or decrease damage dealt based on the current weather condition.", name: "Geyser Blast", gen: 9, pp: 10, @@ -978,7 +995,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Wake up->Wish+Sub->Baton Pass.", + shortDesc: "Wake up -> Wish + Substitute -> Baton Pass.", + desc: "The user wakes up if it is asleep. Then, the user uses the moves Wish, Substitute, and Baton Pass in that order. If the user does not have enough HP to set a Substitute, the rest of the effects of the move will still occur.", name: "Baker's Douze Off", gen: 9, pp: 15, @@ -1016,9 +1034,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Protects user, changes set. Can't be used consecutively.", + shortDesc: "Protects, changes set. Can't use twice in a row.", // it was easier to do it this way rather than implement failing on consecutive uses - desc: "The user protects itself from most move, gains varying stat boosts and changes its moveset based on the role it picks. Fast Attacker: +2 Attack, +4 Speed with Hyper Drill, Combat Torque, Extreme Speed. Bulky Setup: +1 Attack, +1 Defense, +2 Sp. Def with Coil, Body Slam, Heal Order. Bulky Support: +2 Defense, +2 Sp. Def with Heal Order, Any two of Ceaseless Edge, Stone Axe, Mortal Spin, G-Max Steelsurge. Wallbreaker: +6 Sp. Atk with Blood Moon.", + desc: "Nearly always moves first. This move cannot be selected if it was the last move used by this Pokemon. The user is protected from most attacks made by other Pokemon during this turn, and all of the user's stat changes are set to 0. Then, the user gains varying stat boosts and changes its moveset based on the role it picks. Fast Attacker: +2 Attack, +4 Speed with Hyper Drill, Combat Torque, and Extreme Speed. Bulky Setup: +1 Attack, +1 Defense, +2 Special Defense with Coil, Body Slam, and Heal Order. Bulky Support: +2 Defense, +2 Special Defense with Heal Order and any two of Ceaseless Edge, Stone Axe, Mortal Spin, and G-Max Steelsurge. Wallbreaker: +6 Special Attack with Blood Moon.", name: "Role System", gen: 9, pp: 40, @@ -1104,6 +1122,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 110, category: "Special", shortDesc: "Clear Smog + Taunt + Embargo.", + desc: "If this move is successful, the target has all stat stages reset to 0, cannot use status moves for the next 3 turns, and cannot gain any effect from held items for 5 turns. Z-Crystals and forme-changing items are unaffected.", name: "Outage", gen: 9, pp: 5, @@ -1140,7 +1159,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 90, category: "Physical", - shortDesc: "Sets Grassy Terrain before attack. -50% HP if it misses.", + shortDesc: "Sets Grassy Terrain before. -50% HP on miss.", + desc: "Before attacking, this move will set Grassy Terrain for 5 turns. If the attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage.", name: "De Todas las Flores", gen: 9, pp: 15, @@ -1172,7 +1192,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return 20; }, category: "Physical", - shortDesc: "60 BP Bite -> Toxic -> 2-5 multihit w/ 20 BP each.", + shortDesc: "60 BP Bite->Toxic->2-5 multihit w/ 20 BP each.", + desc: "The user calls the following effects in order: a 100% accurate 60 Base Power Poison-type attack with a 20% chance to cause the target to flinch; 100% accurate Toxic; and 2-5 90% accurate 20 Base Power Poison-type attacks.", name: "Summon Monster VIII: Fiendish monstrous Piplupede, Colossal", gen: 9, pp: 15, @@ -1226,6 +1247,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "User switches, passing stat changes and more.", + 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.", name: "Giveaway!", gen: 9, pp: 10, @@ -1253,6 +1275,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 100, category: "Special", shortDesc: "Phys if Atk > SpA. Flips user.", + desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. If this move is successful and the user is an Avalugg, it either gains or loses the Flipped condition, changing its moveset and base stats. When under the Flipped condition, Avalugg's Base Stats are 95/46/44/184/116/95 and its moveset changes to Earth Power, Volt Switch, and Heal Pulse. This move is super effective against Kennedy.", name: "(╯°o°)╯︵ ┻━┻", pp: 10, priority: 0, @@ -1297,6 +1320,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Curses and traps foe. User loses 1/2 HP.", + desc: "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 and becoming unable to switch out.", name: "Stockholm Syndrome", pp: 5, priority: 0, @@ -1328,7 +1352,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 70, category: "Physical", - shortDesc: "Tailwind + U-turn.", + shortDesc: "User sets Tailwind and switches out.", + desc: "If this attack 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, and its party members have their Speed doubled for 4 turns.", name: "Winds of Change", pp: 15, priority: 0, @@ -1354,7 +1379,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "70% boost Spa/Spe by 1 & Focus Energy, else lose boosts.", + shortDesc: "70% +1 SpA/Spe & Focus Energy, else lose boosts.", + desc: "This move has a 70% chance to boost the user's Special Attack and Speed by 1 stage and grant the user an increased chance of dealing critical hits. If it does not do this, the user's positive stat stage changes will instead be removed.", name: "Haxer's Will", gen: 9, pp: 15, @@ -1386,6 +1412,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 20, category: "Physical", shortDesc: "Hits 4-5 times. +1 priority under Grassy Terrain.", + desc: "Usually moves first when Grassy Terrain is in effect. This move has a 50% chance to hit 4 times and a 50% chance to hit 5 times.", name: "Monkey Beat Up", gen: 9, pp: 10, @@ -1414,7 +1441,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 80, category: "Special", name: "Magical Focus", - shortDesc: "Fire/Electric/Ice depending on turn. Sets Reflect. Cannot be used by Necrozma-Ultra.", + shortDesc: "Move type cycles. Sets Reflect. Fail if Ultra.", + desc: "This move's type cycles between Fire, Electric, and Ice depending on the current turn number, starting at Fire on turn 1, Electric on turn 2, Ice on turn 3, and repeating this pattern on future turns. For 5 turns, all Pokemon on the user's side of the field take 0.5x damage from physical attacks. This move fails if the user is Necrozma-Ultra.", pp: 10, priority: 0, flags: {protect: 1, mirror: 1}, @@ -1458,7 +1486,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "User heals 25% HP; Target +2 Atk/SpA + Taunt.", + shortDesc: "User heals 25% HP; Target: +2 Atk/SpA + Taunt.", + desc: "The user heals 1/4 of its maximum HP. The target's Attack and Special Attack are raised by 2 stages each, and the target cannot use status moves for 3 turns.", name: "Super Ego Inflation", gen: 9, pp: 5, @@ -1495,6 +1524,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, category: "Physical", shortDesc: "If foe is switching out, 2x power. Doesn't KO.", + 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 Flip Turn, Parting Shot, Teleport, 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. Leaves the target with at least 1 HP.", name: "Trivial Pursuit", pp: 5, priority: 0, @@ -1560,7 +1590,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: ">1/2 HP: Damage orb on foe side. Else heal orb on user side.", + shortDesc: ">50% HP:Set orb that damages foes.<50% heals you.", + desc: "If the user's HP is at or above 50% of its maximum HP, a damaging orb is set on the opponent's side of the field, dealing 50 points of damage at the end of each turn for 4 turns. If the user's HP is below 50% of its maximum HP, a healing orb is set on the user's side of the field, healing the active Pokemon for 65 HP at the end of each turn until it has healed a total of 300 HP. This move fails if an orb is already in place on the side an orb would be set.", name: "Biotic Orb", gen: 9, pp: 10, @@ -1598,7 +1629,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 95, basePower: 20, category: "Special", - shortDesc: "Hits 5 times. In order, each hit's type is Fire, Ice, Poison, Electric, Poison. Skips hits if a foe would be immune.", + shortDesc: "5 hits: Fire, Ice, Poison, Elec, Poison. Is STAB.", + desc: "This move hits 5 times. The first hit is Fire-type, the second is Ice-type, the third is Poison-type, the fourth is Electric-type, and the fifth is Poison-type. Each move checks accuracy individually, and if one hit misses, the attack stops. If the target is immune to one or more of the hits, the rest will still execute as normal. This move will always have Same-Type Attack Bonus.", name: "Breath of Tiamat", pp: 20, priority: 0, @@ -1648,7 +1680,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Charges first turn. Second turn +2 Atk/Def, 25% recovery for 3 turns. Can't stack.", + shortDesc: "Charges.Turn 2: +2 Atk/Def, heal 25% for 3 turns.", + desc: "Boosts the user's Attack and Defense by 2 stages, and heals the user for 1/4 of its maximum HP at the end of each turn for 3 turns. This attack charges on the first turn and executes on the second. This move will fail if it is already in effect.", name: "Snack Time", pp: 10, priority: 0, @@ -1688,8 +1721,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Heals 50% HP and cures status. 7/8 chance of Boiled forme, 1/8 for Beefed forme.", - desc: "The user heals 50% of its max HP and cures status. It has a 7/8 chance of becoming Boiled forme, where it gains Speed Boost, replacing Teatime with Steam Eruption; and a 1/8 chance for Beefed forme, where it gains Stamina, replaceing Teatime with Body Press.", + shortDesc: "Recover & Refresh. 7/8 get Boiled, 1/8 Beefed.", + desc: "The user heals 1/2 of its maximum HP and cures its non-volatile status condition. The user has a 7/8 chance of gaining the Boiled condition, removing all previously-added extra types, adding a Water typing to the user, replacing its ability with Speed Boost, and replacing Teatime or Body Press with Steam Eruption if it exists on the set; and a 1/8 chance of gaining the Beefed condition, removing all previously-added extra types, adding a Fighting typing to the user, replacing its ability with Stamina, and replacing Teatime or Steam Eruption with Body Press.", name: "Tea Party", pp: 5, priority: 0, @@ -1758,7 +1791,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 20, category: "Special", - shortDesc: "Hits 5x. Heals 20% of damage dealt on each hit.", + shortDesc: "5 hits. Heals 20% of damage dealt on each hit.", + desc: "This move hits 5 times. On each hit, the user recovers 1/5 of the HP lost by the target, rounded half up.", name: "Sustained Winds", pp: 10, priority: 0, @@ -1779,6 +1813,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 80, category: "Physical", shortDesc: "Has 33% recoil. Switch after using.", + desc: "If the target lost HP, the user takes recoil damage equal to 33% of the HP lost by the target, rounded half up, but not less than 1 HP. 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.", name: "Insert boar pun here", pp: 20, priority: 0, @@ -1803,6 +1838,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Physical", shortDesc: "KOes foe + user if ally was KOed prev. turn.", + desc: "If one of the user's party members fainted last turn, this move results in a guaranteed KO for both the target and the user. This move can hit Normal-type Pokemon. Fails if one of the user's party members did not faint last turn.", name: "A Soul for a Soul", pp: 5, priority: 1, @@ -1830,7 +1866,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Creates a substitute and inflicts Leech Seed on the foe.", + shortDesc: "Creates a Substitute and sets Leech Seed.", + 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 Pokemon at the user's position steals 1/8 of the target's maximum HP, rounded down, at the end of each turn. If either of the affected Pokemon uses Baton Pass, its respective effect will remain for its replacement.", name: "Solidarity", pp: 15, priority: 0, @@ -1868,6 +1905,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Stat changes: inverts, else Taunt. User switches.", + desc: "If the target has any stat stage changes, the target's positive stat stages become negative and vice versa. If the target does not have any stat stage changes, the target cannot use status moves for 3 turns. 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.", name: "Rigged Dice", pp: 10, priority: 0, @@ -1903,7 +1941,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 90, category: "Physical", - shortDesc: "Confuses the foe. Confusion self-hits raise user's Atk/Def.", + shortDesc: "Confuses the foe. Foe self-hits: +1 Atk/Def.", + desc: "Confuses the target. When the target hits itself in confusion from this move, the user's Attack and Defense are boosted by 1 stage.", name: "Cringe Dad Joke", pp: 10, priority: 0, @@ -1929,7 +1968,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "+1 Attack, +1 Speed. Protects, sets Toxic Spikes. First turn only. Loses poison type.", + shortDesc: "Turn 1 out: DDance, Protect, TSpikes, -Psn type.", + desc: "Nearly always moves first. Protects the user from most attacks made by other Pokemon this turn, removes the user's Poison typing if it has one, and boosts the user's Attack and Speed by 1 stage. Sets one layer of Toxic Spikes on the opposing side of the field, poisoning all grounded, non-Poison-type Pokemon that switch in. Fails unless it's the user's first turn on the field.", name: "Puffy Spiky Destruction", pp: 5, priority: 0, @@ -1970,7 +2010,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 75, category: "Physical", - shortDesc: "Typeless. Sets Gravity.", + shortDesc: "Sets Gravity.", + desc: "Sets Gravity for 5 turns, multiplying the evasiveness of all active Pokemon by 0.6 and grounding them.", name: "Flat out falling", pp: 5, priority: 0, @@ -1997,7 +2038,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 95, basePower: 10, category: "Physical", - shortDesc: "Salt cures the target and sets a layer of spikes.", + shortDesc: "Applies Salt Cure and sets a layer of spikes.", + desc: "Causes damage to the target equal to 1/8 of its maximum HP (1/4 if the target is Steel or Water type), rounded down, at the end of each turn during effect. This effect ends when the target is no longer active. Sets a layer of Spikes on the target's side of the field, damaging grounded foes when they switch in.", name: "Wiggling Strike", gen: 9, pp: 10, @@ -2031,6 +2073,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 40, category: "Physical", shortDesc: "-1 Def/SpD, gives Slow Start, user switches.", + desc: "Lowers the target's Defense and Special Defense by 1 stage and replaces the target's ability with Slow Start. 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.", name: "Shadow Ambush", gen: 9, pp: 15, @@ -2060,7 +2103,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Clear target stats+copies neg stats+inverts on user.", + shortDesc: "Clear foe stats+copies neg stats+inverts on user.", + desc: "Resets the stat stages of the target to 0. Then, the target receives a copy of the user's negative stat stage changes, and the user's negative stat stage changes become positive.", name: "Hasty Revolution", pp: 10, priority: 4, @@ -2097,7 +2141,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 70, category: "Special", - shortDesc: "Disables the target's last move and pivots out.", + shortDesc: "Disables the target's last move and switches.", + desc: "The target's last used move is disabled and cannot be selected for 4 turns. This move cannot disable more than one move at a time. The user then 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.", name: "Augur of Ebrietas", pp: 10, priority: 0, @@ -2119,7 +2164,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "A description has not been added yet", + shortDesc: "+2, -2 to random stats, small chance of harm.", + desc: "The user boosts a random stat by 2 stages, and the user lowers a random stat by 2 stages. These can be the same stat, and cannot include Accuracy or Evasion. Independently, there is a 10% chance for the user to lose 10% of their maximum HP, and there is a 5% chance for the user to gain a random non-volatile status condition.", name: "Testing in Production", gen: 9, pp: 5, @@ -2197,8 +2243,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - desc: "A party member is selected and faints, raising the user's Attack, Special Attack, and Speed by 1 if the party member's hp is below 33%, by 2 if the party member's hp is between 33% and 66%, and by 3 if the party member's hp is above 66%. Fails if there are no useable Pokemon on that side besides the user.", - shortDesc: "Faints a teammate, raises Atk, SpA, Spe depending on teammate HP.", + shortDesc: "KO a teammate; gain more Atk/SpA/Spe if healthy.", + desc: "A party member is selected and faints, raising the user's Attack, Special Attack, and Speed by 1 stage if the party member's HP is below 33%, by 2 stages if the party member's HP is between 33% and 66%, and by 3 stages if the party member's HP is above 66%. Fails if there are no non-fainted Pokemon on the user's side.", name: "Scapegoat", gen: 9, pp: 5, @@ -2239,6 +2285,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Rain or Lock-On or typeless Toxic.", + desc: "This move will have one of three effects, chosen randomly: the weather is set to Rain, boosting the damage of Water-type attacks; the user gains the Lock-On effect, making its next move not check accuracy; or the target gains a persistent Virus effect, dealing increasing damage the longer the target remains on the field, akin to Toxic. The rain option will not be selected if the weather is already rain or is not changeable, and the Virus option will not be selected if the target already has the Virus condition.", name: "Re-Program", pp: 10, priority: 0, @@ -2284,7 +2331,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 150, category: "Physical", - shortDesc: "No dmg rest of turn. Next turn user moves -1 prio.", + shortDesc: "No dmg rest of turn. Next turn user has -1 prio.", + desc: "Usually moves last. The user becomes immune to all damage sources for the rest of the turn. The turn after this move is used, the user's moves all gain -1 priority. This move ignores all negative effects associated with contact moves.", name: "Wonder Wing", pp: 5, priority: -1, @@ -2331,7 +2379,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 90, category: "Special", name: "Hydrostatics", - shortDesc: "70% +1 SpA, 50% prz, +water effectiveness. Tera-ed: Water-type, 80% +1 SpA, 60% to Soak, super-effective against Water", + shortDesc: "70%:+1 SpA,50%:prz,Elec/Water. Differs when Tera.", + desc: "If the user has not Terastallized, this move has a 70% chance to raise the user's Special Attack by 1 stage, has a 50% chance to paralyze the target, and combines the Water type in its type effectiveness. When the user has Terastallized, this move is a purely Water-type attack that gains Same-Type Attack Bonus with Water-types, and it has an 80% chance to raise the user's Special Attack by 1 stage, has a 60% chance to change the target's typing to Water, and is super effective against Water.", pp: 20, priority: 1, flags: {protect: 1, mirror: 1}, @@ -2385,7 +2434,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 10, category: "Physical", name: "10-20-40", - shortDesc: "Hits 3 times, 3rd hit always crits. sets Safeguard.", + shortDesc: "Hits 3 times, 3rd hit crits. sets Safeguard.", + desc: "Hits three times. Power increases to 20 for the second hit and 40 for the third. The third hit is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities. If this move deals damage, it applies the effect of Safeguard for 5 turns, protecting the user's team from confusion and non-volatile status conditions.", pp: 5, priority: 0, flags: {protect: 1, mirror: 1}, @@ -2415,6 +2465,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 120, category: "Physical", shortDesc: "Prevents the target from switching out.", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Flip Turn, 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.", name: "Jirachi Ban Hammer", pp: 5, priority: 0, @@ -2438,6 +2489,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Changes target to a Randbats set.", + desc: "Z-Move requiring Irpatuzinium Z. Nearly always moves first. Permanently transforms the target into a randomized Pokemon that would be generated in one of the following formats: Gen 9 Random Battle, Gen 9 Hackmons Cup, Gen 9 Challenge Cup, or Computer-Generated Teams. In the vast majority of circumstances, this also prevents the target from acting this turn.", name: "Bibbidi-Bobbidi-Rands", gen: 9, pp: 1, @@ -2513,7 +2565,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Snowy Samba", - shortDesc: "Sets Snow, raises user's Sp. Atk by 1 stage and Speed by 2 stages.", + shortDesc: "Sets Snow, +1 Sp. Atk, +2 Speed.", + desc: "Raises the user's Special Attack by 1 stage and Speed by 2 stages, and changes the weather to Snow, boosting the defense of Ice-types by 1.5x for 5 turns. Snow will not be set if the weather cannot be changed or if the weather is already Snow.", pp: 15, priority: 0, flags: {snatch: 1, metronome: 1}, @@ -2540,7 +2593,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 150, category: "Physical", name: "Knot Weak", - shortDesc: "Deals 50% recoil.", + shortDesc: "Has 1/2 recoil.", + 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.", pp: 5, flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [1, 2], @@ -2572,6 +2626,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Physical", name: "Salvaged Sacrifice", shortDesc: "Heals 25% HP, then uses Final Gambit.", + desc: "The user heals 1/4 of its maximum HP, then deals damage to the target equal to the user's current HP. If this attack is successful, the user faints.", pp: 5, priority: 0, flags: {protect: 1, metronome: 1, noparentalbond: 1}, @@ -2589,6 +2644,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Does something random.", + desc: "This move performs exactly one of the following at random, ignoring options that would do nothing: 10% chance to burn the target; 10% chance to paralyze the target; 10% chance to poison the target; 3% chance to put the target to sleep; 2% chance to freeze the target; 5% chance each to confuse, infatuate, Taunt, Encore, Torment, or Heal Block the target; 5% chance each to set Stealth Rock, Spikes, Toxic Spikes, or Sticky Web; 5% chance to remove entry hazards from the user's side of the field; 5% chance to lower the foe's highest stat by 1 stage; and a 5% chance to switch out.", name: ", (ac)", pp: 15, priority: 0, @@ -2701,7 +2757,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Sets Stealth Rock. Lowers foe's Def and Spe by 1 stage.", + shortDesc: "Sets Stealth Rock. Target: -1 Defense/Speed.", + desc: "Lowers the target's Defense and Speed by 1 stage, and sets Stealth Rock on the target's side of the field, damaging Pokemon as they switch in. If Stealth Rock is already on the target's side of the field, the move will not set Stealth Rock but the other effects will still occur.", name: "Stone Faced", pp: 15, priority: 0, @@ -2725,7 +2782,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 98, basePower: 19, category: "Physical", - shortDesc: "3 hits. Last always crits. 3.5% chance to curse.", + shortDesc: "3 hits. Third hit crits. 3.5% chance to curse.", + desc: "Hits three times. The third hit is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities. Each hit has a 3.5% chance to apply the Curse effect to the target, causing them to take damage equal to 25% of their maximum HP at the end of each turn until they switch out.", name: "Hat-Trick", gen: 9, pp: 10, @@ -2759,7 +2817,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Anfield Atmosphere", - desc: "Negates all weather. No Pokemon on the field can fall asleep. Any status (including volatile status conditions) applied to one Pokemon, will also apply to the all Pokemon on the field. Halves entry hazard damage.", + shortDesc: "No weather/sleep,share statuses,halve hazard dmg.", + desc: "For 6 turns, sets a field effect. Negates all weather conditions. Prevents Pokemon from falling asleep. Any status conditions and volatile status conditions applied to one Pokemon will also apply to the all Pokemon on the field. Halves entry hazard damage.", pp: 5, priority: 0, flags: {mirror: 1}, @@ -2836,6 +2895,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Forces both Pokemon out. Can't be blocked.", + desc: "Both the target and the user are forced to switch out and be replaced with random unfainted allies. This effect cannot be blocked by any means other than having no valid allies that can be sent out.", name: "Protector of the Skies", pp: 10, priority: -1, @@ -2869,7 +2929,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Heals 50% HP and restores 1 PP for all other moves.", + shortDesc: "Heals 50% HP, restores 1 PP for all other moves.", + desc: "Heals the user for 1/2 of their maximum HP, and restores 1 PP to all moves on the user's set other than Platinum Record.", name: "Platinum Record", pp: 5, priority: 0, @@ -2897,7 +2958,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Curses foe without self-damage, 50% chance for brn/par/psn. Raises Speed by 1 stage.", + shortDesc: "User: +1 Spe, Foe:Free Curse, 50% brn/par/psn.", + desc: "Applies the Curse effect to the target, causing them to take damage equal to 25% of their maximum HP at the end of each turn until they switch out. Has a 50% chance to cause the target to either become burned, become poisoned, or become paralyzed. Raises the user's Speed by 1 stage.", name: "Mad Manifest", pp: 10, priority: 0, @@ -2928,6 +2990,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 20, category: "Physical", shortDesc: "+1 Priority. Hits 2-5 times.", + desc: "Usually moves first. Hits two to five times. Has a 35% chance to hit two or three times and a 15% 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.", name: "The Better Water Shuriken", pp: 30, priority: 1, @@ -2952,6 +3015,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Special", name: "Hang Ten", shortDesc: "User sets Electric Terrain on hit.", + desc: "If this move is successful, the terrain becomes Electric Terrain.", pp: 10, priority: 0, flags: {protect: 1, mirror: 1}, @@ -2986,7 +3050,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return move.basePower; }, category: "Physical", - shortDesc: "Power: x2 if opponent switches out. Damages on switch-out. +2 Attack on switch KO.", + shortDesc: "Pursuit, +2 Attack when KOing on switch.", + desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field. Power is multiplied by 1.5x 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 user's Attack is boosted by 2 stages and the replacement Pokemon does not become active until the end of the turn. If the user moves after an opponent using Flip Turn, Parting Shot, Teleport, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field.", name: "Attack of Opportunity", pp: 20, priority: 0, @@ -3059,6 +3124,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Magnet Rise + Aqua Ring.", + desc: "For 5 turns, the user is immune to Ground-type attacks and effects as long as it remains active, and the user will recover 1/16th of their maximum HP at the end of each turn as long as it remains active. If the user uses Baton Pass, the replacement will gain the effects.", name: "Rise Above", gen: 9, pp: 5, @@ -3108,6 +3174,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Trick Room + Power Trick.", + desc: "Until the user switches out, it swaps its Attack and Defense stats, and stat stage changes remain on their respective stats. Sets Trick Room for 5 turns, making the slower Pokemon move first.", name: "Shuckle Power", pp: 5, priority: -6, @@ -3131,7 +3198,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Recharge", - shortDesc: "Heals 50% HP. Heals 3% more for every fainted ally.", + shortDesc: "Heals 50% HP. Heals 3% more per fainted ally.", + desc: "Heals the user for 50% of their maximum HP. Heals an additional 3% of the user's maximum HP for each team member on the user's side that has fainted.", pp: 5, priority: 0, flags: {heal: 1}, @@ -3170,6 +3238,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, category: "Physical", shortDesc: "BP doubles after each hit. 2x if Defense Curl.", + desc: "Power doubles with each successful hit of this move and doubles again if Defense Curl was used previously by the user.", name: "Super Rollout", pp: 20, priority: 0, @@ -3202,7 +3271,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, category: "Special", desc: "Power is equal to 30+(X*20), where X is the user's total stat stage changes that are greater than 0. Has a 100% chance to raise the user's Special Attack by 1 stage.", - shortDesc: "+20 bp for each user's stat boost. 100% chance +1 SpA.", + shortDesc: "+20 bp per stat boost. 100% chance +1 SpA.", name: "Darkmoon Cackle", pp: 15, priority: 0, @@ -3237,6 +3306,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, category: "Physical", shortDesc: "30% burn. 2x power if target is already statused.", + desc: "This move has a 30% chance to give the target a burn. This move's power is doubled if the target has a non-volatile status condition.", name: "Mystical Bonfire", pp: 15, priority: 0, @@ -3262,6 +3332,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 120, category: "Special", shortDesc: "First turn: +1 SpA. No charge in Gravity.", + 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 or Gravity is active, the move completes in one turn.", name: "Praise the Moon", pp: 10, priority: 0, @@ -3299,7 +3370,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 100, category: "Physical", - shortDesc: "After use, 80% chance to get Ice type, 20% chance to get Fire type.", + shortDesc: "80% gain Ice type, 20% gain Fire type.", + desc: "After using the move, there is an 80% chance the user gains an additional Ice typing, and a 20% chance the user gains an additional Fire typing.", name: "Wrath of Frozen Flames", gen: 9, pp: 10, @@ -3332,7 +3404,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Storm Shelter", - shortDesc: "User protects and boosts a random stat by 1 stage.", + shortDesc: "User protects and boosts random stat by 1 stage.", + desc: "Nearly always moves first. Protects the user from most attacks made by other Pokemon this turn, and boosts a random stat of the user by 1 stage, excluding Accuracy and Evasion. This move fails if the user moves last or if the foe switches out, and it has an increasing chance to fail if used consecutively.", pp: 5, priority: 4, flags: {}, @@ -3371,6 +3444,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 90, category: "Physical", shortDesc: "Raises the user's Speed by 1 stage.", + desc: "Has a 100% chance to raise the user's Speed by 1 stage.", name: "Good Vibes Only", gen: 9, pp: 10, @@ -3399,7 +3473,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 90, category: "Physical", - shortDesc: "Sets Steelsurge Spikes on the foe's side.", + shortDesc: "Sets G-Max Steelsurge on the foe's side.", + desc: "If this move is successful, it sets up G-Max Steelsurge 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.", name: "Metal Blast", gen: 9, pp: 10, @@ -3437,6 +3512,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 70, category: "Physical", shortDesc: "Ignores target's Ability; disables it on hit.", + desc: "This move and its effects ignore the Abilities of other Pokemon. When this move hits the target, the target's Ability is suppressed until it switches out. Innate Abilities are unaffected.", name: "Breaking Change", gen: 9, pp: 10, @@ -3463,6 +3539,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Status", name: "Plagiarism", shortDesc: "Steal+use foe sig move+imprison. Fail: +1 stats.", + desc: "User copies opponents signature move and adds it to its own movepool, replacing this move. The user then uses the copied move immediately and gains the Imprison condition, preventing foes from using moves in the user's moveset. The PP of the copied move will be adjusted to match the PP the copied signature move is supposed to have. If the copied custom move would fail if used in this manner, Plagiarism fails and the user boosts all stats by 1 stage, except Accuracy and Evasion.", pp: 1, noPPBoosts: true, priority: 1, @@ -3512,6 +3589,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Status", name: "Time Skip", shortDesc: "Clears hazards. +10 turns. +1 Spe.", + desc: "Removes all entry hazards from the user's side of the field, increases the turn counter by 10, and boosts the user's Speed by 1 stage.", pp: 10, priority: 0, flags: {}, @@ -3544,6 +3622,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "2 random stats +1; Lock-On/Laser Focus/Charge.", + desc: "Boosts 2 random stats of the user by 1 stage each, except Accuracy and Evasion. These stats can be the same. Applies one of Lock-On, Laser Focus, or Charge to the user at random.", name: "Banana Breakfast", gen: 9, pp: 10, @@ -3591,7 +3670,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 35, category: "Special", - shortDesc: "Hits twice. 20% chance to lower foe's Sp. Atk or Sp. Def.", + shortDesc: "Hits twice. 20% -1 Sp. Atk, 20% -1 Sp. Def.", + desc: "Hits 2 times. Each hit has a 20% chance to lower Special Attack by 1 stage, and a 20% chance to lower Special Defense by 1 stage.", name: "Eon Assault", gen: 9, pp: 15, @@ -3627,7 +3707,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 110, category: "Physical", - shortDesc: "100% chance to raise the user's Attack by 1 stage.", + shortDesc: "Raises the user's Attack by 1 stage.", + desc: "100% chance to raise the user's Attack by 1 stage.", name: "Shadow Dance", gen: 9, pp: 10, @@ -3658,6 +3739,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Haze and then +1 Attack.", + desc: "Resets the stat stages of all active Pokemon to 0, and then raises the user's Attack stat by 1 stage.", name: "~nyaa", gen: 9, pp: 10, @@ -3696,7 +3778,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 70, category: "Special", - shortDesc: "Moves first. 10% chance to backfire. 40% infatuates.", + shortDesc: "Moves first. 40% infatuates. 10% backfire chance.", + desc: "Usually moves first. This move has a 40% chance to infatuate the target, regardless of gender, but this move has a 10% chance to be used by the target at the user instead.", name: ":3", gen: 9, pp: 5, @@ -3726,6 +3809,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 80, category: "Physical", shortDesc: "Uses Sp. Def over Attack in damage calculation.", + desc: "Damage is calculated using the user's Special Defense stat as its Attack, including stat stage changes. Other effects that modify the Attack stat are used as normal.", name: "Cotton Candy Crush", overrideOffensiveStat: "spd", gen: 9, @@ -3749,6 +3833,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Confuse; +2 SpA/D. Fail=Confuse self; -1 SpA/D.", + desc: "Usually moves first. This move has a 50% chance of confusing the target and raising the user's Special Attack and Special Defense by 2 stages. Otherwise, it will confuse the user and lower the user's Special Attack and Special Defense by 1 stage.", name: "Wopple or Flopple", gen: 9, pp: 10, @@ -3780,7 +3865,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Alting", - shortDesc: "Switch out+protect if moving first, Shiny: 69BP typeless move instead", + shortDesc: "Switch+Protect, Shiny: 69BP ???-type atk instead.", + desc: "If the user is not shiny, it switches out even if it is trapped and is replaced immediately by a selected party member, and if the user moved first this turn, the selected party member will be protected from most attacks made by other Pokemon this turn. If the user is shiny, this move instead becomes a 69 Base Power ???-type special attack.", pp: 5, priority: 0, flags: {snatch: 1}, @@ -3848,7 +3934,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "1000 Gears", - shortDesc: "Heals 100% HP, cures status, +1 def/spd, +5 levels", + shortDesc: "Heals 100% HP,cures status,+1 Def/SpD,+5 levels.", + desc: "Z-Move requiring Pearyum Z. Heals the user for 100% of its maximum HP, cures its non-volatile status effects, boosts its Defense and Special Defense by 1 stage, and raises its level by 5.", pp: 1, priority: 0, flags: {}, @@ -3882,7 +3969,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 40, category: "Physical", name: "Splash n' Lucky Blaze", - shortDesc: "Raises the user's Attack by 1 stage and burns the foe.", + shortDesc: "User: +1 Attack; target: 100% chance of burn.", + desc: "Has a 100% chance to raise the user's Attack by 1 stage and a 100% chance to burn the target.", pp: 20, priority: 0, flags: {protect: 1, mirror: 1}, @@ -3939,6 +4027,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Special", name: "A Song of Ice and Fire", shortDesc: "Type depends on form. Switches form.", + desc: "If the user is Volcarona, this move is Ice-type and, after dealing damage, transforms the user into a Snow Warning Frosmoth with Blizzard, Chilly Reception, and Aurora Veil. If the user is Frosmoth, this move is Fire-type and, after dealing damage, transforms the user into a Drought Volcarona with Torch Song, Morning Sun, and Solar Beam. This move fails if the user is neither Frosmoth nor Volcarona.", pp: 10, priority: 0, flags: {protect: 1, mirror: 1, failcopycat: 1}, @@ -3977,8 +4066,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Roulette", + shortDesc: "Use a random move, and get a random moveset.", desc: "A random move is selected for use, and then the user's other three moves are replaced with random moves. Aura Wheel, Dark Void, Explosion, Final Gambit, Healing Wish, Hyperspace Fury, Lunar Dance, Memento, Misty Explosion, Revival Blessing, and Self-Destruct cannot be selected.", - shortDesc: "Replace target's 3 moves with random moves.", pp: 5, priority: 0, flags: {protect: 1, mirror: 1}, @@ -4025,7 +4114,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Pleek...", - shortDesc: "+4 Attack + inflict Perish Song on self.", + shortDesc: "+4 Attack + inflict Perish Song on the user.", + desc: "Raises the user's Attack by 4 stages. Inflicts the Perish Song effect on the user, causing it to faint in three turns at the end of the turn.", pp: 10, priority: 0, flags: {sound: 1, bypasssub: 1}, @@ -4051,12 +4141,13 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, // Pulse_kS - pulseluck: { + luckpulse: { accuracy: 100, basePower: 90, category: "Special", - name: "Pulse Luck", - shortDesc: "Random type. 40% chance for random effect. High crit ratio.", + name: "Luck Pulse", + shortDesc: "Random type. 40% random effect. High crit.", + desc: "This move's typing is chosen randomly between the 18 standard types, and each type has a 40% chance to apply a status effect to the target specific to that type. This move has an increased chance to result in a critical hit. The list of effects per type are as follows: Normal can apply drowsy; Fire can apply burn; Water can apply Aqua Ring; Grass can apply Leech Seed; Flying can apply confusion; Fighting can apply partial trapping; Poison can apply Toxic poison; Electric can apply paralysis; Ground can apply No Retreat, trapping the target without granting boosts; Rock can apply Salt Cure; Psychic can apply sleep; Ice can apply freeze; Bug can apply poison; Ghost can apply Disable; Steel can cause the target to flinch; Dragon can cause the target to recharge on their next turn, as if they had just used Hyper Beam; Dark can apply Taunt; and Fairy can apply infatuation.", critRatio: 1, pp: 10, priority: 0, @@ -4072,7 +4163,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { move.type = type; }, self: { - slotCondition: 'Pulse Luck', + slotCondition: 'Luck Pulse', }, condition: { duration: 999, @@ -4086,19 +4177,21 @@ export const Moves: {[k: string]: ModdedMoveData} = { 'Kanga Skhan', 'KanSas', 'Karakuri Shogun', + 'Kartana Swords dance', 'Kate Stewart', 'Kendo Spirit', - 'Keratan sulfate', - 'Kernel streaming', + 'Keratan Sulfate', + 'Kernel Streaming', 'Key Stage', 'Kids Suck', 'KillSteal', 'Kilometers / Second', - 'Kilosecond', + 'KiloSecond', 'King of the Swamp', 'King\'s Shield', 'Kirk/Spock', 'Klingon Security', + 'Kpop Star', 'Kuroudo (Cloud) Strife', 'Kyouko Sakura', 'KyrgyzStan', @@ -4107,7 +4200,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add(`c:|${getName('Pulse_kS')}|The kS stands for ${this.effectState.ksName}`); }, onTryHit(source, target, move) { - if (source.species.baseSpecies === 'Hydreigon' && move.name === 'Pulse Luck') { + if (source.species.baseSpecies === 'Hydreigon' && move.name === 'Luck Pulse') { this.add(`c:|${getName('Pulse_kS')}|The kS stands for ${this.effectState.ksName}`); } }, @@ -4153,7 +4246,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 75, category: "Physical", name: "Meat Grinder", - shortDesc: "Deals 1/8 max HP each turn; 1/4 on Fairy, Normal. Heals user 1/8 each turn.", + shortDesc: "User:+1/8 HP/turn;Foe:-1/8 HP/turn,Nrm/Fairy 1/4.", + desc: "Causes damage to the target equal to 1/8 of its maximum HP (1/4 if the target is Normal or Fairy type), rounded down, and heals the user equal to 1/8 of its maximum HP, both at the end of each turn during effect. This effect ends when the target is no longer active.", pp: 15, priority: 0, flags: {protect: 1, mirror: 1}, @@ -4198,6 +4292,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Special", name: "*Worried Noises*", shortDesc: "+1 SpA. Type varies based on user's primary type.", + desc: "Has a 100% chance to raise the user's Special Attack by 1 stage. 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 effects that add extra typings. This move is typeless if the user's type is typeless alone.", pp: 10, priority: 0, flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, @@ -4231,7 +4326,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Reshape", - shortDesc: "Foe becomes a random monotype, user gains +1 SpA.", + shortDesc: "User: +1 SpA. Target becomes a random monotype.", + desc: "Raises the user's Special Attack by 1 stage and changes the target's typing to any one of the 18 standard types at random, replacing their old typing.", pp: 10, priority: 0, flags: {}, @@ -4258,6 +4354,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Status", name: "Magic Trick", shortDesc: "Teleport + Clears field effects.", + desc: "Removes any terrain, weather, entry hazard, or other removable field condition, and then causes the user to switch out out even if it is trapped and be replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, and the user will still attempt to switch out if there are no active field conditions.", pp: 5, priority: 0, flags: {}, @@ -4302,7 +4399,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Hatsune Miku's Lucky Orb", - shortDesc: "Boosts a random stat by 3 stages, then uses Baton Pass.", + shortDesc: "Gains +3 to random stat, then uses Baton Pass.", + desc: "Z-Move requiring Rainium Z. Boosts a random stat (except Accuracy and Evasion) by 3 stages, then 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.", pp: 1, priority: 0, flags: {}, @@ -4341,6 +4439,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Special", name: "Flood of Lore", shortDesc: "Sets Psychic Terrain.", + desc: "If this move is successful, the terrain becomes Psychic Terrain.", pp: 5, priority: 0, flags: {protect: 1}, @@ -4363,6 +4462,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Status", name: "Monke Magic", shortDesc: "Sets Trick Room; user SpA +1.", + desc: "Nearly always goes last. Raises the user's Special Attack by 1 stage and sets Trick Room for 5 turns, making the slower Pokemon move first for the duration.", pp: 5, priority: -7, flags: {}, @@ -4391,6 +4491,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Physical", name: "Confiscate", shortDesc: "First turn only. Steals boosts and screens.", + desc: "Nearly always moves first. The target's stat stages greater than 0 are stolen from it and applied to the user, and any present effects of Reflect, Light Screen, and Aurora Veil are moved from the target's side of the field to the user's, before dealing damage. Fails unless it is the user's first turn on the field.", pp: 5, priority: 2, flags: {contact: 1, protect: 1, mirror: 1, bite: 1}, @@ -4426,7 +4527,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 85, category: "Special", name: "Midnight Bird", - shortDesc: "+1 Special Attack on hit.", + shortDesc: "100% chance to raise the user's Sp. Atk by 1.", + desc: "Has a 100% chance to raise the user's Special Attack by 1 stage.", pp: 10, priority: 0, flags: {protect: 1, mirror: 1}, @@ -4455,6 +4557,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Heals 50% of max HP. Cures status.", + desc: "Heals the user for 1/2 of their maximum HP and removes any non-volatile status effect from the user.", name: "Purification", pp: 5, priority: 0, @@ -4477,6 +4580,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 75, category: "Special", shortDesc: "20% burn, 20% spite, 20% 1/4th recoil.", + desc: "This move independently has a 20% chance to leave the target with a burn, a 20% chance to reduce the PP of the target's last used move by 4, and a 20% chance to cause the user to take damage equal to 1/4 of the damage dealt to the target.", name: "Hexadecimal Fire", pp: 15, priority: 0, @@ -4521,7 +4625,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 70, category: "Physical", - shortDesc: "Clears hazards, sets spikes, and pivots out.", + shortDesc: "Clears hazards, sets spikes, switches out.", + desc: "Removes all entry hazards and active terrains from the field, then sets one layer of Spikes if the user is Sneasel or Toxic Spikes otherwise. 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.", name: "Treacherous Traversal", gen: 9, pp: 20, @@ -4556,7 +4661,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Uses Thunderbolt and Ice Beam in succession, at half power.", + shortDesc: "Calls 45 BP Thunderbolt + 45 BP Ice Beam.", + desc: "When used, calls a 45 Base Power Thunderbolt for use, and then calls a 45 Base Power Ice Beam for use. If one move fails, the other will still execute.", name: "BoltBeam", pp: 15, priority: 0, @@ -4583,7 +4689,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 100, category: "Special", - shortDesc: "Knock Off + Sappy Seed + Burning Jealousy but poison.", + shortDesc: "Remove item, Leech Seed, Psn if stat raised.", + desc: "If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability or Pokemon holding Z-Crystals or Mega Stones to lose their held items. This move summons Leech Seed on the foe. Has a 100% chance to poison the target if it had a stat stage raised this turn.", name: "Grass Gaming", pp: 15, priority: 0, @@ -4627,7 +4734,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 80, category: "Physical", - shortDesc: "Recycle + Seed Bomb + Leech Seed.", + shortDesc: "User: Recycle; Target: Leech Seed.", + desc: "If this attack is successful, the user regains its last used held item, unless it was forcibly removed. This move summons Leech Seed on the foe.", name: "Like..?", pp: 5, priority: 0, @@ -4664,7 +4772,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 70, category: "Physical", - shortDesc: "Psn + clears hazards, sets spikes, then switches out.", + shortDesc: "Foe side:Spikes, Psn; User:Hazard remove, switch.", + desc: "If this move is successful, all entry hazards are removed from the user's side of the field, the target becomes poisoned, and a layer of Spikes are set on the target's side. 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.", name: "Concept Relevant", gen: 9, pp: 15, @@ -4728,8 +4837,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return move.basePower; }, category: "Special", - shortDesc: "Power doubles if the target has more raised stats than the user.", - desc: "This move's base power is doubled if the target has more raised stats than the user. If this move's power is doubled, a random stat is boosted for the user by 1 stage and lowered for the target by 1 stage.", + shortDesc: "2x power if target has more boosts than user.", + desc: "This move's base power is doubled if the target has a higher number of positive stat stage changes than the user. If this move's power is doubled, a random stat, except Accuracy and Evasion, is boosted for the user by 1 stage and lowered for the target by 1 stage.", name: "Adaptive Beam", pp: 15, priority: 0, @@ -4783,6 +4892,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Special", overrideDefensiveStat: 'def', shortDesc: "Target's the foe's Def instead of Sp. Def.", + desc: "Deals damage to the target based on its Defense instead of Special Defense.", name: "Mind Melt", gen: 9, pp: 10, @@ -4804,7 +4914,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Boosts Atk, Def and Sp. Def by 1 stage.", + shortDesc: "Boosts Atk, Def, and Sp. Def by 1 stage.", + desc: "Boosts the user's Attack, Defense, and Special Defense by 1 stage.", name: "Cardio Training", onTryMove() { this.attrLastMove('[still]'); @@ -4832,7 +4943,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 65, category: "Physical", name: "Phantom Weapon", - shortDesc: "Double power if user is holding item; destroys item.", + shortDesc: "2x power if user is holding item; destroys item.", + desc: "If the user is holding an item, this move will deal double damage and the user's held item will be removed.", pp: 20, priority: 0, onModifyPriority(priority, pokemon) { @@ -4878,6 +4990,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 120, category: "Physical", shortDesc: "Random type.", + desc: "This move's typing is chosen randomly between the 18 standard types.", name: "~randfact", gen: 9, pp: 10, @@ -4904,8 +5017,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return Math.min(140, 60 + 20 * pokemon.timesAttacked); }, category: "Special", - desc: "Power is equal to 60+(X*20), where X is the total number of times the user has been hit by a damaging attack during the battle, even if the user did not lose HP from the attack. X cannot be greater than 4 and does not reset upon switching out or fainting. Each hit of a multi-hit attack is counted, but confusion damage is not counted.", shortDesc: "+20 power for each time user was hit. Max 4 hits.", + desc: "Power is equal to 60+(X*20), where X is the total number of times the user has been hit by a damaging attack during the battle, even if the user did not lose HP from the attack. X cannot be greater than 4 and does not reset upon switching out or fainting. Each hit of a multi-hit attack is counted, but confusion damage is not counted.", name: "Vengeful Mood", gen: 9, pp: 15, @@ -4927,8 +5040,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 85, basePower: 10, category: "Special", - desc: "Hits ten times. 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 ten times. If the user is holding Loaded Dice, this move hits four to ten times at random without checking accuracy between hits.", shortDesc: "Hits 10 times. Each hit can miss.", + desc: "Hits ten times. 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 ten times. If the user is holding Loaded Dice, this move hits four to ten times at random without checking accuracy between hits.", name: "Stink Bomb", gen: 9, pp: 10, @@ -4953,7 +5066,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Boosts Attack, Speed and Crit ratio by 1.", + shortDesc: "Boosts Attack, Speed, and Crit ratio by 1.", + desc: "Boosts the user's Attack and Speed by 1 stage and increases the user's chance of landing a critical hit.", name: "Rising Sword", pp: 5, priority: 0, @@ -4988,7 +5102,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Protects user, changes type and gains a new move.", - desc: "The user protects itself and gains a random type and move, replacing DynamicPunch. It can gain Fire type and Pyro Ball, Ice type and Triple Axel, Rock type and Stone Edge, or Water type and Aqua Tail. Chance of failure rises if used in succession.", + desc: "Nearly always moves first. The user protects itself from most attacks made by other Pokemon this turn and gains a random type. If the user has Dynamic Punch, Pyro Ball, Triple Axel, Stone Edge, or Aqua Tail, it will also replace that move with a new move based on the type gained. It can gain Fire type and Pyro Ball, Ice type and Triple Axel, Rock type and Stone Edge, and Water type and Aqua Tail. This move fails entirely if the user moved last this turn or if the foe switches out, and this move has an increasing chance to fail when used consectively.", name: "SAND EAT", pp: 10, priority: 4, @@ -5051,6 +5165,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, category: "Special", shortDesc: "+50 power for each time a party member fainted.", + desc: "Power is equal to 50+(X*50), where X is the total number of times any Pokemon has fainted on the user's side, and X cannot be greater than 100.", name: "Body Count", pp: 10, priority: 0, @@ -5069,6 +5184,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Wish + Aromatherapy + Defog.", + desc: "Sets a Wish on the user's side, healing the active Pokemon for 50% of the user's maximum HP at the end of the next turn. 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, G-Max Steelsurge, and Sticky Web end for the target's side, and for the user's side all team members' non-volatile status conditions and the effects of Spikes, Toxic Spikes, Stealth Rock, G-Max Steelsurge, and Sticky Web are removed. 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.", name: "Eternal Wish", pp: 10, priority: 0, @@ -5132,7 +5248,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 0, category: "Status", - shortDesc: "Attracts and confuses the target.", + shortDesc: "Infatuates and confuses the target.", + desc: "Causes the target to become confused and infatuated, regardless of gender. This move cannot ever have more than 1 PP.", name: "The Love Of Christ", gen: 9, pp: 1, @@ -5160,7 +5277,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 90, basePower: 80, category: "Special", - shortDesc: "If target is KOed, user boosts a random stat by 2.", + shortDesc: "If target is KOed, user boosts random stat by 2.", + desc: "If this move knocks out the target, the user boosts a random stat, except Accuracy and Evasion, by 2 stages.", name: "Chronostasis", gen: 9, pp: 10, @@ -5196,6 +5314,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 40, category: "Physical", shortDesc: "2 hits, +1 random stat/hit. Type = User 2nd type.", + desc: "This move hits 2 times. For each successful hit, the user boosts a random stat, except Accuracy and Evasion, by 1 stage. The typing of this move is equal to the user's secondary type; it will instead use the user's primary type if the user lacks a secondary type.", name: "Dilly Dally", pp: 20, priority: 0, @@ -5241,8 +5360,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 60, category: "Physical", - shortDesc: "Uses two status moves, then pivots out.", - desc: "The user uses two of: Feather Dance, Growl, Rain Dance, Sunny Day, Tailwind and Taunt, then pivots out.", + shortDesc: "Uses two status moves, then switches out.", + desc: "The user uses two, at random, of: Feather Dance, Growl, Rain Dance, Sunny Day, Tailwind and Taunt. After these moves execute, 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 out.", name: "My Boys", pp: 20, priority: 0, @@ -5273,8 +5392,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 25, category: "Physical", name: "First Strike", - shortDesc: "Turn 1 only. +1 NVE, +2 NE, +3 SE Atk.", - desc: "This move can only be used on the first turn of battle. It boosts the user's Attack by 1 stage if it's resisted, 2 stages if it's neutral, and 3 stages if it's super effective.", + shortDesc: "Turn 1 only. Atk: +1 NVE, +2 NE, +3 SE.", + desc: "Boosts the user's Attack by 1 stage if the attack is not very effective, 2 stages if the attack is neutral, and 3 stages if the attack is super effective. Fails unless it is the user's first turn on the field.", pp: 15, priority: 3, flags: {contact: 1, protect: 1, mirror: 1}, @@ -5312,6 +5431,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Status", name: "Your Crippling Interest", shortDesc: "Tox; clears terrain and hazards on both sides.", + desc: "The target becomes badly poisoned, and all entry hazards and terrain effects are removed from both sides of the field. If the target already has a non-volatile status condition, the removal effect can still occur.", pp: 15, priority: 0, flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, @@ -5365,7 +5485,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { return move.basePower; }, category: "Physical", - shortDesc: "vs Tera'd opponent: 0 prio, 2x bp, removes Tera.", + shortDesc: "Vs Tera'd target: 0 prio, 2x BP, removes Tera.", + desc: "Usually moves first. If the target has Terastallized, this move becomes +0 priority and does double damage. If this move is successful against a Terastallized target, the target's Terastallization effect is permanently removed.", name: "building character", gen: 9, pp: 10, @@ -5402,6 +5523,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Changes to Idol forme and sets a substitute.", + desc: "If the user is a Zeraora, the user's ability changes to Virtual Idol and its full moveset becomes Overdrive, Sparkling Aria, Torch Song, and Teeter Dance, replacing every currently present move. The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle.", name: "Virtual Avatar", pp: 1, priority: 0, @@ -5435,6 +5557,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Uses Wish, switches out. Recipient gets Aqua Ring.", + desc: "Sets a Wish on the user's side, healing the active Pokemon for 50% of the user's maximum HP at the end of the next turn. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member, which will gain the Aqua Ring effect. The user does not switch out if there are no unfainted party members.", name: "Gracidea's Blessing", pp: 10, priority: 0, @@ -5472,7 +5595,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 160, category: "Special", shortDesc: "Hit off higher atk, eats berry, Dragon/Fly eff.", - desc: "Uses the user's higher attack stat in damage calculation. Does not need to charge in sun. If a berry is held, it's eaten upon using this move and 25% of the user's max HP is restored. Super effective on Dragon types.", + desc: "Uses the user's higher attack stat in damage calculation. Does not need to charge in sun. If this move is successful and the user is holding a berry, the user consumed its held berry and restored 25% of the its maximum HP. This move combines Dragon in its type effectiveness.", name: "Fruitful Longbow", gen: 9, pp: 15, @@ -5524,6 +5647,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 60, category: "Special", shortDesc: "Recovers 50% of damage dealt.", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up.", name: "Torrential Drain", pp: 10, priority: 0, @@ -5547,7 +5671,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: true, basePower: 0, category: "Status", - shortDesc: "Endures hit and hits opponent with 1.5x power.", + shortDesc: "Endures hit and copies foe with 1.5x power.", + desc: "Nearly always moves first. 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 usable by Me First. The user also activates the Endure effect on itself, preventing it from falling below 1 HP through direct attacks this turn. Ignores the target's substitute for the purpose of copying the move. The move will fail entirely if the user did not move first this turn, or if the target switched out. If the target would use a move not usable by Me First, the Endure effect still occurs. This move has an increasing chance of failing when used in succession.", name: "Perfect Mimic", gen: 9, pp: 10, @@ -5600,7 +5725,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 90, category: "Special", - shortDesc: "Always hits at least neutral. Ignores Rain/Primordial Sea.", + shortDesc: "Always hits at least neutral. Ignores rain.", + desc: "If the attack is successful, the move will always hit for at least neutral damage, but it may still deal super effective damage. Rain and Primordial Sea do not impact this move's functionality in any way.", name: "Scorching Truth", gen: 9, pp: 15, @@ -5629,6 +5755,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { category: "Status", name: "Poisonous Wind", shortDesc: "Badly poisons the foe and forces them out.", + desc: "Badly poisons the target. If the infliction of status is successful, 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. This move will fail entirely if the target has a non-volatile status condition.", pp: 10, priority: -6, flags: {reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1, wind: 1}, @@ -5645,6 +5772,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 70, category: "Special", shortDesc: "Sets up Snow. Target's ability becomes Normalize.", + desc: "If this move is successful, the current weather becomes snow, boosting the Defense of Ice-types by 1.5x for 5 turns, and the target's ability is replaced with Normalize.", name: "Whiteout", pp: 5, priority: 0, @@ -5673,7 +5801,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 90, category: "Special", - shortDesc: "If user is taller than the opponent, boosts Sp. Atk by 1 stage.", + shortDesc: "If the user is taller than the target, +1 SpA.", + desc: "If the user's height as listed on its Pokedex data is greater than the target's height, the user's Special Attack is boosted by 1 stage.", name: "High Ground", pp: 10, priority: 0, @@ -5703,6 +5832,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Heals 25% HP and sets Aqua Ring.", + desc: "The user recovers 1/4 of its maximum HP and gains the Aqua Ring effect, healing it for 1/16th of its maximum HP at the end of each turn. The healing effect will still occur if the user already has Aqua Ring active.", name: "Dud ur a fish", pp: 5, priority: 0, @@ -5736,7 +5866,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", name: "Shitpost", - shortDesc: "Confuses and paralyzes the foe.", + shortDesc: "Confuses and paralyzes the target.", pp: 20, priority: 0, flags: {protect: 1}, @@ -5766,7 +5896,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { accuracy: 100, basePower: 100, category: "Special", - shortDesc: "Bypasses everything. Uses Higher Atk. ", + shortDesc: "Bypasses everything. Uses Higher Atk.", + desc: "This move will bypass any negative effect on the field or the target that would impede its ability to deal damage, including type-based immunities. This move is physical if the user's Attack is higher than its Special Attack.", name: "@ts-ignore", gen: 9, pp: 5, @@ -5806,6 +5937,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, category: "Status", shortDesc: "Sets up Sunny Day and creates a Substitute.", + desc: "Sets sun, powering up Fire-type moves and weakening Water-type moves for 5 turns. The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. If one part of this move is already in effect, the other part will still be attempted.", name: "Solar Summon", gen: 9, pp: 5, @@ -5839,6 +5971,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 95, category: "Physical", shortDesc: "Literally just 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.", name: "Darkest Night", pp: 15, priority: 0, diff --git a/data/mods/gen9ssb/pokedex.ts b/data/mods/gen9ssb/pokedex.ts index 2f8d08a59..2e0ea4d6e 100644 --- a/data/mods/gen9ssb/pokedex.ts +++ b/data/mods/gen9ssb/pokedex.ts @@ -711,7 +711,7 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { // Pulse_kS hydreigon: { inherit: true, - abilities: {0: "Not Orichalcum Pulse"}, + abilities: {0: "Pulse Luck"}, }, // PYRO diff --git a/data/mods/gen9ssb/random-teams.ts b/data/mods/gen9ssb/random-teams.ts index 0a542c43b..d01d0c19a 100644 --- a/data/mods/gen9ssb/random-teams.ts +++ b/data/mods/gen9ssb/random-teams.ts @@ -710,9 +710,9 @@ export const ssbSets: SSBSets = { evs: {hp: 252, atk: 252, spd: 4}, nature: 'Adamant', teraType: 'Water', }, Pulse_kS: { - species: 'Hydreigon', ability: 'Not Orichalcum Pulse', item: 'Quick Claw', gender: 'N', + species: 'Hydreigon', ability: 'Pulse Luck', item: 'Quick Claw', gender: 'N', moves: ['Dark Pulse', 'Dragon Pulse', 'Origin Pulse'], - signatureMove: 'Pulse Luck', + signatureMove: 'Lucky Pulse', evs: {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}, nature: 'Serious', teraType: ['Steel', 'Poison'], }, PYRO: {