diff --git a/data/mods/earthsky/abilities.ts b/data/mods/earthsky/abilities.ts index 6edfac8307..f26c6129c6 100644 --- a/data/mods/earthsky/abilities.ts +++ b/data/mods/earthsky/abilities.ts @@ -2025,7 +2025,7 @@ export const Abilities: {[abilityid: string]: ModdedAbilityData} = { delete this.effectState.magicked; }, name: "Magician", - desc: "The user swaps its held item with the held item of a Pokemon it hits with an attack. This effect fails if neither the user or the target is holding an item, if the user is trying to give or take a Mega Stone to or from the species that can Mega Evolve with it, or if the user is trying to give or take a Blue Orb, a Red Orb, a Griseous Orb, a Plate, a Drive, a Memory, a Rusted Sword, or a Rusted Shield to or from a Kyogre, a Groudon, a Giratina, an Arceus, a Genesect, a Silvally, a Zacian, or a Zamazenta, respectively. The target is immune to this effect if it has the Sticky Hold Ability. This effect can only trigger once per switch-in. Does not affect Doom Desire and Future Sight.", + desc: "The user swaps its held item with the held item of a Pokemon it hits with an attack. This effect fails if neither the user or the target is holding an item or if the user is trying to give or take a Mega Stone or form-changing item to or from the species that can Mega Evolve or change forms with it. The target is immune to this effect if it has the Sticky Hold Ability. This effect can only trigger once per switch-in. Does not affect Doom Desire and Future Sight.", shortDesc: "Swaps items with a Pokemon it hits with an attack. Once per switch-in.", flags: {}, num: 170, @@ -2096,8 +2096,8 @@ export const Abilities: {[abilityid: string]: ModdedAbilityData} = { name: "Magnet Pull", rating: 4, num: 42, - desc: "Prevents opposing Steel-type Pokemon from choosing to switch out for three turns, unless they are holding a Shed Shell or are a Ghost type.", - shortDesc: "Prevents opposing Steel-type Pokemon from choosing to switch out for 3 turns.", + desc: "Prevents opposing Steel-types from switching out for four turns (six turns if the user is holding Grip Claw), starting from when either the user or a valid foe switches in. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field.", + shortDesc: "Traps enemy Steel-types for 4 turns.", }, megalauncher: { inherit: true, @@ -2157,7 +2157,7 @@ export const Abilities: {[abilityid: string]: ModdedAbilityData} = { }, onSourceAfterFaint(length, target, source, effect) { if (effect && effect.effectType === 'Move') { - this.effectState.boost = {def: length, spd: length, spe: -length}; + this.effectState.boost = {def: 1, spd: 1, spe: -1}; } }, onTryHeal(damage, target, source, effect) { @@ -2687,8 +2687,8 @@ export const Abilities: {[abilityid: string]: ModdedAbilityData} = { name: "Shadow Tag", rating: 4.5, num: 23, - desc: "Prevents opposing Pokemon from choosing to switch out for three turns, unless they are holding a Shed Shell, have the Run Away or Shadow Tag Abilities, or are a Ghost type.", - shortDesc: "Prevents foes from switching for 3 turns unless they also have this Ability.", + desc: "Prevents opposing Pokemon from switching out for four turns (six turns if the user is holding Grip Claw), starting from when either the user or a valid foe switches in. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Shadow Tag or Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field.", + shortDesc: "Traps enemies without Shadow Tag for 4 turns.", }, sharpness: { inherit: true, @@ -2914,6 +2914,19 @@ export const Abilities: {[abilityid: string]: ModdedAbilityData} = { } }, }, + synchronize: { + inherit: true, + onAfterSetStatus(status, target, source, effect) { + if (!source || source === target) return; + if (effect && effect.id === 'toxicspikes') return; + this.add('-activate', target, 'ability: Synchronize'); + // Hack to make status-prevention abilities think Synchronize is a status move + // and show messages when activating against it. + source.trySetStatus(status, target, {status: status.id, id: 'synchronize'} as Effect); + }, + desc: "If another Pokemon inflicts a non-volatile status condition on this Pokemon, that Pokemon receives the same non-volatile status condition.", + shortDesc: "If status is inflicted by another Pokemon, it also gets that status.", + }, tangledfeet: { onDamage(damage, target, source, effect) { if (effect.id === this.toID('confused') && !pokemon.volatiles['odorsleuth']) { diff --git a/data/mods/earthsky/conditions.ts b/data/mods/earthsky/conditions.ts index 70fb0b6d12..3afde97b19 100644 --- a/data/mods/earthsky/conditions.ts +++ b/data/mods/earthsky/conditions.ts @@ -70,6 +70,10 @@ export const Conditions: {[k: string]: ModdedConditionData} = { trapped: { inherit: true, duration: 4, + durationCallback(target, source) { + if (source?.hasItem('gripclaw')) return 6; + return 4; + }, onStart(target) { if(!this.turn) this.effectState.duration--; this.add('-activate', target, 'trapped'); @@ -80,6 +84,11 @@ export const Conditions: {[k: string]: ModdedConditionData} = { }, partiallytrapped: { inherit: true, + duration: 4, + durationCallback(target, source) { + if (source?.hasItem('gripclaw')) return 6; + return 4; + }, onStart(pokemon, source) { if(pokemon.volatiles['strongpartialtrap']) return false; this.add('-activate', pokemon, 'move: ' + this.effectState.sourceEffect, '[of] ' + source); @@ -169,6 +178,10 @@ export const Conditions: {[k: string]: ModdedConditionData} = { name: 'blocked', noCopy: true, duration: 4, + durationCallback(target, source) { + if (source?.hasItem('gripclaw')) return 6; + return 4; + }, onStart(target, source, move) { this.add('-activate', target, 'trapped'); }, @@ -176,17 +189,17 @@ export const Conditions: {[k: string]: ModdedConditionData} = { pokemon.tryTrap(); }, onSourceHit(target, source, move) { //Damaging moves won't switch - if(move.selfSwitch && target !== source && !source.hasItem('shedshell') && !source.hasAbility('runaway')) delete move.selfSwitch; + if(move.selfSwitch && target !== source && !source.volatiles['substitute'] && !source.hasItem('shedshell') && !source.hasAbility('runaway')) delete move.selfSwitch; }, onAfterMoveSecondaryPriority: -100, onAfterMoveSecondary(target, source, move) { //Items and custom Abilities won't switch if(target !== source){ - if(source.switchFlag && !source.hasItem('shedshell') && !source.hasAbility('runaway')){ + if(source.switchFlag && !source.volatiles['substitute'] && !source.hasItem('shedshell') && !source.hasAbility('runaway')){ this.add('-fail', target, '[from] move: Fairy Lock'); source.switchFlag = false; return null; } - if(target.switchFlag && !target.hasItem('shedshell') && !target.hasAbility('runaway')){ + if(target.switchFlag && !target.volatiles['substitute'] && !target.hasItem('shedshell') && !target.hasAbility('runaway')){ this.add('-fail', target, '[from] move: Fairy Lock'); source.switchFlag = false; return null; @@ -194,7 +207,7 @@ export const Conditions: {[k: string]: ModdedConditionData} = { } }, onEmergencyExit(target) { //Escape Plan won't switch - if(!target.hasItem('shedshell')){ + if(!target.hasItem('shedshell') && !target.volatiles['substitute']){ target.switchFlag = false; return false; } @@ -204,6 +217,10 @@ export const Conditions: {[k: string]: ModdedConditionData} = { name: 'meanlooked', noCopy: true, duration: 4, + durationCallback(target, source) { + if (source?.hasItem('gripclaw')) return 6; + return 4; + }, onStart(target, source, move) { this.add('-activate', target, 'trapped'); }, @@ -242,18 +259,18 @@ export const Conditions: {[k: string]: ModdedConditionData} = { name: 'strongpartialtrap', duration: 3, durationCallback(target, source) { - if (source?.hasItem('gripclaw')) return 5; - return this.random(3, 4); + if (source?.hasItem('gripclaw')) return 4; + return 3; }, onStart(pokemon, source) { if(pokemon.volatiles['partiallytrapped']) return false; this.add('-activate', pokemon, 'move: ' + this.effectState.sourceEffect, '[of] ' + source); this.effectState.boundDivisor = source.hasItem('bindingband') ? 3 : 4; }, - onResidualOrder: 11, + onResidualOrder: 13, onResidual(pokemon) { const source = this.effectState.source; - if (source && (!source.isActive || source.hp <= 0 || !source.activeTurns) && !gmaxEffect) { + if (source && (!source.isActive || source.hp <= 0 || !source.activeTurns)) { delete pokemon.volatiles['strongpartialtrap']; this.add('-end', pokemon, this.effectState.sourceEffect, '[strongpartialtrap]', '[silent]'); return; @@ -263,6 +280,13 @@ export const Conditions: {[k: string]: ModdedConditionData} = { onEnd(pokemon) { this.add('-end', pokemon, this.effectState.sourceEffect, '[strongpartialtrap]'); }, + onTrapPokemon(pokemon) { + if (this.effectState.source?.isActive) pokemon.tryTrap(); + }, + }, + sleuther: { + name: 'sleuther', + noCopy: true, }, /* Status changes due to other elements */ par: { diff --git a/data/mods/earthsky/formats-data.ts b/data/mods/earthsky/formats-data.ts index 53a5077875..aaf96bbe49 100644 --- a/data/mods/earthsky/formats-data.ts +++ b/data/mods/earthsky/formats-data.ts @@ -3220,8 +3220,8 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { natDexTier: 'OU' }, cherrimsunshine: { - tier: 'OU', - natDexTier: 'OU' + tier: 'Illegal', + natDexTier: 'Illegal' }, buneary: { tier: 'LC', diff --git a/data/mods/earthsky/items.ts b/data/mods/earthsky/items.ts index d353063ba5..37384ae221 100644 --- a/data/mods/earthsky/items.ts +++ b/data/mods/earthsky/items.ts @@ -1943,7 +1943,12 @@ export const Items: {[itemid: string]: ModdedItemData} = { }, bindingband: { inherit: true, - desc: "Holder's partial-trapping moves deal 1/6 or 1/3 max HP per turn instead of 1/8 or 1/4.", + desc: "Holder's binding moves deal 1/6 or 1/3 max HP per turn instead of 1/8 or 1/4.", + }, + gripclaw: { + inherit: true, + shortDesc: "If the holder uses a move that traps or binds for more than a single turn (excluding the turn of use), its duration is extended. Trapping and binding last six turns instead of four, and strong binding lasts three turns instead of two.", + shortDesc: "Holder's trap/binding lasts 6 turns, strong bind lasts 3 turns.", }, heavydutyboots: { inherit: true, diff --git a/data/mods/earthsky/learnsets.ts b/data/mods/earthsky/learnsets.ts index 202b63ec93..e556dbbf67 100644 --- a/data/mods/earthsky/learnsets.ts +++ b/data/mods/earthsky/learnsets.ts @@ -256,7 +256,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { lavaplume: ["9L35"], curse: ["9L40"], doubleedge: ["9L45"], - flareblitz: ["9L50"], + heatcrash: ["9L50"], hiddenpower: ["9M"], secretpower: ["9M"], incinerate: ["9M"], @@ -325,7 +325,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { lavaplume: ["9L36"], curse: ["9L42"], doubleedge: ["9L48"], - flareblitz: ["9L54"], + heatcrash: ["9L54"], headsmash: ["9L60"], hyperbeam: ["9M"], gigaimpact: ["9M"], @@ -1025,7 +1025,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { endure: ["9L1", "9M"], pinmissile: ["9L12"], mirrorshot: ["9L14"], - quickattack: ["9L18"], + slash: ["9L18"], signalbeam: ["9L22", "9M"], autotomize: ["9L24"], irontail: ["9L28", "9M"], @@ -3133,19 +3133,19 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { learnset: { absorb: ["9L1"], sweetscent: ["9L1"], - leechseed: ["9L1"], - deepbreath: ["9L1"], - magicalleaf: ["9L1"], - grasswhistle: ["9L1"], - megadrain: ["9L1"], - amnesia: ["9L1", "9M"], - aromatherapy: ["9L1"], - gigadrain: ["9L1", "9M"], - destinybond: ["9L1"], - petalblizzard: ["9L1"], - synthesis: ["9L1", "9M"], - dreameater: ["9L1", "9M"], - petaldance: ["9L1"], + leechseed: ["9L4"], + deepbreath: ["9L7"], + magicalleaf: ["9L11"], + grasswhistle: ["9L14"], + megadrain: ["9L17"], + amnesia: ["9L21", "9M"], + aromatherapy: ["9L24"], + gigadrain: ["9L27", "9M"], + destinybond: ["9L31"], + petalblizzard: ["9L34"], + synthesis: ["9L37", "9M"], + dreameater: ["9L41", "9M"], + petaldance: ["9L44"], hiddenpower: ["9M"], secretpower: ["9M"], naturepower: ["9M"], @@ -3178,7 +3178,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { trick: ["9M"], endure: ["9M"], flowershield: ["9E"], - grudge: ["9E"], + lastrespects: ["9E"], hypnosis: ["9E"], ingrain: ["9E"], nightshade: ["9E"], @@ -3194,19 +3194,19 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { learnset: { absorb: ["9L1"], sweetscent: ["9L1"], - leechseed: ["9L1"], - deepbreath: ["9L1"], - magicalleaf: ["9L1"], - grasswhistle: ["9L1"], - megadrain: ["9L1"], - amnesia: ["9L1", "9M"], - aromatherapy: ["9L1"], - gigadrain: ["9L1", "9M"], - destinybond: ["9L1"], - petalblizzard: ["9L1"], - synthesis: ["9L1", "9M"], - dreameater: ["9L1", "9M"], - petaldance: ["9L1"], + leechseed: ["9L4"], + deepbreath: ["9L7"], + magicalleaf: ["9L11"], + grasswhistle: ["9L14"], + megadrain: ["9L17"], + amnesia: ["9L21", "9M"], + aromatherapy: ["9L24"], + gigadrain: ["9L27", "9M"], + destinybond: ["9L32"], + petalblizzard: ["9L37"], + synthesis: ["9L42", "9M"], + dreameater: ["9L47", "9M"], + petaldance: ["9L52"], hyperbeam: ["9M"], gigaimpact: ["9M"], hiddenpower: ["9M"], @@ -4067,6 +4067,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { leafblade: ["9L55"], agility: ["9L60"], bravebird: ["9L65"], + reversal: ["9L70"], hyperbeam: ["9L1"], gigaimpact: ["9L1"], hiddenpower: ["9M"], @@ -4324,9 +4325,9 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { wingattack: ["9L22"], switcheroo: ["9L33"], uturn: ["9L33", "9M"], - slam: ["9L44"], + doublehit: ["9L44"], twister: ["9L44"], - doublehit: ["9L55"], + slam: ["9L55"], skydrop: ["9L55"], coil: ["9L66"], tailwind: ["9L66", "9M"], @@ -4375,17 +4376,17 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { lifedew: ["9L6"], confuseray: ["9L10"], bulletseed: ["9L16"], - refresh: ["9L21"], - megadrain: ["9L25"], - growth: ["9L29"], - magicalleaf: ["9L35"], - aromatherapy: ["9L40"], - applebomb: ["9L45"], - ingrain: ["9L49"], - gigadrain: ["9L54", "9M"], - rejuvenate: ["9L59"], - seedbomb: ["9L63", "9M"], - grassyterrain: ["9L67", "9M"], + refresh: ["9L22"], + megadrain: ["9L27"], + growth: ["9L31"], + magicalleaf: ["9L37"], + aromatherapy: ["9L43"], + applebomb: ["9L48"], + ingrain: ["9L52"], + gigadrain: ["9L58", "9M"], + rejuvenate: ["9L64"], + seedbomb: ["9L69", "9M"], + grassyterrain: ["9L73", "9M"], hyperbeam: ["9M"], gigaimpact: ["9M"], hiddenpower: ["9M"], @@ -4434,17 +4435,17 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { learnset: { nightshade: ["9L1"], fairywind: ["9L6"], - mist: ["9L11"], - ominouswind: ["9L16"], - camouflage: ["9L21"], - mistyterrain: ["9L26", "9M"], - moonblast: ["9L31"], - spiritshackle: ["9L36"], - gravity: ["9L41", "9M"], - moonlight: ["9L46"], - fallenarrow: ["9L51"], - nightdaze: ["9L56"], - curse: ["9L61"], + mist: ["9L12"], + ominouswind: ["9L18"], + camouflage: ["9L24"], + mistyterrain: ["9L30", "9M"], + moonblast: ["9L36"], + gravity: ["9L42", "9M"], + spiritshackle: ["9L48"], + moonlight: ["9L54"], + fallenarrow: ["9L60"], + nightdaze: ["9L66"], + curse: ["9L72"], hyperbeam: ["9M"], gigaimpact: ["9M"], hiddenpower: ["9M"], @@ -4489,17 +4490,17 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { learnset: { round: ["9L1", "9M"], incinerate: ["9L6", "9M"], - sing: ["9L11"], - chatter: ["9L16"], - mirrormove: ["9L21"], - sunnyday: ["9L26", "9M"], - heatwave: ["9L31", "9M"], - torchsong: ["9L36"], - featherdance: ["9L41"], - morningsun: ["9L46"], - risingchorus: ["9L51"], - synchronoise: ["9L56"], - perishsong: ["9L61"], + sing: ["9L12"], + chatter: ["9L18"], + mirrormove: ["9L24"], + sunnyday: ["9L30", "9M"], + heatwave: ["9L36", "9M"], + featherdance: ["9L42"], + torchsong: ["9L48"], + morningsun: ["9L54"], + risingchorus: ["9L60"], + synchronoise: ["9L66"], + perishsong: ["9L72"], hyperbeam: ["9M"], gigaimpact: ["9M"], hiddenpower: ["9M"], @@ -4602,7 +4603,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { attract: ["9L31", "9M"], tickle: ["9L37"], covet: ["9L43"], - dazzlinggleam: ["9L49", "9M"], + alluringvoice: ["9L49"], charm: ["9L55", "9M"], captivate: ["9L61"], lovelykiss: ["9L67"], @@ -4632,7 +4633,6 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { payback: ["9M"], compensation: ["9M"], icywind: ["9M"], - steelwing: ["9M"], magiccoat: ["9M"], spite: ["9M"], roleplay: ["9M"], @@ -4645,6 +4645,7 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { amnesia: ["9M"], psychic: ["9M"], foulplay: ["9M"], + dazzlinggleam: ["9M"], hypervoice: ["9M"], acrobatics: ["9M"], substitute: ["9M"], @@ -4906,72 +4907,6 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { trumpcard: ["9D"], }, }, - oceides: { - learnset: { - whitewater: ["9L1"], - waterpulse: ["9L1", "9M"], - magnitude: ["9L8"], - nobleroar: ["9L15"], - slam: ["9L22"], - aquajet: ["9L29"], - bulldoze: ["9L36", "9M"], - mist: ["9L43"], - surf: ["9L50", "9M"], - earthquake: ["9L57", "9M"], - tidalwave: ["9L64"], - dive: ["9L71", "9M"], - punishment: ["9L78"], - fissure: ["9L85"], - wavecrash: ["9L92"], - hyperbeam: ["9M"], - gigaimpact: ["9M"], - hiddenpower: ["9M"], - secretpower: ["9M"], - dragontail: ["9M"], - screech: ["9M"], - attract: ["9M"], - rest: ["9M"], - snore: ["9M"], - protect: ["9M"], - raindance: ["9M"], - facade: ["9M"], - round: ["9M"], - echoedvoice: ["9M"], - brine: ["9M"], - whirlpool: ["9M"], - chillywater: ["9M"], - rocktomb: ["9M"], - icywind: ["9M"], - breakingswipe: ["9M"], - rocksmash: ["9M"], - tantrum: ["9M"], - block: ["9M"], - workup: ["9M"], - bulkup: ["9M"], - icebeam: ["9M"], - hydropump: ["9M"], - strength: ["9M"], - hypervoice: ["9M"], - earthpower: ["9M"], - stoneedge: ["9M"], - dragonpulse: ["9M"], - waterfall: ["9M"], - aquatail: ["9M"], - zenheadbutt: ["9M"], - substitute: ["9M"], - sleeptalk: ["9M"], - stealthrock: ["9M"], - return: ["9M"], - frustration: ["9M"], - uproar: ["9M"], - bodypress: ["9M"], - scald: ["9M"], - superpower: ["9M"], - endure: ["9M"], - terablast: ["9T"], - highhorsepower: ["9D"], - }, - }, hatar: { learnset: { flamewheel: ["9L1"], @@ -5027,7 +4962,8 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { psychup: ["9M"], painsplit: ["9M"], workup: ["9M"], - calmmind: ["9M"], + bulkup: ["9M"], + swordsdance: ["9M"], nastyplot: ["9M"], fireblast: ["9M"], psychic: ["9M"], @@ -5144,6 +5080,72 @@ export const Learnsets: {[speciesid: string]: ModdedLearnsetData} = { eminence: ["9D"], }, }, + oceides: { + learnset: { + whitewater: ["9L1"], + waterpulse: ["9L1", "9M"], + magnitude: ["9L8"], + nobleroar: ["9L15"], + slam: ["9L22"], + aquajet: ["9L29"], + bulldoze: ["9L36", "9M"], + mist: ["9L43"], + surf: ["9L50", "9M"], + earthquake: ["9L57", "9M"], + tidalwave: ["9L64"], + dive: ["9L71", "9M"], + punishment: ["9L78"], + fissure: ["9L85"], + wavecrash: ["9L92"], + hyperbeam: ["9M"], + gigaimpact: ["9M"], + hiddenpower: ["9M"], + secretpower: ["9M"], + dragontail: ["9M"], + screech: ["9M"], + rest: ["9M"], + snore: ["9M"], + protect: ["9M"], + raindance: ["9M"], + facade: ["9M"], + round: ["9M"], + echoedvoice: ["9M"], + avalanche: ["9M"], + brine: ["9M"], + whirlpool: ["9M"], + tantrum: ["9M"], + chillywater: ["9M"], + rocktomb: ["9M"], + icywind: ["9M"], + breakingswipe: ["9M"], + rocksmash: ["9M"], + block: ["9M"], + workup: ["9M"], + bulkup: ["9M"], + icebeam: ["9M"], + hydropump: ["9M"], + strength: ["9M"], + hypervoice: ["9M"], + earthpower: ["9M"], + stoneedge: ["9M"], + dragonpulse: ["9M"], + waterfall: ["9M"], + aquatail: ["9M"], + zenheadbutt: ["9M"], + substitute: ["9M"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + return: ["9M"], + frustration: ["9M"], + uproar: ["9M"], + bodypress: ["9M"], + scald: ["9M"], + superpower: ["9M"], + endure: ["9M"], + terablast: ["9T"], + highhorsepower: ["9D"], + }, + }, norphaval: { learnset: { cosmicpower: ["9L1"], diff --git a/data/mods/earthsky/moves.ts b/data/mods/earthsky/moves.ts index efbba14ecb..526fa7fc51 100644 --- a/data/mods/earthsky/moves.ts +++ b/data/mods/earthsky/moves.ts @@ -5,7 +5,7 @@ bludg: Short for bludgeoning. Power is multiplied by 1.5 when used by a Pokemon bullet: Definition includes pulse and cannon moves. Power is multiplied by 1.3 when used by a Pokemon with the Mega Launcher Ability. Has no effect on Pokemon with the Bulletproof Ability. powder: Has no effect on Grass-type Pokemon, Pokemon with the Immunity Ability, and Pokemon holding Safety Goggles. punch: Power is multiplied by 1.3 when used by a Pokemon with the Iron Fist Ability. -sound: Power is multiplied by 1.2 when used by a Pokemon with the Cacophony Ability. +sound: Power is multiplied by 1.2 when used by a Pokemon with the Cacophony Ability. Has no effect on Pokemon with the Soundproof Ability. */ @@ -423,7 +423,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { this.attrLastMove('[still]'); this.add('-anim', source, "Dig", source); }, - shortDesc: "Switches out. Replacement ignores hazards and residual damage this turn.", + shortDesc: "Switches out with hazard/residual protection this turn.", + desc: "Switches out. Replacement ignores hazards and residual damage this turn.", start: " [POKEMON] dug a tunnel and escaped!", }, fairyfire: { @@ -854,7 +855,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { delete pokemon.statusState; } // volatiles - const affectedStatuses = ['attract','charge','confusion','curse','disable','doubleteam','electrify','encore','flashfire','focusenergy','foresight','gastroacid','imprison','ingrain','laserfocus','leechseed','lockon','magnetrise','minimize','miracleeye','mindreader','nightmare','odorsleuth','partiallytrapped','perishsong','powder','powertrick','preheat','risingchorus','shelter','stasis','strongpartialtrap','spotlight','tangledfeet','tarshot','taunt','telekinesis','throatchop','torment','trapped','withering','yawn']; //Volatiles that can be removed manually or with time + const affectedStatuses = ['attract','charge','confusion','curse','disable','doubleteam','electrify','encore','flashfire','focusenergy','foresight','gastroacid','imprison','ingrain','laserfocus','leechseed','lockon','magnetrise','minimize','miracleeye','mindreader','nightmare','odorsleuth','partiallytrapped','perishsong','powder','powertrick','preheat','risingchorus','saltcure','shelter','spotlight','stasis','strongpartialtrap','tangledfeet','tarshot','taunt','telekinesis','throatchop','torment','trapped','withering','yawn']; //Volatiles that can be removed manually or with time //const affectedProperties = ['time','duration','counter','stage']; for (const volatile of affectedStatuses) { const returnVolatile = pokemon.previousTurnState.volatiles[volatile]; @@ -866,7 +867,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { success = true; pokemon.volatiles[volatile] = returnVolatile; } else { //add volatile, not using the function to avoid calling events - if(['attract', 'lockon', 'mindreader', 'partiallytrapped', 'strongpartialtrap', 'trapped'].includes(volatile)){ //don't restore linked effects if the one(s) who set it aren't around + if(['attract', 'blocked', 'meanlooked', 'lockon', 'mindreader', 'partiallytrapped', 'strongpartialtrap', 'trapped'].includes(volatile)){ //don't restore linked effects if the one(s) who set it aren't around let stillActive = false; for(const setter of returnVolatile.linkedPokemon){ if(setter.isActive) stillActive = true; @@ -1247,7 +1248,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { duration: 3, onStart(pokemon){ this.effectState.affectedStatuses = ['confusion','disable','electrify','encore','imprison','laserfocus','leechseed','magnetrise','minimize','nightmare','partiallytrapped','perishsong','powertrick','protosynthesis','quarkdrive','risingchorus','strongpartialtrap','taunt','telekinesis','throatchop','torment','yawn'], //Volatiles that can be removed manually or with time - this.effectState.noStart = ['autotomize','aquaring','attract','bunkerdown','charge','curse','destinybond','doubleteam','endure','evade','flashfire','focusenergy','followme','foresight','grudge','ingrain','kingsshield','lockon','miracleeye','mindreader','obstruct','odorsleuth','playdead','powder','preheat','protect','ragepowder','rebound','saltcure','shelter','slipaway','snatch','spikyshield','spotlight','substitute','tangledfeet','tarshot','withering'], //Volatiles that can't be added, but either have no duration or have to be removable to prevent breaking things/being broken + this.effectState.noStart = ['autotomize','aquaring','attract','bide','bunkerdown','charge','curse','destinybond','doubleteam','endure','evade','flashfire','focusenergy','followme','foresight','grudge','ingrain','kingsshield','lockon','magiccoat', 'miracleeye','mindreader','obstruct','odorsleuth','playdead','powder','preheat','protect','ragepowder','rebound','saltcure','shelter','slipaway','snatch','spikyshield','spotlight','substitute','tangledfeet','tarshot','withering'], //Volatiles that can't be added, but either have no duration or have to be removable to prevent breaking things/being broken this.add('-start', pokemon, 'move: Stasis'); }, onChangeBoost(boost, pokemon) { @@ -1304,9 +1305,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { num: 1025, basePower: 60, basePowerCallback(pokemon, target, move) { - if(pokemon.ignoringItem()) return; const item = pokemon.getItem(); - if (item && !item.consumable) { + if (item && !pokemon.ignoringItem() && !item.consumable) { this.debug("Swing power increase for held item"); return move.basePower * 1.5; } @@ -1466,7 +1466,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { priority: 0, flags: {protect: 1, mirror: 1}, condition: { - noCopy: true, onStart(pokemon) { this.add('-start', pokemon, 'Withering'); }, @@ -1549,6 +1548,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { anchorshot: { inherit: true, pp: 10, + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps target for 4 turns.", isNonstandard: null, }, aquastep: { @@ -1574,7 +1575,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, basePower: 110, accuracy: 85, - pp: 10, contestType: "Cool", }, attackorder: { @@ -1736,8 +1736,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, basePower: 20, volatileStatus: 'strongpartialtrap', - shortDesc: "Traps and damages the foe a lot for 2-3 turns.", - desc: "Prevents the target from switching for two or three turns (four turns if the user is holding Grip Claw). Causes damage to the target equal to 1/4 of its maximum HP (1/3 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for two turns (three turns if the user is holding Grip Claw). Causes damage to the target equal to 1/4 of its maximum HP (1/3 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target a lot for 2 turns.", }, bite: { inherit: true, @@ -1767,7 +1767,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { blazingtorque: { inherit: true, basePower: 100, - flags: {protect: 1}, + accuracy: 90, + flags: {protect: 1, defrost: 1}, isNonstandard: null, noSketch: null, contestType: "Cool", @@ -1786,7 +1787,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { onHit(target, source, move) { return target.addVolatile('blocked', source, move, 'trapper'); }, - desc: "Prevents the target from switching out. Damaging switch moves, Escape Plan and a held Eject Button or Eject Pack will fail to make the target leave the field as well. The target can still switch out if it is holding Shed Shell, has Run Away, or uses Baton Pass, Escape Tunnel, Psy Bubble, Slip Away, or Teleport. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Damaging switch moves, Escape Plan, and a held Eject Button or Eject Pack will fail to make the target leave the field as well. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Psy Bubble, Slip Away, or Teleport. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Traps the target for 4 turns, ability/item/damage switch fails.", }, bodyslam: { inherit: true, @@ -1975,13 +1977,20 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { accuracy: 85, volatileStatus: 'strongpartialtrap', isNonstandard: null, - shortDesc: "Traps and damages the foe a lot for 2-3 turns.", - desc: "Prevents the target from switching for two or three turns (four turns if the user is holding Grip Claw). Causes damage to the target equal to 1/4 of its maximum HP (1/3 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for two turns (three turns if the user is holding Grip Claw). Causes damage to the target equal to 1/4 of its maximum HP (1/3 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target a lot for 2 turns.", }, coil: { inherit: true, pp: 10, }, + combattorque: { + inherit: true, + accuracy: 90, + flags: {protect: 1}, + isNonstandard: null, + noSketch: null, + }, cometpunch: { inherit: true, basePower: 20, @@ -2140,7 +2149,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, defog: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1, wind: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, wind: 1, mustpressure: 1}, onHitField(target, source, move) { const enemySide = source.side.foe; let success = false; @@ -2529,17 +2538,17 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { pokemon.tryTrap(); }, onHit(target, source, move) { //Damaging moves won't switch - if(move.selfSwitch && target !== source && !source.hasItem('shedshell') && !source.hasAbility('runaway')) delete move.selfSwitch; + if(move.selfSwitch && target !== source && !source.volatiles['substitute'] && !source.hasItem('shedshell') && !source.hasAbility('runaway')) delete move.selfSwitch; }, onAfterMoveSecondaryPriority: -100, onAfterMoveSecondary(target, source, move) { //Items and custom Abilities won't switch if(target !== source){ - if(source.switchFlag && !source.hasItem('shedshell') && !source.hasAbility('runaway')){ + if(source.switchFlag && !source.volatiles['substitute'] && !source.hasItem('shedshell') && !source.hasAbility('runaway')){ this.add('-fail', target, '[from] move: Fairy Lock'); source.switchFlag = false; return null; } - if(target.switchFlag && !target.hasItem('shedshell') && !target.hasAbility('runaway')){ + if(target.switchFlag && !source.volatiles['substitute'] && !target.hasItem('shedshell') && !target.hasAbility('runaway')){ this.add('-fail', target, '[from] move: Fairy Lock'); source.switchFlag = false; return null; @@ -2553,7 +2562,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { } }, }, - desc: "Prevents all active Pokemon from switching next turn. Damaging switch moves, Escape Plan, and a held Eject Button or Eject Pack will fail to make any Pokemon leave the field as well. A Pokemon can still switch out if it is holding Shed Shell, has Run Away, or uses Baton Pass, Escape Tunnel, Psy Bubble, Slip Away, or Teleport. Fails if the effect is already active.", + desc: "Prevents all active Pokemon from switching next turn. Damaging switch moves, Escape Plan, and a held Eject Button or Eject Pack will fail to make any Pokemon leave the field as well. A Pokemon can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Psy Bubble, Slip Away, or Teleport. Fails if the effect is already active.", + shortDesc: "Traps everyone until end of next turn, ability/item/damage switch fails.", fail: " [TARGET]'s exit was blocked!", }, fakeout: { @@ -3005,7 +3015,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, glare: { inherit: true, - pp: 15, + pp: 10, }, grasspledge: { inherit: true, @@ -3119,7 +3129,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, healblock: { inherit: true, - flags: {mirror: 1}, + flags: {mirror: 1, mustpressure: 1}, volatileStatus: null, sideCondition: 'healblock', condition: { @@ -3391,8 +3401,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { pp: 15, onHit(target, source, move) {}, volatileStatus: 'partiallytrapped', - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Psy Bubble, Parting Shot, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the target for 4-5 turns.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", }, jetpunch: { inherit: true, @@ -3432,6 +3442,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, basePower: 110, accuracy: 85, + pp: 5, isNonstandard: null, }, lastresort: { @@ -3635,8 +3646,15 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { this.add('-fieldend', 'move: Magic Room', '[of] ' + this.effectState.source); }, }, - desc: "For 5 turns, the held items of all active Pokemon have no effect. An item's effect of causing forme changes is unaffected, but any other effects from such items are negated. During the effect, Mega Evolution and Ultra Burst cannot be performed, and Fling, Natural Gift, Poltergeist, Stuff Cheeks, and Teatime are prevented from being used by all active Pokemon. If this move is used during the effect, the effect ends.", - shortDesc: "For 5 turns, all held items have no effect. No Mega/Ultra Burst.", + desc: "For 5 turns, the held items of all active Pokemon have no effect. An item's effect of causing an existing forme change is unaffected, but any other effects from such items are negated. During the effect, Mega Evolution and Ultra Burst cannot be performed, and Fling, Natural Gift, Poltergeist, Stuff Cheeks, and Teatime are prevented from being used by all active Pokemon. The move Swing will not receive a power boost from holding an item. If this move is used during the effect, the effect ends.", + shortDesc: "For 5 turns, held items have no effect. No Mega/Ultra Burst.", + }, + magicaltorque: { + inherit: true, + accuracy: 90, + flags: {protect: 1}, + isNonstandard: null, + noSketch: null, }, magnetrise: { inherit: true, @@ -3693,8 +3711,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { target: "normal", type: "Normal", contestType: "Beautiful", - desc: "Prevents the target from switching out; overrides a Ghost-type target's immunity to being trapped. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Prevents the target from switching out, even Ghosts.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw); this overrides normal immunity to being trapped if the target is a Ghost-type, is holding Shed Shell, is behind a Substitute, or has Run Away. The target can still switch out if it uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + shortDesc: "Traps the target for 4 turns, ignores immunity.", }, meditate: { inherit: true, @@ -4111,7 +4129,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { target: "self", type: "Fighting", contestType: "Clever", - desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage, but it becomes prevented from switching out. The user can still switch out if it uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped. Fails if the user has already been prevented from switching by this effect.", + desc: "Raises the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage, but it becomes prevented from switching out. The user can still switch out if it is holding a Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped. Fails if the user has already been prevented from switching by this effect.", start: " [POKEMON] will no longer run from battle!", }, nobleroar: { @@ -4122,6 +4140,13 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { contestType: "Cool", shortDesc: "Lowers foe(s) Attack and Sp. Atk by 1.", }, + noxioustorque: { + inherit: true, + accuracy: 90, + flags: {protect: 1}, + isNonstandard: null, + noSketch: null, + }, obstruct: { inherit: true, condition: { @@ -4179,16 +4204,41 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, octolock: { inherit: true, + duration: 4, flags: {protect: 1, mirror: 1, contact: 1}, + condition: { + durationCallback(target, source) { + if (source?.hasItem('gripclaw')) return 6; + return 4; + }, + onStart(pokemon, source) { + this.add('-start', pokemon, 'move: Octolock', '[of] ' + source); + }, + onResidualOrder: 14, + onResidual(pokemon) { + const source = this.effectState.source; + if (source && (!source.isActive || source.hp <= 0 || !source.activeTurns)) { + delete pokemon.volatiles['octolock']; + this.add('-end', pokemon, 'Octolock', '[partiallytrapped]', '[silent]'); + return; + } + this.boost({def: -1, spd: -1}, pokemon, source, this.dex.getActiveMove('octolock')); + }, + onTrapPokemon(pokemon) { + if (this.effectState.source && this.effectState.source.isActive) pokemon.tryTrap(); + }, + }, isNonstandard: null, contestType: "Tough", + desc: "Prevents the target from switching out for four turns (six turns if user is holding Grip Claw). At the end of each turn during effect, the target's Defense and Special Defense are lowered by 1 stage. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, 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 or if the target uses Rapid Spin successfully", + shortDesc: "Traps target for 4 turns, -1 Def and SpD each turn.", }, odorsleuth: { inherit: true, - volatileStatus: 'odorsleuth', - onTryHit(target) {}, + onHit(target, source, move) { + return target.addVolatile('odorsleuth', source, move, 'sleuther'); + }, condition: { - noCopy: true, onStart(pokemon) { if(pokemon.removeVolatile('evade') || pokemon.removeVolatile('doubleteam') || pokemon.removeVolatile('minimize') || pokemon.removeVolatile('tangledfeet')){ this.debug('Odor Sleuth removed evasiveness'); @@ -4200,7 +4250,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, }, isNonstandard: null, - desc: "As long as the target remains active, it cannot become Evasive, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. Existing Evasiveness is removed. Fails if the target is already affected.", + desc: "As long as the user and target remain active, the target cannot become Evasive, and Normal- and Fighting-type attacks can hit the target if it is a Ghost type. Existing Evasiveness is removed. If the target leaves the field using Baton Pass, the replacement becoems affected instead. Fails if the target is already affected.", shortDesc: "Target loses Ghost immunities and can't become Evasive.", }, orderup: { @@ -4231,6 +4281,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { originpulse: { inherit: true, flags: {protect: 1, bullet: 1, mirror: 1}, + pp: 5, }, particleslam: { num: 916, @@ -4267,6 +4318,9 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, condition: { duration: 2, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'snow') return false; + }, onInvulnerability(target, source, move) { if (['phantomforce', 'shadowclaw', 'shadowforce', 'shadowpunch', 'shadowsneak'].includes(move.id)) { return; @@ -4279,7 +4333,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { } }, }, - desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Protect, Psy Bubble, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Shadow Punch, Shadow Sneak, Shadow Claw, Phantom Force, and Shadow Force; these moves also have their damage doubled. If the user is holding a Power Herb, the move completes in one turn.", + desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Psy Bubble, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Shadow Punch, Shadow Sneak, Shadow Claw, Phantom Force, and Shadow Force; these moves also have their damage doubled. If the user is holding a Power Herb, the move completes in one turn.", }, pinmissile: { inherit: true, @@ -4372,6 +4426,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { precipiceblades: { inherit: true, accuracy: 80, + pp: 5, }, present: { num: 217, @@ -4481,8 +4536,46 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { rapidspin: { inherit: true, secondary: null, - desc: "If this move is successful and the user has not fainted, the effects of Leech Seed and binding moves end for the user, and all hazards are removed from the user's side of the field.", - shortDesc: "Free user from hazards/bind/Leech Seed.", + onAfterHit(target, pokemon, move) { + if (!move.hasSheerForce) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); + } + const userConditions = ['trapped', 'partiallytrapped', 'strongpartialtrap', 'blocked']; + for (const condition of userConditions) { + if (pokemon.hp && pokemon.volatiles[condition]) { + pokemon.removeVolatile(condition); + } + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); + } + } + } + }, + onAfterSubDamage(damage, target, pokemon, move) { + if (!move.hasSheerForce) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); + } + const userConditions = ['trapped', 'partiallytrapped', 'strongpartialtrap', 'blocked', 'octolock']; + for (const condition of userConditions) { + if (pokemon.hp && pokemon.volatiles[condition]) { + pokemon.removeVolatile(condition); + } + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); + } + } + } + }, + desc: "If this move is successful and the user has not fainted, the effects of Leech Seed and trapping/binding moves end for the user, and all hazards are removed from the user's side of the field.", + shortDesc: "Free user from hazards/trap/Leech Seed.", }, razorleaf: { inherit: true, @@ -4530,6 +4623,16 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, desc: "Causes the user's types to become the same as the current types of the target. A type that had been removed is not copied. Fails if the user is an Arceus or a Silvally, if the target is typeless, or if the target has the Ability Own Tempo.", }, + refresh: { + inherit: true, + onHit(pokemon) { + if (['', 'frz'].includes(pokemon.status)) return false; + pokemon.cureStatus(); + }, + isNonstandard: null, + desc: "The user cures its burn, poison, paralysis, or sleep. Fails otherwise.", + shortDesc: "User cures its burn, poison, paralysis, or sleep.", + }, rest: { inherit: true, pp: 10, @@ -4691,7 +4794,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { onTryAddVolatile(status, target, source, effect) { if (!effect || !source) return; if (effect.effectType === 'Move' && effect.infiltrates && target.side !== source.side) return; - if (['confusion', 'curse', 'leechseed', 'nightmare', 'saltcure', 'yawn'].includes(status.id) && target !== source) { + if (['confusion', 'curse', 'leechseed', 'nightmare', 'saltcure', 'withering', 'yawn'].includes(status.id) && target !== source) { if (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Safeguard'); return false; } @@ -4708,9 +4811,24 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { this.add('-sideend', side, 'Safeguard'); }, }, - desc: "For 5 turns, the user and its party members cannot have non-volatile status conditions, confusion, Leech Seed, or a Curse or Nightmare inflicted on them by other Pokemon. Pokemon on the user's side cannot become affected by Yawn but can fall asleep from its effect. Residual damage from Spikes, Stealth Rock, Sandstorm, Snow, and a burning field is blocked for the user and its team. It is removed from the user's side if an opponent uses the move Defog. Fails if the effect is already active on the user's side.", + desc: "For 5 turns, the user and its party members cannot have non-volatile status conditions, confusion, Curse, Leech Seed, Nightmare, Salt Cure, or Withering inflicted on them by other Pokemon. Pokemon on the user's side cannot become affected by Yawn but can fall asleep from its effect. Residual damage from Spikes, Stealth Rock, Sandstorm, Snow, and a burning field is blocked for the user and its team. It is removed from the user's side if an opponent uses the move Defog. Fails if the effect is already active on the user's side.", shortDesc: "For 5 turns, user party: no +status or field damage.", }, + saltcure: { + inherit: true, + condition: { + onStart(pokemon) { + this.add('-start', pokemon, 'Salt Cure'); + }, + onResidualOrder: 13, + onResidual(pokemon) { + this.damage(pokemon.baseMaxhp / (pokemon.hasType(['Water', 'Steel']) ? 4 : 8)); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Salt Cure'); + }, + }, + }, sandattack: { inherit: true, pp: 20, @@ -4796,6 +4914,9 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, condition: { duration: 2, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'snow') return false; + }, onInvulnerability(target, source, move) { if (['phantomforce', 'shadowclaw', 'shadowforce', 'shadowpunch', 'shadowsneak'].includes(move.id)) { return; @@ -4808,7 +4929,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { } }, }, - desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Protect, Psy Bubble, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Shadow Punch, Shadow Sneak, Shadow Claw, Phantom Force, and Shadow Force; these moves also have their damage doubled. If the user is holding a Power Herb, the move completes in one turn.", + desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Psy Bubble, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Shadow Punch, Shadow Sneak, Shadow Claw, Phantom Force, and Shadow Force; these moves also have their damage doubled. If the user is holding a Power Herb, the move completes in one turn.", }, sharpen: { inherit: true, @@ -4841,7 +4962,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { pokemon.tryTrap(); }, }, - desc: "Raises the user's Defense and Special Defense by 2 stages and prevents other Pokemon from scoring a critical hit on it. The user also becomes prevented from switching out, but can still switch out if it uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped. Fails if the user has already been prevented from switching by this effect.", + desc: "Raises the user's Defense and Special Defense by 2 stages and prevents other Pokemon from scoring a critical hit on it. The user also becomes prevented from switching out, but can still switch out if it is holding a Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the user leaves the field using Baton Pass, the replacement will remain trapped. Fails if the user has already been prevented from switching by this effect.", shortDesc: "Def/Sp. Def +2, prevents critical hits. Traps user.", start: " [POKEMON] sheltered in place and will not leave!", }, @@ -5088,8 +5209,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, volatileStatus: 'strongpartialtrap', isNonstandard: null, - desc: "Prevents the target from switching for two or three turns (four turns if the user is holding Grip Claw). Causes damage to the target equal to 1/4 of its maximum HP (1/3 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", - shortDesc: "Traps and damages the foe a lot for 2-3 turns.", + desc: "Prevents the target from switching out for two turns (three turns if the user is holding Grip Claw). Causes damage to the target equal to 1/4 of its maximum HP (1/3 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target a lot for 2 turns.", contestType: "Clever", }, snarl: { @@ -5301,7 +5422,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, stickyweb: { inherit: true, - flags: {reflectable: 1, snatch: 1}, + flags: {reflectable: 1, snatch: 1, mustpressure: 1}, condition: { onSideStart(side) { this.add('-sidestart', side, 'move: Sticky Web'); @@ -5421,7 +5542,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { secondary: null, target: "normal", type: "Water", - desc: "Hits three times. If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + desc: "Hits three times. If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Psy Bubble, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", shortDesc: "Hits 3 times. Breaks protection for this turn.", }, swagger: { @@ -5563,6 +5684,10 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { priority: 0, flags: {snatch: 1}, }, + temperflare: { + inherit: true, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, defrost: 1}, + }, terablast: { num: 851, accuracy: 100, @@ -5571,7 +5696,7 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { name: "Tera Blast", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, mustpressure: 1}, + flags: {protect: 1, mirror: 1}, onPrepareHit(target, source, move) { this.attrLastMove('[anim] Tera Blast ' + move.type); }, @@ -5597,20 +5722,18 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { secondary: null, target: "normal", type: "Normal", - desc: "This move's type matches the Pokemon's held Tera Shard. If used by Stellar Form Terapagos, the move's type will be the one with the best effectiveness against the target.", - shortDesc: "Type matches held Tera Shard.", + desc: "This move's type matches the Pokemon's held Tera Shard, and its category matches whichever of the Pokemon's attacking stats is higher. If used by Stellar Form Terapagos, the move's type will be the one with the best effectiveness against the target.", + shortDesc: "Type matches held Tera Shard, category matches higher stat.", + contestType: "Beautiful", }, terastarstorm: { inherit: true, flags: {protect: 1, mirror: 1}, onModifyType(move, pokemon) {}, desc: "If the user is a Terapagos in Stellar Form, this move hits all opposing Pokemon.", - shortDesc: "If the user is a Terapagos in Stellar Form, this move hits all opposing Pokemon.", + shortDesc: "If Stellar Terapagos, hits all opposing Pokemon.", noSketch: null, - }, - throatchop: { - inherit: true, - basePower: 75, + contestType: "Beautiful", }, thousandarrows: { num: 614, @@ -5630,9 +5753,16 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { shortDesc: "Hits adjacent foes. Can hit floating foes.", isNonstandard: null, }, + throatchop: { + inherit: true, + basePower: 75, + }, thundercage: { inherit: true, accuracy: 85, + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", + contestType: "Clever", }, thunderfang: { inherit: true, @@ -5705,7 +5835,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { target: "normal", type: "Poison", contestType: "Clever", - shortDesc: "Traps the target and poisons it.", + shortDesc: "Poisons the target and prevents it from switching out for four turns (six turns if the user is holding Grip Claw).", + desc: "Traps target for 4 turns and poisons it.", }, triattack: { inherit: true, @@ -5946,11 +6077,12 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { target: "normal", type: "Dark", contestType: "Tough", - desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Psy Bubble, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", shortDesc: "Breaks the target's protection for this turn.", }, wickedtorque: { basePower: 100, + accuracy: 90, flags: {protect: 1}, isNonstandard: null, noSketch: null, @@ -5975,7 +6107,8 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, basePower: 20, accuracy: 100, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", }, wringout: { inherit: true, @@ -6387,7 +6520,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { imprison: { inherit: true, condition: { - noCopy: true, onStart(target) { this.add('-start', target, 'move: Imprison'); }, @@ -6653,9 +6785,12 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, spiderweb: { inherit: true, + onHit(target, source, move) { + return target.addVolatile('trapped', source, move); + }, isNonstandard: null, - desc: "Prevents the target from switching out for three turns. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped.", - shortDesc: "Traps foe(s) for three turns.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped.", + shortDesc: "Traps the target for 4 turns, even if user switches.", }, stormthrow: { inherit: true, @@ -6678,6 +6813,57 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { return null; } }, + condition: { + onStart(target, source, effect) { + this.add('-start', target, 'Substitute'); + this.effectState.hp = Math.floor(target.maxhp / 4); + }, + onTryPrimaryHitPriority: -1, + onTryPrimaryHit(target, source, move) { + if (target === source || move.flags['bypasssub'] || move.infiltrates) { + return; + } + let damage = this.actions.getDamage(source, target, move); + if (!damage && damage !== 0) { + this.add('-fail', source); + this.attrLastMove('[still]'); + return null; + } + damage = this.runEvent('SubDamage', target, source, move, damage); + if (!damage) { + return damage; + } + if (damage > target.volatiles['substitute'].hp) { + damage = target.volatiles['substitute'].hp as number; + } + target.volatiles['substitute'].hp -= damage; + source.lastDamage = damage; + if (target.volatiles['substitute'].hp <= 0) { + if (move.ohko) this.add('-ohko'); + target.removeVolatile('substitute'); + } else { + this.add('-activate', target, 'move: Substitute', '[damage]'); + } + if (move.recoil || move.id === 'chloroblast') { + this.damage(this.actions.calcRecoilDamage(damage, move, source), source, target, 'recoil'); + } + if (move.drain) { + this.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain'); + } + this.singleEvent('AfterSubDamage', move, null, target, source, move, damage); + this.runEvent('AfterSubDamage', target, source, move, damage); + return this.HIT_SUBSTITUTE; + }, + onEnd(target) { + this.add('-end', target, 'Substitute'); + }, + }, + onTrapPokemonPriority: -10, + onTrapPokemon(pokemon) { + if(!pokemon.volatiles['meanlooked']){ + pokemon.trapped = false; + } + }, }, taunt: { inherit: true, @@ -7087,21 +7273,47 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { }, clangoroussoul: null, /* Description updates */ + feint: { + inherit: true, + desc: "If this move is successful, it breaks through the target's Bunker Down, Detect, King's Shield, Obstruct, Protect, Psy Bubble, Silk Trap, Slip Away, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally.", + shortDesc: "Breaks the target's protection for this turn.", + }, firespin: { inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", + }, + magmastorm: { + inherit: true, + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", }, infestation: { inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", }, sandtomb: { inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", + }, + spiritshackle: { + inherit: true, + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps target for 4 turns.", + contestType: "Cool", + }, + thousandwaves: { + inherit: true, + isNonstandard: null, + desc: "Prevents the targets from switching out for four turns (six turns if the user is holding Grip Claw). The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps foe(s) for 4 turns.", }, whirlpool: { inherit: true, - desc: "Prevents the target from switching for four or five turns (seven turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin or Substitute successfully. This effect is not stackable or reset by using this or another binding move.", + desc: "Prevents the target from switching out for four turns (six turns if the user is holding Grip Claw). Causes damage to the target equal to 1/8 of its maximum HP (1/6 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell, is behind a Substitute, has Run Away, or uses Baton Pass, Escape Tunnel, Parting Shot, Psy Bubble, Slip Away, Teleport, U-turn, or Volt Switch. The effect ends if the user leaves the field or if the target uses Rapid Spin successfully. This effect is not stackable or reset by using this or another binding move.", + shortDesc: "Traps and damages the target for 4 turns.", }, /* Restorations */ aromatherapy: { @@ -7133,12 +7345,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - combattorque: { - inherit: true, - flags: {protect: 1}, - isNonstandard: null, - noSketch: null, - }, craftyshield: { inherit: true, isNonstandard: null, @@ -7263,12 +7469,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - magicaltorque: { - inherit: true, - flags: {protect: 1}, - isNonstandard: null, - noSketch: null, - }, magiccoat: { inherit: true, isNonstandard: null, @@ -7289,12 +7489,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - noxioustorque: { - inherit: true, - flags: {protect: 1}, - isNonstandard: null, - noSketch: null, - }, oblivionwing: { inherit: true, isNonstandard: null, @@ -7331,10 +7525,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - refresh: { - inherit: true, - isNonstandard: null, - }, searingshot: { inherit: true, isNonstandard: null, @@ -7359,10 +7549,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - thousandwaves: { - inherit: true, - isNonstandard: null, - }, twineedle: { inherit: true, isNonstandard: null, @@ -7627,10 +7813,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { contestType: "Cool", isNonstandard: null, }, - spiritshackle: { - inherit: true, - contestType: "Cool", - }, strengthsap: { inherit: true, contestType: "Clever", diff --git a/data/mods/earthsky/pokedex.ts b/data/mods/earthsky/pokedex.ts index ae75383626..7bb6d02f3f 100644 --- a/data/mods/earthsky/pokedex.ts +++ b/data/mods/earthsky/pokedex.ts @@ -1164,6 +1164,7 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { abilities: {0: "Tireless", H: "Gale Wings"}, heightm: 4.4, weightkg: 144, + color: "Green", tags: ["Sub-Legendary"], eggGroups: ["Undiscovered"], }, @@ -1177,7 +1178,7 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { heightm: 0.9, weightkg: 14.3, tags: ["Sub-Legendary"], - color: "Yellow", + color: "Green", eggGroups: ["Undiscovered"], }, selervis: { @@ -1190,7 +1191,7 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { heightm: 1.8, weightkg: 52.6, tags: ["Sub-Legendary"], - color: "Green", + color: "Purple", eggGroups: ["Undiscovered"], }, helyrion: { @@ -1271,45 +1272,45 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { color: "White", eggGroups: ["Undiscovered"], }, - oceides: { - num: -578, - name: "Oceides", - types: ["Water", "Ground"], - gender: "N", - baseStats: {hp: 135, atk: 120, def: 105, spa: 120, spd: 105, spe: 95}, - abilities: {0: "Pressure", H: "Against Current"}, - heightm: 2.9, - weightkg: 380.0, - tags: ["Restricted Legendary"], - color: "Blue", - eggGroups: ["Undiscovered"], - }, hatar: { - num: -579, + num: -578, name: "Hatar", types: ["Fire", "Dark"], gender: "N", baseStats: {hp: 100, atk: 135, def: 115, spa: 125, spd: 100, spe: 105}, abilities: {0: "Pressure", H: "Soul Drain"}, heightm: 2.6, - weightkg: 310.0, + weightkg: 350.0, tags: ["Restricted Legendary"], color: "Black", eggGroups: ["Undiscovered"], }, zuros: { - num: -580, + num: -579, name: "Zuros", types: ["Electric", "Flying"], gender: "N", baseStats: {hp: 100, atk: 105, def: 100, spa: 135, spd: 125, spe: 115}, abilities: {0: "Pressure", H: "Lightning Rod"}, - heightm: 3.2, + heightm: 2.9, weightkg: 320.0, tags: ["Restricted Legendary"], color: "Yellow", eggGroups: ["Undiscovered"], }, + oceides: { + num: -580, + name: "Oceides", + types: ["Water", "Ground"], + gender: "N", + baseStats: {hp: 135, atk: 120, def: 105, spa: 120, spd: 105, spe: 95}, + abilities: {0: "Pressure", H: "Against Current"}, + heightm: 3.2, + weightkg: 380.0, + tags: ["Restricted Legendary"], + color: "Blue", + eggGroups: ["Undiscovered"], + }, norphaval: { num: -581, name: "Norphaval", @@ -1558,7 +1559,7 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { forme: "Egelas", types: ["Bug", "Fire"], baseStats: {hp: 58, atk: 109, def: 72, spa: 88, spd: 48, spe: 109}, - abilities: {0: "Symbiosis", 1: "Hustle", H: "Truant"}, + abilities: {0: "Symbiosis", 1: "Hustle", H: "Swarm"}, heightm: 0.3, weightkg: 16.5, color: "Black", @@ -2108,6 +2109,10 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { abilities: {0: "Vital Spirit", 1: "Clean House", H: "Ice Body"}, isNonstandard: null, }, + electabuzz: { + inherit: true, + baseStats: {hp: 65, atk: 83, def: 57, spa: 100, spd: 85, spe: 105}, + }, taurospaldeacombat: { inherit: true, abilities: {0: "Intimidate", 1: "No Guard", H: "Relentless"}, @@ -2276,6 +2281,10 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Disturbance", 1: "Frisk", H: "Sap Sipper"}, }, + elekid: { + inherit: true, + baseStats: {hp: 45, atk: 63, def: 37, spa: 70, spd: 55, spe: 95}, + }, raikou: { inherit: true, abilities: {0: "Pressure", H: "Lightning Rod"}, @@ -2457,6 +2466,11 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Levitate", H: "Telepathy"}, }, + latiosmega: { + inherit: true, + baseStats: {hp: 80, atk: 120, def: 100, spa: 160, spd: 130, spe: 110}, + isNonstandard: null, + }, kyogre: { inherit: true, baseStats: {hp: 100, atk: 90, def: 90, spa: 140, spd: 120, spe: 60}, @@ -2763,6 +2777,16 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { abilities: {0: "Intimidate", 1: "Snow Plow", H: "Scrappy"}, isNonstandard: null, }, + munna: { + inherit: true, + abilities: {0: "Forewarn", 1: "Synchronize", H: "Wonder Skin"}, + isNonstandard: null, + }, + musharna: { + inherit: true, + abilities: {0: "Forewarn", 1: "Synchronize", H: "Wonder Skin"}, + isNonstandard: null, + }, roggenrola: { inherit: true, abilities: {0: "Sturdy", H: "Sand Force"}, @@ -2778,6 +2802,11 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { abilities: {0: "Sturdy", H: "Sand Force"}, isNonstandard: null, }, + swoobat: { + inherit: true, + baseStats: {hp: 87, atk: 67, def: 55, spa: 77, spd: 55, spe: 72}, + isNonstandard: null, + }, audinomega: { inherit: true, abilities: {0: "Triage"}, @@ -3430,6 +3459,18 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Blaze", H: "Receiver"}, }, + sobble: { + inherit: true, + abilities: {0: "Torrent", H: "Rattled"}, + }, + drizzile: { + inherit: true, + abilities: {0: "Torrent", H: "Technician"}, + }, + inteleon: { + inherit: true, + abilities: {0: "Torrent", H: "Technician"}, + }, rookidee: { inherit: true, abilities: {0: "Keen Eye", 1: "Disturbance", H: "Big Pecks"}, @@ -3596,6 +3637,10 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Own Tempo", 1: "Synchronize", H: "Clean House"}, }, + duraludon: { + inherit: true, + baseStats: {hp: 70, atk: 95, def: 110, spa: 115, spd: 45, spe: 75}, + }, zacian: { inherit: true, baseStats: {hp: 92, atk: 110, def: 115, spa: 80, spd: 115, spe: 118}, @@ -5278,10 +5323,6 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, isNonstandard: null, }, - latiosmega: { - inherit: true, - isNonstandard: null, - }, bidoof: { inherit: true, isNonstandard: null, @@ -5406,14 +5447,6 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, isNonstandard: null, }, - munna: { - inherit: true, - isNonstandard: null, - }, - musharna: { - inherit: true, - isNonstandard: null, - }, pidove: { inherit: true, isNonstandard: null, @@ -5430,10 +5463,6 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, isNonstandard: null, }, - swoobat: { - inherit: true, - isNonstandard: null, - }, audino: { inherit: true, isNonstandard: null, @@ -5936,13 +5965,17 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Heat Sink", 1: "Disturbance", H: "Pixilate"}, }, - /*nohface: { //CAPs should be renumbered this way, but it interferes with sprites at the moment + cresceidon: { inherit: true, - number: -14, + abilities: {0: "Filter", 1: "Rough Skin", H: "Water Veil"}, }, - kitsunoh: { + chuggalong: { inherit: true, - number: -15, + abilities: {0: "Cacophony", 1: "White Smoke", H: "Stall"}, + }, + /*nohface: { //CAPs should be renumbered this way, but it interferes with sprites at the moment + inherit: true, + number: -14, }, monohm: { inherit: true, diff --git a/data/mods/earthsky/rulesets.ts b/data/mods/earthsky/rulesets.ts index 624619e682..952cd5eb0e 100644 --- a/data/mods/earthsky/rulesets.ts +++ b/data/mods/earthsky/rulesets.ts @@ -80,7 +80,7 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { const egelasDex = [ "Caeleaf","Sprop","Graecust","Iguava","Chucklava","Helmuana","Newtiny","Ruggeft","Claymander","Palrat","Spectrat","Shinx","Luxio","Luxray","Stunky","Skuntank","Fanfowl","Plumifowl","Pealated","Hoothoot","Noctowl","Montura","Twintura","Silvurah","Caterpie","Metapod","Butterfree","Budew","Roselia","Roserade","Sothodil","Sosphodel","Toybot","Aibot","Utilitron","Trubbish","Garbodor","Faerunee","Slowpoke","Slowbro","Slowking","Stunfisk","Burrorm","Burryrm","Scarabouch","Azurill","Marill","Azumarill","Ballooffalo","Magikarp","Gyarados","Tigrissle","Beedive","Basculin","Pikeral","Feebas","Milotic","Deerling","Sawsbuck","Smoliv","Dolliv","Arboliva","Slakoth","Vigoroth","Slaking","Roggenrola","Boldore","Gigalith","Lithoshroom","Litholich","Sableye","Mawile","Klawf","Salandit","Salazzle","Axew","Fraxure","Haxorus","Rugblin","Runogre","Growlithe","Arcanine","Houndour","Houndoom","Joroo","Jaquol","Thylone","Fletchling","Fletchinder","Talonflame","Blitzle","Zebstrika","Falinks","Cufant","Copperajah","Phanpy","Donphan","Teddiursa","Ursaring","Trigenee","Hexyon","Hektillion","Termill","Terrazor","Heracross","Pinsir","Rockruff","Lycanroc","Elpine","Freezelk","Moorfrost","Snover","Abomasnow","Swinub","Piloswine","Mamoswine","Vanillite","Vanillish","Vanilluxe","Smoochum","Jynx","Zubat","Golbat","Crobat","Noibat","Noivern","Dunsparce","Dudunsparce","Drampa","Minior","Prominoid","Cryogonal","Riolu","Lucario","Zorua","Zoroark","Igglybuff","Jigglypuff","Wigglytuff","Delibird","Tynamo","Eelektrik","Eelektross","Elekid","Electabuzz","Electivire","Milcery","Alcremie","Inkay","Malamar","Croagunk","Toxicroak","Farfetch\u2019d","Kendo\u2019no","Deino","Zweilous","Hydreigon","Joltik","Galvantula","Lemurod","Sandygast","Palossand","Crabrawler","Crabominable","Exeggcute","Exeggutor","Tropius","Wingull","Pelipper","Antarctross","Shellder","Cloyster","Finneon","Lumineon","Gobellos","Dragobellos","Plecuum","Vorplec","Pyukumuku","Pincurchin","Lioxin","Frillish","Jellicent","Scrunge","Dhelmise","Cuttlelass","Dreadnautilus","Kravokalypse","Cubone","Marowak","Duskull","Dusclops","Dusknoir","Ralts","Kirlia","Gardevoir","Gallade","Elgyem","Beheeyem","Unown","Sigilyph","Carbink","Stegrowth","Stegrove","Angkol","Macedon","Tauros","Miltank","Durant","Heatmor","Ponyta","Rapidash","Mienfoo","Mienshao","Ascelyte","Paraiagon","Absol","Helioptile","Heliolisk","Silicobra","Sandaconda","Obelith","Pyramyth","Magby","Magmar","Magmortar","Torkoal","Turtonator","Moroth","Keelmora","Yamask","Cofagrigus","Bronzor","Bronzong","Honedge","Doublade","Aegislash","Druddigon","Deceuceus","Fervintill","Selervis","Helyrion","Daedestus","Apherove","Poleboar","Pallatinel","Jurotera","Oceides","Hatar","Zuros","Norphaval", "Glameow","Purugly","Eevee","Vaporeon","Jolteon","Flareon","Espeon","Umbreon","Leafeon","Glaceon","Sylveon","Audino","Stantler","Wyrdeer","Girafarig","Farigiraf","Hawlucha","Weedle","Kakuna","Beedrill","Petilil","Lilligant","Comfey","Sirfetch\u2019","Bellsprout","Weepinbell","Victreebell","Carnivine","Ursaluna","Cranidos","Rampardos","Shieldon","Bastiodon","Jangmo-o","Hakamo-o","Kommo-o","Shuckle","Onix","Steelix","Phantump","Trevenant","Charvenant","Slugma","Magcargo","Skorupi","Drapion","Trapinch","Vibrava","Flygon","Slurpin","Suctlot","Corsola","Cursola","Luvdisc","Qwilfish","Overqwil","Basculegion","Minccino","Cinccino","Munna","Musharna","Runerigus","Spritzee","Aromatisse","Murkrow","Honchkrow","Aerodactyl","Snorunt","Glalie","Froslass","Darumaka","Darmanitan","Lillipup","Herdier","Stoutland","Kricketot","Kricketune","Amplitune","Toxel","Toxtricity","Rotom","Enamorus","Shaymin","Diancie","Volcanion","Phione","Manaphy","Cresselia","Darkrai","Regigigas","Meloetta","Meltan","Melmetal", - "Shelmet","Accelgor","Karrablast","Escavalier","Wooper","Quagsire","Clodsire","Tympole","Palpitoad","Seismitoad","Surskit","Masquerain","Goomy","Sliggoo","Goodra","Indeedee","Meowth","Persian","Perrserker","Nickit","Thievul","Tandemaus","Maushold","Espurr","Meowstic","Gothita","Gothorita","Gothitelle","Burmy","Wormadam-Plant","Mothim","Klefki","Dedenne","Grubbin","Charjabug","Vikavolt","Squawkabilly","Squawkapo","Gastly","Haunter","Gengar","Koffing","Weezing","Misdreavus","Mismagius","Finizen","Palafin","Horsea","Seadra","Kingdra","Clobbopus","Grapploct","Remoraid","Octillery","Skrelp","Dragalge","Relicanth","Chewtle","Drednaw","Wimpod","Golisopod","Staryu","Starmie","Hippopotas","Hippowdon","Varoom","Revavroom","Kangaskhan","Geodude","Graveler","Golem","Stonjourner","Pawniard","Bisharp","Kingambit","Zangoose","Seviper","Tyrogue","Hitmonchan","Hitmonlee","Hitmontop","Oricorio-Pom Pom","Flabebe","Floette","Florges","Skarmory","Vulpix","Ninetales","Solrunt","Ralie","Pharoslass","Bergmite","Avalugg","Charcadet","Armarouge","Ceruledge","Pawmi","Pawmo","Pawmot","Mankey","Primeape","Annihilape","Sneasel","Sneasler","Weavile","Oddish","Gloom","Vileplume","Bellossom","Pumpkaboo","Gourgeist","Tarountula","Spidops","Applin","Flapple","Appletun","Dipplin","Hydrapple","Gimmighoul","Gholdengo","Khatrophys","Articuno","Zapdos","Moltres","Mew","Raikou","Entei","Suicune","Celebi","Regirock","Regice","Registeel","Latias","Latios","Groudon","Kyogre","Rayquaza","Jirachi","Deoxys","Uxie","Mesprit","Azelf","Heatran","Victini","Cobalion","Terrakion","Virizion","Keldeo","Genesect","Zygarde","Hoopa","Cosmog","Cosmoem","Solgaleo","Lunala","Nihilego","Buzzwole","Pheromosa","Xurkitree","Celesteela","Kartana","Guzzlord","Marshadow","Poipole","Naganadel","Stakataka","Blacephalon","Zeraora","Kubfu","Urshifu","Regieleki","Regidrago","Calyrex","Glastrier","Spectrier","Great Tusk","Scream Tail","Brute Bonnet","Flutter Mane","Slither Wing","Sandy Shocks","Iron Treads","Robo Bundle","Press Hands","Mecha Jugulis","Astro Glider","Armor Thorns","Roaring Moon","Valiant Droid","Koraidon","Miraidon","Walking Wake","Saber Leaves","Okidogi","Munkidori","Fezandipiti","Ogerpon","Gouging Fire","Raging Bolt","Power Chassis","Laser Crown","Terapagos" + "Shelmet","Accelgor","Karrablast","Escavalier","Wooper","Quagsire","Clodsire","Tympole","Palpitoad","Seismitoad","Surskit","Masquerain","Goomy","Sliggoo","Goodra","Indeedee","Meowth","Persian","Perrserker","Nickit","Thievul","Tandemaus","Maushold","Espurr","Meowstic","Gothita","Gothorita","Gothitelle","Burmy","Wormadam-Plant","Mothim","Klefki","Dedenne","Grubbin","Charjabug","Vikavolt","Squawkabilly","Squawkapo","Gastly","Haunter","Gengar","Koffing","Weezing","Misdreavus","Mismagius","Finizen","Palafin","Horsea","Seadra","Kingdra","Clobbopus","Grapploct","Remoraid","Octillery","Skrelp","Dragalge","Relicanth","Chewtle","Drednaw","Wimpod","Golisopod","Krabby","Kingler","Hippopotas","Hippowdon","Varoom","Revavroom","Kangaskhan","Geodude","Graveler","Golem","Stonjourner","Pawniard","Bisharp","Kingambit","Zangoose","Seviper","Tyrogue","Hitmonchan","Hitmonlee","Hitmontop","Oricorio-Pom Pom","Flabebe","Floette","Florges","Skarmory","Vulpix","Ninetales","Solrunt","Ralie","Pharoslass","Bergmite","Avalugg","Charcadet","Armarouge","Ceruledge","Pawmi","Pawmo","Pawmot","Mankey","Primeape","Annihilape","Sneasel","Sneasler","Weavile","Oddish","Gloom","Vileplume","Bellossom","Pumpkaboo","Gourgeist","Tarountula","Spidops","Applin","Flapple","Appletun","Dipplin","Hydrapple","Gimmighoul","Gholdengo","Khatrophys","Articuno","Zapdos","Moltres","Mew","Raikou","Entei","Suicune","Celebi","Regirock","Regice","Registeel","Latias","Latios","Groudon","Kyogre","Rayquaza","Jirachi","Deoxys","Uxie","Mesprit","Azelf","Heatran","Victini","Cobalion","Terrakion","Virizion","Keldeo","Genesect","Zygarde","Hoopa","Cosmog","Cosmoem","Solgaleo","Lunala","Nihilego","Buzzwole","Pheromosa","Xurkitree","Celesteela","Kartana","Guzzlord","Marshadow","Poipole","Naganadel","Stakataka","Blacephalon","Zeraora","Kubfu","Urshifu","Regieleki","Regidrago","Calyrex","Glastrier","Spectrier","Great Tusk","Scream Tail","Brute Bonnet","Flutter Mane","Slither Wing","Sandy Shocks","Iron Treads","Robo Bundle","Press Hands","Mecha Jugulis","Astro Glider","Armor Thorns","Roaring Moon","Valiant Droid","Koraidon","Miraidon","Walking Wake","Saber Leaves","Okidogi","Munkidori","Fezandipiti","Ogerpon","Gouging Fire","Raging Bolt","Power Chassis","Laser Crown","Terapagos" ]; const species = this.dex.species.get(set.species || set.name); if (!egelasDex.includes(species.baseSpecies)) { diff --git a/data/mods/earthsky/scripts.ts b/data/mods/earthsky/scripts.ts index 6d7525065a..7f1e322d07 100644 --- a/data/mods/earthsky/scripts.ts +++ b/data/mods/earthsky/scripts.ts @@ -108,8 +108,6 @@ export const Scripts: ModdedBattleScriptsData = { return ['reckless', 'rockhead'].includes(abilityid) || itemid === 'protector' || !(moves.includes('closecombat') || moves.includes('highjumpkick') || moves.includes('jumpkick')); case 'superpower': return !(moves.includes('closecombat') || moves.includes('highjumpkick') || moves.includes('jumpkick')); - case 'swing': - return abilityid === 'bludgeon' && !(itemid === '' || dex.items.get(itemid)?.consumable); case 'tantrum': return !(moves.includes('earthquake') || moves.includes('drillrun') || moves.includes('highhorsepower')) || formatType !== 'singles'; case 'terablast': @@ -141,7 +139,7 @@ export const Scripts: ModdedBattleScriptsData = { if (moveData.flags?.bite && abilityid === 'strongjaw' && id !== 'bite') { return true; } - if(moveData.multihit?.length && moveData.basePower > 15 && (['skilllink', 'technician'].includes(abilityid) || itemid === 'loadeddice')){ + if(moveData.multihit && moveData.basePower > 15 && (['skilllink', 'technician'].includes(abilityid) || itemid === 'loadeddice')){ return true; } if (moveData.basePower < 75 && !(abilityid === 'technician' && moveData.basePower <= 60 && moveData.basePower >= 50)) { @@ -1612,6 +1610,13 @@ export const Scripts: ModdedBattleScriptsData = { const effect = handler.effect; const pokemon = (handler.effectHolder as Pokemon); if (pokemon.fainted) continue; + + let handlerEventid = eventid; + if ((handler.effectHolder as Side).sideConditions) handlerEventid = `Side${eventid}`; + if ((handler.effectHolder as Field).pseudoWeather) handlerEventid = `Field${eventid}`; + if (handler.callback) { + this.singleEvent(handlerEventid, effect, handler.state, handler.effectHolder, null, null, relayVar, handler.callback); + } if (handler.end && handler.state && handler.state.duration) { if(stasisMons.includes(pokemon)){ if(pokemon.volatiles['stasis']?.affectedStatuses.includes(effect.id)){ @@ -1627,13 +1632,6 @@ export const Scripts: ModdedBattleScriptsData = { } } - let handlerEventid = eventid; - if ((handler.effectHolder as Side).sideConditions) handlerEventid = `Side${eventid}`; - if ((handler.effectHolder as Field).pseudoWeather) handlerEventid = `Field${eventid}`; - if (handler.callback) { - this.singleEvent(handlerEventid, effect, handler.state, handler.effectHolder, null, null, relayVar, handler.callback); - } - this.faintMessages(); if (this.ended) return; } @@ -3769,11 +3767,13 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','farfetchdgalar').learnset.rocksmash = ["9L10", "9M"]; this.modData('Learnsets','farfetchdgalar').learnset.brutalswing = ["9L15", "9M"]; this.modData('Learnsets','farfetchdgalar').learnset.swing = ["9L20"]; + this.modData('Learnsets','farfetchdgalar').learnset.compensation = ["9M"]; this.modData('Learnsets','farfetchdgalar').learnset.echoedvoice = ["9M"]; this.modData('Learnsets','farfetchdgalar').learnset.lastresort = ["9M"]; + this.modData('Learnsets','farfetchdgalar').learnset.strength = ["9M"]; this.modData('Learnsets','farfetchdgalar').learnset.punishment = ["9E"]; this.modData('Learnsets','farfetchdgalar').learnset.solarblade = ["9E"]; - this.modData('Learnsets','farfetchdgalar').learnset.strength = ["9M"]; + delete this.modData('Learnsets','farfetchdgalar').learnset.simplebeam; // Doduo this.modData('Learnsets','doduo').learnset.eggbomb = ["9D"]; this.modData('Learnsets','doduo').learnset.screech = ["9M"]; @@ -4033,6 +4033,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','hitmonlee').learnset.reversal = ["9L48"]; this.modData('Learnsets','hitmonlee').learnset.highjumpkick = ["9L52"]; this.modData('Learnsets','hitmonlee').learnset.chipaway = ["9M"]; + delete this.modData('Learnsets','hitmonlee').learnset.earthquake; // Hitmonchan this.modData('Learnsets','hitmonchan').learnset.dynamicpunch = ["9D"]; this.modData('Learnsets','hitmonchan').learnset.cometpunch = ["9L8"]; @@ -4050,6 +4051,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','hitmonchan').learnset.counter = ["9L48"]; this.modData('Learnsets','hitmonchan').learnset.focuspunch = ["9L52"]; this.modData('Learnsets','hitmonchan').learnset.chipaway = ["9M"]; + delete this.modData('Learnsets','hitmonchan').learnset.earthquake; // Lickitung this.modData('Learnsets','lickitung').learnset.soak = ["9D"]; this.modData('Learnsets','lickitung').learnset.bind = ["9L17"]; @@ -4231,6 +4233,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','pinsir').learnset.guillotine = ["9L52"]; this.modData('Learnsets','pinsir').learnset.superpower = ["9L56", "9M"]; delete this.modData('Learnsets','pinsir').learnset.knockoff; + delete this.modData('Learnsets','pinsir').learnset.stoneedge; // Tauros this.modData('Learnsets','tauros').learnset.megahorn = ["9D"]; this.modData('Learnsets','tauros').learnset.swagger = ["9L47"]; @@ -4257,6 +4260,7 @@ export const Scripts: ModdedBattleScriptsData = { // Gyarados this.modData('Learnsets','gyarados').learnset.vengefulspirit = ["9D"]; this.modData('Learnsets','gyarados').learnset.rage = ["9L21"]; + this.modData('Learnsets','gyarados').learnset.rockslide = ["9M"]; delete this.modData('Learnsets','gyarados').learnset.leer; // Lapras this.modData('Learnsets','lapras').learnset.lifedew = ["9D"]; @@ -4315,6 +4319,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','omanyte').learnset.tickle = ["9L19"]; this.modData('Learnsets','omanyte').learnset.shelter = ["9L43"]; this.modData('Learnsets','omanyte').learnset.chillywater = ["9M"]; + this.modData('Learnsets','omanyte').learnset.rockslide = ["9M"]; delete this.modData('Learnsets','omanyte').learnset.blizzard; // Omastar this.modData('Learnsets','omastar').learnset.curse = ["9D"]; @@ -4923,8 +4928,10 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','steelix').learnset.meteorbeam; // Snubbull this.modData('Learnsets','snubbull').learnset.beatup = ["9D"]; - this.modData('Learnsets','snubbull').learnset.compensation = ["9M"]; this.modData('Learnsets','snubbull').learnset.pounce = ["9L19"]; + this.modData('Learnsets','snubbull').learnset.compensation = ["9M"]; + this.modData('Learnsets','snubbull').learnset.rockslide = ["9M"]; + this.modData('Learnsets','snubbull').learnset.psychicfang = ["9E"]; delete this.modData('Learnsets','snubbull').learnset.earthquake; delete this.modData('Learnsets','snubbull').learnset.flamethrower; delete this.modData('Learnsets','snubbull').learnset.fireblast; @@ -5119,6 +5126,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','mantine').learnset.wavecrash = ["9L50"]; this.modData('Learnsets','mantine').learnset.chillywater = ["9M"]; this.modData('Learnsets','mantine').learnset.bodyslam = ["9E"]; + delete this.modData('Learnsets','mantine').learnset.earthquake; delete this.modData('Learnsets','mantine').learnset.roost; delete this.modData('Learnsets','mantine').learnset.slam; delete this.modData('Learnsets','mantine').learnset.stringshot; @@ -5181,6 +5189,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','tyrogue').learnset.submission = ["9D"]; this.modData('Learnsets','tyrogue').learnset.chipaway = ["9M"]; delete this.modData('Learnsets','tyrogue').learnset.earthquake; + delete this.modData('Learnsets','tyrogue').learnset.stoneedge; // Hitmontop this.modData('Learnsets','hitmontop').learnset.victorydance = ["9D"]; this.modData('Learnsets','hitmontop').learnset.teeterdance = ["9L8"]; @@ -5198,6 +5207,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','hitmontop').learnset.lashout = ["9L52"]; this.modData('Learnsets','hitmontop').learnset.chipaway = ["9M"]; this.modData('Learnsets','hitmontop').learnset.endeavor = ["9M"]; + delete this.modData('Learnsets','hitmontop').learnset.earthquake; // Smoochum this.modData('Learnsets','smoochum').learnset.lovelykiss = ["9D"]; this.modData('Learnsets','smoochum').learnset.confide = ["9E"]; @@ -5238,7 +5248,9 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','raikou').learnset.flash = ["9M"]; // Entei this.modData('Learnsets','entei').learnset.napalm = ["9D"]; + this.modData('Learnsets','entei').learnset.earthquake = ["9M"]; this.modData('Learnsets','entei').learnset.flash = ["9M"]; + this.modData('Learnsets','entei').learnset.rockslide = ["9M"]; delete this.modData('Learnsets','entei').learnset.extremespeed; delete this.modData('Learnsets','entei').learnset.sacredfire; // Suicune @@ -5354,6 +5366,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','blaziken').learnset.temperflare = ["9L44"]; this.modData('Learnsets','blaziken').learnset.trailhead = ["9M"]; delete this.modData('Learnsets','blaziken').learnset.defog; + delete this.modData('Learnsets','blaziken').learnset.earthquake; // Mudkip this.modData('Learnsets','mudkip').learnset.liquidation = ["9D"]; this.modData('Learnsets','mudkip').learnset.whitewater = ["9L4"]; @@ -5646,6 +5659,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','breloom').learnset.naturalgift = ["9M"]; this.modData('Learnsets','breloom').learnset.toxic = ["9M"]; this.modData('Learnsets','breloom').learnset.trailhead = ["9M"]; + delete this.modData('Learnsets','breloom').learnset.stoneedge; delete this.modData('Learnsets','breloom').learnset.synthesis; // Slakoth this.modData('Learnsets','slakoth').learnset.bide = ["9D"]; @@ -5758,17 +5772,20 @@ export const Scripts: ModdedBattleScriptsData = { // Mawile this.modData('Learnsets','mawile').learnset.jawlock = ["9D"]; this.modData('Learnsets','mawile').learnset.pounce = ["9L1"]; + this.modData('Learnsets','mawile').learnset.psychicfang = ["9E"]; delete this.modData('Learnsets','mawile').learnset.blizzard; delete this.modData('Learnsets','mawile').learnset.fairywind; delete this.modData('Learnsets','mawile').learnset.fireblast; delete this.modData('Learnsets','mawile').learnset.flamethrower; delete this.modData('Learnsets','mawile').learnset.icebeam; delete this.modData('Learnsets','mawile').learnset.poweruppunch; + delete this.modData('Learnsets','mawile').learnset.stoneedge; delete this.modData('Learnsets','mawile').learnset.thunder; delete this.modData('Learnsets','mawile').learnset.thunderbolt; // Aron this.modData('Learnsets','aron').learnset.scaryface = ["9D"]; this.modData('Learnsets','aron').learnset.fullcollide = ["9M"]; + this.modData('Learnsets','aron').learnset.stoneedge = ["9M"]; delete this.modData('Learnsets','aron').learnset.earthquake; // Lairon this.modData('Learnsets','lairon').learnset.scaryface = ["9D"]; @@ -5850,6 +5867,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','swalot').learnset.chillywater = ["9M"]; this.modData('Learnsets','swalot').learnset.nightmare = ["9M"]; delete this.modData('Learnsets','swalot').learnset.blizzard; + delete this.modData('Learnsets','swalot').learnset.earthquake; delete this.modData('Learnsets','swalot').learnset.metronome; // Carvanha this.modData('Learnsets','carvanha').learnset.fishiousrend = ["9D"]; @@ -5882,7 +5900,9 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','numel').learnset.highhorsepower = ["9D"]; this.modData('Learnsets','numel').learnset.temperflare = ["9L31"]; this.modData('Learnsets','numel').learnset.eruption = ["9L47"]; + this.modData('Learnsets','numel').learnset.heatcrash = ["9E"]; delete this.modData('Learnsets','numel').learnset.doubleedge; + delete this.modData('Learnsets','numel').learnset.heavyslam; delete this.modData('Learnsets','numel').learnset.takedown; // Camerupt this.modData('Learnsets','camerupt').learnset.highhorsepower = ["9D"]; @@ -6009,6 +6029,7 @@ export const Scripts: ModdedBattleScriptsData = { // Barboach this.modData('Learnsets','barboach').learnset.mindreader = ["9D"]; this.modData('Learnsets','barboach').learnset.slipaway = ["9L48"]; + delete this.modData('Learnsets','barboach').learnset.stoneedge; // Whiscash this.modData('Learnsets','whiscash').learnset.mindreader = ["9D"]; this.modData('Learnsets','whiscash').learnset.slipaway = ["9L59"]; @@ -6053,6 +6074,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','lileep').learnset.leechseed = ["9D"]; this.modData('Learnsets','lileep').learnset.flash = ["9M"]; this.modData('Learnsets','lileep').learnset.naturalgift = ["9M"]; + this.modData('Learnsets','lileep').learnset.stoneedge = ["9M"]; this.modData('Learnsets','lileep').learnset.toxic = ["9M"]; // Cradily this.modData('Learnsets','cradily').learnset.leechseed = ["9D"]; @@ -6074,6 +6096,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','anorith').learnset.xscissor = ["9L51", "9M"]; this.modData('Learnsets','anorith').learnset.protect = ["9L56", "9M"]; this.modData('Learnsets','anorith').learnset.stoneaxe = ["9L61"]; + this.modData('Learnsets','anorith').learnset.stoneedge = ["9M"]; delete this.modData('Learnsets','anorith').learnset.knockoff; // Armaldo this.modData('Learnsets','armaldo').learnset.liquidation = ["9D"]; @@ -6178,6 +6201,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','absol').learnset.nightmare = ["9M"]; this.modData('Learnsets','absol').learnset.trailhead = ["9M"]; this.modData('Learnsets','absol').learnset.cut = ["9E"]; + delete this.modData('Learnsets','absol').learnset.stoneedge; // Wynaut this.modData('Learnsets','wynaut').learnset.tickle = ["9D"]; // Snorunt @@ -6337,8 +6361,11 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','rayquaza').learnset.dragonascent = ["9D"]; this.modData('Learnsets','rayquaza').learnset.crunch = ["9L1"]; this.modData('Learnsets','rayquaza').learnset.airslash = ["9L9"]; - this.modData('Learnsets','rayquaza').learnset.hypervoice = ["9L27"]; + this.modData('Learnsets','rayquaza').learnset.dragonpulse = ["9L27","9M"]; + this.modData('Learnsets','rayquaza').learnset.hypervoice = ["9L36","9M"]; this.modData('Learnsets','rayquaza').learnset.extremespeed = ["9L45"]; + this.modData('Learnsets','rayquaza').learnset.hyperbeam = ["9L81","9M"]; + this.modData('Learnsets','rayquaza').learnset.outrage = ["9L90","9M"]; this.modData('Learnsets','rayquaza').learnset.chillywater = ["9M"]; this.modData('Learnsets','rayquaza').learnset.meteorbeam = ["9T"]; delete this.modData('Learnsets','rayquaza').learnset.gyroball; @@ -6537,10 +6564,11 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','wormadamsandy').learnset.irondefense = ["9L29","9M"]; this.modData('Learnsets','wormadamsandy').learnset.shoreup = ["9L32"]; this.modData('Learnsets','wormadamsandy').learnset.sandblast = ["9L44"]; + this.modData('Learnsets','wormadamsandy').learnset.psychic = ["9M"]; this.modData('Learnsets','wormadamsandy').learnset.amnesia = ["9M"]; this.modData('Learnsets','wormadamsandy').learnset.faketears = ["9M"]; this.modData('Learnsets','wormadamsandy').learnset.naturalgift = ["9M"]; - this.modData('Learnsets','wormadamsandy').learnset.psychic = ["9M"]; + this.modData('Learnsets','wormadamsandy').learnset.rockslide = ["9M"]; delete this.modData('Learnsets','wormadamsandy').learnset.confusion; delete this.modData('Learnsets','wormadamsandy').learnset.harden; delete this.modData('Learnsets','wormadamsandy').learnset.psybeam; @@ -6607,10 +6635,12 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','shellos').learnset.slipaway = ["9D"]; delete this.modData('Learnsets','shellos').learnset.blizzard; delete this.modData('Learnsets','shellos').learnset.waterfall; + delete this.modData('Learnsets','shellos').learnset.stoneedge; // Gastrodon this.modData('Learnsets','gastrodon').learnset.slipaway = ["9D"]; this.modData('Learnsets','gastrodon').learnset.flash = ["9M"]; delete this.modData('Learnsets','gastrodon').learnset.blizzard; + delete this.modData('Learnsets','gastrodon').learnset.stoneedge; delete this.modData('Learnsets','gastrodon').learnset.waterfall; // Ambipom this.modData('Learnsets','ambipom').learnset.swing = ["9D"]; @@ -6867,6 +6897,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','toxicroak').learnset.fellstinger = ["9D"]; this.modData('Learnsets','toxicroak').learnset.crosspoison = ["9L0"]; this.modData('Learnsets','toxicroak').learnset.toxic = ["9M"]; + delete this.modData('Learnsets','toxicroak').learnset.earthquake; // Carnivine this.modData('Learnsets','carnivine').learnset.frenzyplant = ["9D"]; this.modData('Learnsets','carnivine').learnset.wrap = ["9L1"]; @@ -7147,6 +7178,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','giratina').learnset.shadowforce = ["9L80"]; this.modData('Learnsets','giratina').learnset.dragonhammer = ["9L88"]; this.modData('Learnsets','giratina').learnset.bodypress = ["9M"]; + this.modData('Learnsets','giratina').learnset.rockslide = ["9M"]; this.modData('Learnsets','giratina').learnset.shadowball = ["9M"]; this.modData('Learnsets','giratina').learnset.shadowclaw = ["9M"]; this.modData('Learnsets','giratina').learnset.nightmare = ["9M"]; @@ -7420,6 +7452,7 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','woobat').learnset.knockoff; // Swoobat this.modData('Learnsets','swoobat').learnset.pluck = ["9D"]; + this.modData('Learnsets','swoobat').learnset.psychicfang = ["9L0"]; this.modData('Learnsets','swoobat').learnset.simplebeam = ["9L53"]; delete this.modData('Learnsets','swoobat').learnset.gyroball; delete this.modData('Learnsets','swoobat').learnset.knockoff; @@ -7484,12 +7517,16 @@ export const Scripts: ModdedBattleScriptsData = { // Throh this.modData('Learnsets','throh').learnset.smellingsalts = ["9D"]; this.modData('Learnsets','throh').learnset.deepbreath = ["9L1"]; + delete this.modData('Learnsets','throh').learnset.earthquake; delete this.modData('Learnsets','throh').learnset.leer; + delete this.modData('Learnsets','throh').learnset.stoneedge; // Sawk this.modData('Learnsets','sawk').learnset.smellingsalts = ["9D"]; this.modData('Learnsets','sawk').learnset.deepbreath = ["9L1"]; this.modData('Learnsets','sawk').learnset.throatchop = ["9L1"]; + delete this.modData('Learnsets','sawk').learnset.earthquake; delete this.modData('Learnsets','sawk').learnset.leer; + delete this.modData('Learnsets','sawk').learnset.stoneedge; // Sewaddle this.modData('Learnsets','sewaddle').learnset.teatime = ["9D"]; this.modData('Learnsets','sewaddle').learnset.amnesia = ["9M"]; @@ -7592,6 +7629,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','sandile').learnset.nastyplot = ["9M"]; delete this.modData('Learnsets','sandile').learnset.doubleedge; delete this.modData('Learnsets','sandile').learnset.rockclimb; + delete this.modData('Learnsets','sandile').learnset.stoneedge; // Krokorok this.modData('Learnsets','krokorok').learnset.detect = ["9D"]; this.modData('Learnsets','krokorok').learnset.nastyplot = ["9M"]; @@ -7669,8 +7707,10 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','crustle').learnset.meteorbeam; // Scraggy this.modData('Learnsets','scraggy').learnset.powertrip = ["9D"]; + delete this.modData('Learnsets','scraggy').learnset.stoneedge; // Scrafty this.modData('Learnsets','scrafty').learnset.powertrip = ["9D"]; + delete this.modData('Learnsets','scrafty').learnset.stoneedge; // Sigilyph this.modData('Learnsets','sigilyph').learnset.speedswap = ["9D"]; this.modData('Learnsets','sigilyph').learnset.barrier = ["9L24"]; @@ -7687,6 +7727,7 @@ export const Scripts: ModdedBattleScriptsData = { // Yamask Galar this.modData('Learnsets','yamaskgalar').learnset.tearfullook = ["9D"]; this.modData('Learnsets','yamaskgalar').learnset.vengefulspirit = ["9L37"]; + this.modData('Learnsets','yamaskgalar').learnset.bulldoze = ["9M"]; this.modData('Learnsets','yamaskgalar').learnset.nightmare = ["9M"]; this.modData('Learnsets','yamaskgalar').learnset.shadowball = ["9M"]; this.modData('Learnsets','yamaskgalar').learnset.craftyshield = ["9E"]; @@ -8085,10 +8126,13 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','pawniard').learnset.beatup = ["9D"]; this.modData('Learnsets','pawniard').learnset.metaledge = ["9L54"]; this.modData('Learnsets','pawniard').learnset.ironhead = ["9M"]; + delete this.modData('Learnsets','pawniard').learnset.stoneedge; // Bisharp this.modData('Learnsets','bisharp').learnset.beatup = ["9D"]; this.modData('Learnsets','bisharp').learnset.metaledge = ["9L57"]; this.modData('Learnsets','bisharp').learnset.ironhead = ["9M"]; + this.modData('Learnsets','bisharp').learnset.rockslide = ["9M"]; + delete this.modData('Learnsets','bisharp').learnset.stoneedge; // Bouffalant this.modData('Learnsets','bouffalant').learnset.horndrill = ["9D"]; this.modData('Learnsets','bouffalant').learnset.fullcollide = ["9M"]; @@ -8119,6 +8163,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','durant').learnset.infestation = ["9M"]; this.modData('Learnsets','durant').learnset.escapetunnel = ["9E"]; this.modData('Learnsets','durant').learnset.metalburst = ["9E"]; + delete this.modData('Learnsets','durant').learnset.stoneedge; delete this.modData('Learnsets','durant').learnset.tantrum; // Deino this.modData('Learnsets','deino').learnset.rage = ["9D"]; @@ -8126,6 +8171,8 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','zweilous').learnset.rage = ["9D"]; // Hydreigon this.modData('Learnsets','hydreigon').learnset.fellswoop = ["9D"]; + delete this.modData('Learnsets','hydreigon').learnset.stealthrock; + delete this.modData('Learnsets','hydreigon').learnset.stoneedge; // Larvesta this.modData('Learnsets','larvesta').learnset.burnup = ["9D"]; this.modData('Learnsets','larvesta').learnset.flash = ["9M"]; @@ -8147,6 +8194,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','cobalion').learnset.metaledge = ["9L55"]; this.modData('Learnsets','cobalion').learnset.chipaway = ["9M"]; this.modData('Learnsets','cobalion').learnset.ironhead = ["9M"]; + this.modData('Learnsets','cobalion').learnset.rockslide = ["9M"]; // Terrakion this.modData('Learnsets','terrakion').learnset.reversal = ["9D"]; this.modData('Learnsets','terrakion').learnset.stoneaxe = ["9L55"]; @@ -8156,6 +8204,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','virizion').learnset.reversal = ["9D"]; this.modData('Learnsets','virizion').learnset.chipaway = ["9M"]; this.modData('Learnsets','virizion').learnset.flash = ["9M"]; + this.modData('Learnsets','virizion').learnset.rockslide = ["9M"]; // Tornadus this.modData('Learnsets','tornadus').learnset.twister = ["9D"]; delete this.modData('Learnsets','tornadus').learnset.metronome; @@ -8180,6 +8229,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','zekrom').learnset.charge = ["9L8"]; this.modData('Learnsets','zekrom').learnset.flash = ["9M"]; delete this.modData('Learnsets','zekrom').learnset.slash; + delete this.modData('Learnsets','zekrom').learnset.stealthrock; // Landorus this.modData('Learnsets','landorus').learnset.rototiller = ["9D"]; this.modData('Learnsets','landorus').learnset.compensation = ["9M"]; @@ -8264,7 +8314,9 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','meloetta').learnset.flash = ["9M"]; delete this.modData('Learnsets','meloetta').learnset.acrobatics; delete this.modData('Learnsets','meloetta').learnset.closecombat; + delete this.modData('Learnsets','meloetta').learnset.honeclaws; delete this.modData('Learnsets','meloetta').learnset.quickattack; + delete this.modData('Learnsets','meloetta').learnset.stoneedge; delete this.modData('Learnsets','meloetta').learnset.teeterdance; delete this.modData('Learnsets','meloetta').learnset.uturn; delete this.modData('Learnsets','meloetta').learnset.wakeupslap; @@ -8469,6 +8521,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','pancham').learnset.trailhead = ["9M"]; delete this.modData('Learnsets','pancham').learnset.crunch; delete this.modData('Learnsets','pancham').learnset.slash; + delete this.modData('Learnsets','pancham').learnset.stoneedge; // Pangoro this.modData('Learnsets','pangoro').learnset.scaryface = ["9D"]; this.modData('Learnsets','pangoro').learnset.suckerpunch = ["9L0"]; @@ -8680,6 +8733,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','hawlucha').learnset.holdback = ["9D"]; this.modData('Learnsets','hawlucha').learnset.circlethrow = ["9E"]; this.modData('Learnsets','hawlucha').learnset.submission = ["9E"]; + delete this.modData('Learnsets','hawlucha').learnset.stoneedge; // Dedenne this.modData('Learnsets','dedenne').learnset.overdrive = ["9D"]; this.modData('Learnsets','dedenne').learnset.thundershock = ["9L4"]; @@ -8925,8 +8979,11 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','hoopa').learnset.stasis = ["9T"]; delete this.modData('Learnsets','hoopa').learnset.destinybond; // Volcanion - this.modData('Learnsets','volcanion').learnset.preheat = ["9D"]; + this.modData('Learnsets','volcanion').learnset.hardpress = ["9D"]; + this.modData('Learnsets','volcanion').learnset.heatcrash = ["9L1"]; + this.modData('Learnsets','volcanion').learnset.heatcrash = ["9L58"]; this.modData('Learnsets','volcanion').learnset.whirlpool = ["9M"]; + delete this.modData('Learnsets','volcanion').learnset.flareblitz; // Rowlet this.modData('Learnsets','rowlet').learnset.aircutter = ["9D"]; this.modData('Learnsets','rowlet').learnset.naturalgift = ["9M"]; @@ -9025,6 +9082,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','gumshoos').learnset.retaliate = ["9M"]; this.modData('Learnsets','gumshoos').learnset.screech = ["9M"]; this.modData('Learnsets','gumshoos').learnset.strength = ["9M"]; + delete this.modData('Learnsets','gumshoos').learnset.earthquake; // Grubbin this.modData('Learnsets','grubbin').learnset.strugglebug = ["9D"]; this.modData('Learnsets','grubbin').learnset.thunderfang = ["9L22"]; @@ -9078,21 +9136,46 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','ribombee').learnset.absorb; // Rockruff this.modData('Learnsets','rockruff').learnset.playnice = ["9D"]; + this.modData('Learnsets','rockruff').learnset.stoneedge = ["9M"]; this.modData('Learnsets','rockruff').learnset.charm = ["9M"]; delete this.modData('Learnsets','rockruff').learnset.tantrum; // Lycanroc Midday this.modData('Learnsets','lycanroc').learnset.morningsun = ["9D"]; + this.modData('Learnsets','lycanroc').learnset.roar = ["9L27","9M"]; + this.modData('Learnsets','lycanroc').learnset.stealthrock = ["9L31","9M"]; + this.modData('Learnsets','lycanroc').learnset.rockslide = ["9L37","9M"]; + this.modData('Learnsets','lycanroc').learnset.scaryface = ["9L41"]; + this.modData('Learnsets','lycanroc').learnset.crunch = ["9L45"]; + this.modData('Learnsets','lycanroc').learnset.rockclimb = ["9L51"]; + this.modData('Learnsets','lycanroc').learnset.stoneaxe = ["9L55"]; + this.modData('Learnsets','lycanroc').learnset.stoneedge = ["9M"]; this.modData('Learnsets','lycanroc').learnset.aquatail = ["9M"]; this.modData('Learnsets','lycanroc').learnset.flash = ["9M"]; this.modData('Learnsets','lycanroc').learnset.retaliate = ["9M"]; // Lycanroc Midnight this.modData('Learnsets','lycanrocmidnight').learnset.moonlight = ["9D"]; + this.modData('Learnsets','lycanrocmidnight').learnset.roar = ["9L27","9M"]; + this.modData('Learnsets','lycanrocmidnight').learnset.stealthrock = ["9L31","9M"]; + this.modData('Learnsets','lycanrocmidnight').learnset.rockslide = ["9L37","9M"]; + this.modData('Learnsets','lycanrocmidnight').learnset.scaryface = ["9L41"]; + this.modData('Learnsets','lycanrocmidnight').learnset.crunch = ["9L45"]; + this.modData('Learnsets','lycanrocmidnight').learnset.rockclimb = ["9L51"]; + this.modData('Learnsets','lycanrocmidnight').learnset.stoneaxe = ["9L55"]; + this.modData('Learnsets','lycanrocmidnight').learnset.stoneedge = ["9M"]; this.modData('Learnsets','lycanrocmidnight').learnset.assurance = ["9M"]; this.modData('Learnsets','lycanrocmidnight').learnset.avalanche = ["9M"]; this.modData('Learnsets','lycanrocmidnight').learnset.strength = ["9M"]; // Lycanroc Twilight this.modData('Learnsets','lycanroctwilight').learnset.wish = ["9D"]; this.modData('Learnsets','lycanroctwilight').learnset.crushclaw = ["9L0"]; + this.modData('Learnsets','lycanroctwilight').learnset.roar = ["9L27","9M"]; + this.modData('Learnsets','lycanroctwilight').learnset.stealthrock = ["9L31","9M"]; + this.modData('Learnsets','lycanroctwilight').learnset.rockslide = ["9L37","9M"]; + this.modData('Learnsets','lycanroctwilight').learnset.scaryface = ["9L41"]; + this.modData('Learnsets','lycanroctwilight').learnset.crunch = ["9L45"]; + this.modData('Learnsets','lycanroctwilight').learnset.rockclimb = ["9L51"]; + this.modData('Learnsets','lycanroctwilight').learnset.stoneaxe = ["9L55"]; + this.modData('Learnsets','lycanroctwilight').learnset.stoneedge = ["9M"]; this.modData('Learnsets','lycanroctwilight').learnset.aquatail = ["9M"]; this.modData('Learnsets','lycanroctwilight').learnset.avalanche = ["9M"]; this.modData('Learnsets','lycanroctwilight').learnset.assurance = ["9M"]; @@ -9209,11 +9292,13 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','sandygast').learnset.sandblast = ["9L45"]; this.modData('Learnsets','sandygast').learnset.earthpower = ["9M"]; this.modData('Learnsets','sandygast').learnset.nightmare = ["9M"]; + delete this.modData('Learnsets','sandygast').learnset.stoneedge; // Palossand this.modData('Learnsets','palossand').learnset.imprison = ["9D"]; - this.modData('Learnsets','sandygast').learnset.sandblast = ["9L47"]; - this.modData('Learnsets','sandygast').learnset.earthpower = ["9M"]; + this.modData('Learnsets','palossand').learnset.sandblast = ["9L47"]; + this.modData('Learnsets','palossand').learnset.earthpower = ["9M"]; this.modData('Learnsets','palossand').learnset.nightmare = ["9M"]; + delete this.modData('Learnsets','palossand').learnset.stoneedge; // Pyukumuku this.modData('Learnsets','pyukumuku').learnset.slipaway = ["9D"]; this.modData('Learnsets','pyukumuku').learnset.toxic = ["9M"]; @@ -9248,6 +9333,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','turtonator').learnset.blastburn = ["9D"]; this.modData('Learnsets','turtonator').learnset.flash = ["9M"]; this.modData('Learnsets','turtonator').learnset.fullcollide = ["9M"]; + this.modData('Learnsets','turtonator').learnset.rockslide = ["9M"]; this.modData('Learnsets','turtonator').learnset.strength = ["9M"]; this.modData('Learnsets','turtonator').learnset.rapidspin = ["9E"]; this.modData('Learnsets','turtonator').learnset.temperflare = ["9E"]; @@ -9322,7 +9408,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','tapukoko').learnset.holdback = ["9L15"]; this.modData('Learnsets','tapukoko').learnset.mirrormove = ["9L25"]; this.modData('Learnsets','tapukoko').learnset.pluck = ["9L40"]; - this.modData('Learnsets','tapukoko').learnset.playrough = ["9L60"]; + this.modData('Learnsets','tapukoko').learnset.spiritbreak = ["9L60"]; this.modData('Learnsets','tapukoko').learnset.powerswap = ["9L65"]; this.modData('Learnsets','tapukoko').learnset.particleslam = ["9L70"]; this.modData('Learnsets','tapukoko').learnset.bravebird = ["9L75"]; @@ -9346,6 +9432,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','tapulele').learnset.naturalgift = ["9M"]; this.modData('Learnsets','tapulele').learnset.nightmare = ["9M"]; this.modData('Learnsets','tapulele').learnset.retaliate = ["9M"]; + delete this.modData('Learnsets','tapulele').learnset.extrasensory; // Tapu Bulu this.modData('Learnsets','tapubulu').learnset.landswrath = ["9D"]; this.modData('Learnsets','tapubulu').learnset.grassyterrain = ["9L1", "9M"]; @@ -9374,6 +9461,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','tapufini').learnset.haze = ["9L25"]; this.modData('Learnsets','tapufini').learnset.clamp = ["9L40"]; this.modData('Learnsets','tapufini').learnset.brine = ["9L45"]; + this.modData('Learnsets','tapufini').learnset.strangesmoke = ["9L60"]; this.modData('Learnsets','tapufini').learnset.soak = ["9L65"]; this.modData('Learnsets','tapufini').learnset.hydropump = ["9L70"]; this.modData('Learnsets','tapufini').learnset.muddywater = ["9L75"]; @@ -9385,6 +9473,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','tapufini').learnset.nightmare = ["9M"]; this.modData('Learnsets','tapufini').learnset.retaliate = ["9M"]; delete this.modData('Learnsets','tapufini').learnset.knockoff; + delete this.modData('Learnsets','tapufini').learnset.moonblast; // Solgaleo this.modData('Learnsets','solgaleo').learnset.miracleeye = ["9D"]; this.modData('Learnsets','solgaleo').learnset.mindbend = ["9L1"]; @@ -9545,6 +9634,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','melmetal').learnset.charge = ["9D"]; this.modData('Learnsets','melmetal').learnset.bash = ["9L8"]; this.modData('Learnsets','melmetal').learnset.avalanche = ["9M"]; + this.modData('Learnsets','melmetal').learnset.bulldoze = ["9M"]; this.modData('Learnsets','melmetal').learnset.chargebeam = ["9M"]; this.modData('Learnsets','melmetal').learnset.eerieimpulse = ["9M"]; this.modData('Learnsets','melmetal').learnset.flash = ["9M"]; @@ -9621,10 +9711,11 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','sobble').learnset.faketears = ["9M"]; this.modData('Learnsets','sobble').learnset.lastresort = ["9M"]; this.modData('Learnsets','sobble').learnset.waterpulse = ["9M"]; + this.modData('Learnsets','sobble').learnset.trumpcard = ["9E"]; delete this.modData('Learnsets','sobble').learnset.fellstinger; delete this.modData('Learnsets','sobble').learnset.liquidation; // Drizzile - this.modData('Learnsets','drizzile').learnset.trumpcard = ["9D"]; + this.modData('Learnsets','drizzile').learnset.watershuriken = ["9D"]; this.modData('Learnsets','drizzile').learnset.aquatail = ["9L36", "9M"]; this.modData('Learnsets','drizzile').learnset.ambush = ["9L54"]; this.modData('Learnsets','drizzile').learnset.chillywater = ["9M"]; @@ -9638,7 +9729,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','drizzile').learnset.waterpulse = ["9M"]; delete this.modData('Learnsets','drizzile').learnset.liquidation; // Inteleon - this.modData('Learnsets','inteleon').learnset.trumpcard = ["9D"]; + this.modData('Learnsets','inteleon').learnset.watershuriken = ["9D"]; this.modData('Learnsets','inteleon').learnset.aquatail = ["9L38", "9M"]; this.modData('Learnsets','inteleon').learnset.ambush = ["9L62"]; this.modData('Learnsets','inteleon').learnset.chillywater = ["9M"]; @@ -9903,6 +9994,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','silicobra').learnset.dustspray = ["9E"]; this.modData('Learnsets','silicobra').learnset.aquatail = ["9M"]; this.modData('Learnsets','silicobra').learnset.dragontail = ["9M"]; + delete this.modData('Learnsets','silicobra').learnset.stoneedge; // Sandaconda this.modData('Learnsets','sandaconda').learnset.rototiller = ["9D"]; this.modData('Learnsets','sandaconda').learnset.constrict = ["9L1"]; @@ -9922,6 +10014,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','sandaconda').learnset.aquatail = ["9M"]; this.modData('Learnsets','sandaconda').learnset.dragontail = ["9M"]; this.modData('Learnsets','sandaconda').learnset.strength = ["9M"]; + delete this.modData('Learnsets','sandaconda').learnset.stoneedge; // Cramorant this.modData('Learnsets','cramorant').learnset.eggbomb = ["9D"]; this.modData('Learnsets','cramorant').learnset.block = ["9M"]; @@ -10005,12 +10098,14 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','centiskorch').learnset.leechlife; // Clobbopus this.modData('Learnsets','clobbopus').learnset.megapunch = ["9D"]; + this.modData('Learnsets','clobbopus').learnset.chillywater = ["9M"]; this.modData('Learnsets','clobbopus').learnset.knockoff = ["9M"]; this.modData('Learnsets','clobbopus').learnset.strength = ["9M"]; this.modData('Learnsets','clobbopus').learnset.octazooka = ["9E"]; // Grapploct this.modData('Learnsets','grapploct').learnset.lashout = ["9D"]; this.modData('Learnsets','grapploct').learnset.wringout = ["9L50"]; + this.modData('Learnsets','grapploct').learnset.chillywater = ["9M"]; this.modData('Learnsets','grapploct').learnset.knockoff = ["9M"]; this.modData('Learnsets','grapploct').learnset.laserfocus = ["9M"]; this.modData('Learnsets','grapploct').learnset.strength = ["9M"]; @@ -10208,7 +10303,9 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','sirfetchd').learnset.megahorn = ["9D"]; this.modData('Learnsets','sirfetchd').learnset.aerialace = ["9M"]; this.modData('Learnsets','sirfetchd').learnset.afteryou = ["9M"]; + this.modData('Learnsets','sirfetchd').learnset.block = ["9M"]; this.modData('Learnsets','sirfetchd').learnset.chipaway = ["9M"]; + this.modData('Learnsets','sirfetchd').learnset.compensation = ["9M"]; this.modData('Learnsets','sirfetchd').learnset.endeavor = ["9M"]; this.modData('Learnsets','sirfetchd').learnset.fullcollide = ["9M"]; // Mr. Rime @@ -10412,6 +10509,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','arctozolt').learnset.shockwave = ["9M"]; this.modData('Learnsets','arctozolt').learnset.strength = ["9M"]; this.modData('Learnsets','arctozolt').learnset.trailhead = ["9M"]; + delete this.modData('Learnsets','arctozolt').learnset.stoneedge; // Dracovish this.modData('Learnsets','dracovish').learnset.liquidation = ["9D"]; this.modData('Learnsets','dracovish').learnset.chillywater = ["9M"]; @@ -10424,12 +10522,15 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','arctovish').learnset.frostbreath = ["9M"]; this.modData('Learnsets','arctovish').learnset.painsplit = ["9M"]; this.modData('Learnsets','arctovish').learnset.strength = ["9M"]; + this.modData('Learnsets','arctovish').learnset.rockslide = ["9M"]; + delete this.modData('Learnsets','arctovish').learnset.stoneedge; // Duraludon this.modData('Learnsets','duraludon').learnset.cuttinglaser = ["9D"]; this.modData('Learnsets','duraludon').learnset.crushclaw = ["9L30"]; this.modData('Learnsets','duraludon').learnset.metalburst = ["9L42"]; this.modData('Learnsets','duraludon').learnset.hardpress = ["9L60"]; this.modData('Learnsets','duraludon').learnset.block = ["9M"]; + this.modData('Learnsets','duraludon').learnset.bulldoze = ["9M"]; this.modData('Learnsets','duraludon').learnset.chargebeam = ["9M"]; this.modData('Learnsets','duraludon').learnset.dragontail = ["9M"]; this.modData('Learnsets','duraludon').learnset.echoedvoice = ["9M"]; @@ -10534,6 +10635,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','zamazenta').learnset.naturepower = ["9M"]; this.modData('Learnsets','zamazenta').learnset.quash = ["9M"]; this.modData('Learnsets','zamazenta').learnset.rocksmash = ["9M"]; + this.modData('Learnsets','zamazenta').learnset.rockslide = ["9M"]; this.modData('Learnsets','zamazenta').learnset.strength = ["9M"]; delete this.modData('Learnsets','zamazenta').learnset.moonblast; // Zamazenta Crowned @@ -10646,6 +10748,7 @@ export const Scripts: ModdedBattleScriptsData = { // Regidrago this.modData('Learnsets','regidrago').learnset.jawlock = ["9D"]; this.modData('Learnsets','regidrago').learnset.block = ["9M"]; + this.modData('Learnsets','regidrago').learnset.bulldoze = ["9M"]; this.modData('Learnsets','regidrago').learnset.fullcollide = ["9M"]; this.modData('Learnsets','regidrago').learnset.rockpolish = ["9M"]; // Glastrier @@ -10681,6 +10784,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','calyrex').learnset.quash = ["9M"]; this.modData('Learnsets','calyrex').learnset.synthesis = ["9M"]; this.modData('Learnsets','calyrex').learnset.telekinesis = ["9M"]; + delete this.modData('Learnsets','calyrex').learnset.encore; // Calyrex Ice Rider this.modData('Learnsets','calyrexice').learnset.solarblade = ["9D"]; this.modData('Learnsets','calyrexice').learnset.glaciallance = ["9R"]; @@ -10891,6 +10995,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','skeledirge').learnset.assurance = ["9M"]; this.modData('Learnsets','skeledirge').learnset.block = ["9M"]; this.modData('Learnsets','skeledirge').learnset.breakingswipe = ["9M"]; + this.modData('Learnsets','skeledirge').learnset.bulldoze = ["9M"]; this.modData('Learnsets','skeledirge').learnset.echoedvoice = ["9M"]; this.modData('Learnsets','skeledirge').learnset.flash = ["9M"]; this.modData('Learnsets','skeledirge').learnset.incinerate = ["9L15", "9M"]; @@ -11071,7 +11176,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','lokix').learnset.screech = ["9L14", "9M"]; this.modData('Learnsets','lokix').learnset.signalbeam = ["9M"]; // Pawmi - this.modData('Learnsets','pawmi').learnset.zingzap = ["9D"]; + this.modData('Learnsets','pawmi').learnset.particleslam = ["9D"]; this.modData('Learnsets','pawmi').learnset.smellingsalts = ["9L17"]; this.modData('Learnsets','pawmi').learnset.spark = ["9L21"]; this.modData('Learnsets','pawmi').learnset.thunderwave = ["9L24", "9M"]; @@ -11092,7 +11197,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','pawmi').learnset.strength = ["9M"]; delete this.modData('Learnsets','pawmi').learnset.bite; // Pawmo - this.modData('Learnsets','pawmo').learnset.zingzap = ["9D"]; + this.modData('Learnsets','pawmo').learnset.particleslam = ["9D"]; this.modData('Learnsets','pawmo').learnset.smellingsalts = ["9L17"]; this.modData('Learnsets','pawmo').learnset.spark = ["9L23"]; this.modData('Learnsets','pawmo').learnset.thunderwave = ["9L28", "9M"]; @@ -11118,7 +11223,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','pawmo').learnset.strength = ["9M"]; delete this.modData('Learnsets','pawmo').learnset.bite; // Pawmot - this.modData('Learnsets','pawmot').learnset.zingzap = ["9D"]; + this.modData('Learnsets','pawmot').learnset.particleslam = ["9D"]; this.modData('Learnsets','pawmot').learnset.smellingsalts = ["9L17"]; this.modData('Learnsets','pawmot').learnset.spark = ["9L23"]; this.modData('Learnsets','pawmot').learnset.thunderwave = ["9L28", "9M"]; @@ -11185,6 +11290,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','fidough').learnset.magiccoat = ["9M"]; this.modData('Learnsets','fidough').learnset.retaliate = ["9M"]; this.modData('Learnsets','fidough').learnset.workup = ["9L22", "9M"]; + this.modData('Learnsets','fidough').learnset.psychicfang = ["9E"]; delete this.modData('Learnsets','fidough').learnset.doubleedge; // Dachsbun this.modData('Learnsets','dachsbun').learnset.flowershield = ["9D"]; @@ -11723,7 +11829,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','revavroomschedar').learnset.ember = ["9L4"]; this.modData('Learnsets','revavroomschedar').learnset.flamecharge = ["9L13", "9M"]; this.modData('Learnsets','revavroomschedar').learnset.heatwave = ["9L36", "9M"]; - this.modData('Learnsets','revavroomschedar').learnset.flareblitz = ["9L58"]; + this.modData('Learnsets','revavroomschedar').learnset.heatcrash = ["9L58"]; // Revavroom Navi Mod this.modData('Learnsets','revavroomnavi').learnset.noxioustorque = ["9R"]; this.modData('Learnsets','revavroomnavi').learnset.toxicspikes = ["9L1"]; @@ -12113,6 +12219,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','slitherwing').learnset.vitaldrain = ["9L77", "9M"]; this.modData('Learnsets','slitherwing').learnset.firstimpression = ["9L84"]; this.modData('Learnsets','slitherwing').learnset.bounce = ["9M"]; + this.modData('Learnsets','slitherwing').learnset.bulldoze = ["9M"]; this.modData('Learnsets','slitherwing').learnset.defog = ["9M"]; this.modData('Learnsets','slitherwing').learnset.endeavor = ["9M"]; this.modData('Learnsets','slitherwing').learnset.irontail = ["9M"]; @@ -12399,6 +12506,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','roaringmoon').learnset.assurance = ["9M"]; this.modData('Learnsets','roaringmoon').learnset.breakingswipe = ["9M"]; this.modData('Learnsets','roaringmoon').learnset.brutalswing = ["9M"]; + this.modData('Learnsets','roaringmoon').learnset.bulldoze = ["9M"]; this.modData('Learnsets','roaringmoon').learnset.defog = ["9M"]; this.modData('Learnsets','roaringmoon').learnset.dualchop = ["9M"]; this.modData('Learnsets','roaringmoon').learnset.honeclaws = ["9M"]; @@ -12664,6 +12772,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','archaludon').learnset.metalburst = ["9L42"]; this.modData('Learnsets','archaludon').learnset.hardpress = ["9L60"]; this.modData('Learnsets','archaludon').learnset.block = ["9M"]; + this.modData('Learnsets','archaludon').learnset.bulldoze = ["9M"]; this.modData('Learnsets','archaludon').learnset.chargebeam = ["9M"]; this.modData('Learnsets','archaludon').learnset.dragontail = ["9M"]; this.modData('Learnsets','archaludon').learnset.echoedvoice = ["9M"]; @@ -12688,6 +12797,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','hydrapple').learnset.allyswitch = ["9M"]; this.modData('Learnsets','hydrapple').learnset.applebomb = ["9M"]; this.modData('Learnsets','hydrapple').learnset.bugbite = ["9M"]; + this.modData('Learnsets','hydrapple').learnset.bulldoze = ["9M"]; this.modData('Learnsets','hydrapple').learnset.frustration = ["9M"]; this.modData('Learnsets','hydrapple').learnset.hiddenpower = ["9M"]; this.modData('Learnsets','hydrapple').learnset.irontail = ["9M"]; @@ -12708,9 +12818,11 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','gougingfire').learnset.dragonrush = ["9L63"]; this.modData('Learnsets','gougingfire').learnset.temperflare = ["9L70"]; this.modData('Learnsets','gougingfire').learnset.psychicfang = ["9L77"]; + this.modData('Learnsets','gougingfire').learnset.heatcrash = ["9L84"]; this.modData('Learnsets','gougingfire').learnset.outrage = ["9L91", "9M"]; delete this.modData('Learnsets','gougingfire').learnset.ancientpower; delete this.modData('Learnsets','gougingfire').learnset.doublekick; + delete this.modData('Learnsets','gougingfire').learnset.flareblitz; delete this.modData('Learnsets','gougingfire').learnset.stomp; // Raging Bolt this.modData('Learnsets','ragingbolt').learnset.zapcannon = ["9D"]; @@ -12728,6 +12840,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','ragingbolt').learnset.paraboliccharge = ["9L77"]; this.modData('Learnsets','ragingbolt').learnset.weatherball = ["9L84"]; this.modData('Learnsets','ragingbolt').learnset.dragonpulse = ["9L91", "9M"]; + this.modData('Learnsets','ragingbolt').learnset.bulldoze = ["9M"]; delete this.modData('Learnsets','ragingbolt').learnset.ancientpower; delete this.modData('Learnsets','ragingbolt').learnset.stomp; // Power Chassis @@ -12746,6 +12859,7 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','powerchassis').learnset.counter = ["9L70"]; this.modData('Learnsets','powerchassis').learnset.hardpress = ["9L77"]; this.modData('Learnsets','powerchassis').learnset.firstimpression = ["9L84"]; + this.modData('Learnsets','powerchassis').learnset.rockslide = ["9M"]; delete this.modData('Learnsets','powerchassis').learnset.rockthrow; delete this.modData('Learnsets','powerchassis').learnset.slash; // Laser Crown @@ -12766,10 +12880,14 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','lasercrown').learnset.metalclaw; delete this.modData('Learnsets','lasercrown').learnset.slash; // Terapagos - this.modData('Learnsets','terapagos').learnset.terablast = ["9D"]; + this.modData('Learnsets','terapagos').learnset.preservation = ["9D"]; + this.modData('Learnsets','terapagos').learnset.terablast = ["9L60", "9M"]; + this.modData('Learnsets','terapagos').learnset.terastarstorm = ["9L100"]; + this.modData('Learnsets','terapagos').learnset.bulldoze = ["9M"]; this.modData('Learnsets','terapagos').learnset.dive = ["9M"]; this.modData('Learnsets','terapagos').learnset.dreameater = ["9M"]; this.modData('Learnsets','terapagos').learnset.flash = ["9M"]; + this.modData('Learnsets','terapagos').learnset.fullcollide = ["9M"]; this.modData('Learnsets','terapagos').learnset.lastresort = ["9M"]; this.modData('Learnsets','terapagos').learnset.naturepower = ["9M"]; this.modData('Learnsets','terapagos').learnset.psychup = ["9M"]; @@ -12869,8 +12987,10 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','kitsunoh').learnset.midnight = ["9T"]; this.modData('Learnsets','kitsunoh').learnset.steelbeam = ["9T"]; delete this.modData('Learnsets','kitsunoh').learnset.doubleteam; + delete this.modData('Learnsets','kitsunoh').learnset.icepunch; delete this.modData('Learnsets','kitsunoh').learnset.odorsleuth; delete this.modData('Learnsets','kitsunoh').learnset.shadowstrike; + delete this.modData('Learnsets','kitsunoh').learnset.thunderpunch; // Monohm this.modData('Learnsets','monohm').learnset.mindreader = ["9D"]; this.modData('Learnsets','monohm').learnset.eerieimpulse = ["9M"]; @@ -13316,5 +13436,33 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','hemogoblin').learnset.moonlight; delete this.modData('Learnsets','hemogoblin').learnset.thunder; delete this.modData('Learnsets','hemogoblin').learnset.wrap; + // Cresceidon + this.modData('Learnsets','cresceidon').learnset.moonlight = ["9D"]; + this.modData('Learnsets','cresceidon').learnset.whitewater = ["9L1"]; + this.modData('Learnsets','cresceidon').learnset.liquidation = ["9L60"]; + this.modData('Learnsets','cresceidon').learnset.block = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.brine = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.dive = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.dreameater = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.echoedvoice = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.flash = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.gravity = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.magiccoat = ["9M"]; + this.modData('Learnsets','cresceidon').learnset.heavyslam = ["9E"]; + delete this.modData('Learnsets','cresceidon').learnset.doubleedge; + delete this.modData('Learnsets','cresceidon').learnset.pound; + // Chuggalong + this.modData('Learnsets','chuggalong').learnset.lovelykiss = ["9D"]; + this.modData('Learnsets','chuggalong').learnset.bind = ["9L1"]; + this.modData('Learnsets','chuggalong').learnset.dragonhammer = ["9L1"]; + this.modData('Learnsets','chuggalong').learnset.block = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.breakingswipe = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.brutalswing = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.echoedvoice = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.fullcollide = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.incinerate = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.irontail = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.laserfocus = ["9M"]; + this.modData('Learnsets','chuggalong').learnset.screech = ["9M"]; }, }; \ No newline at end of file