diff --git a/config/formats.ts b/config/formats.ts index 219d48c31e..2318a43423 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -2688,10 +2688,10 @@ export const Formats: FormatList = [ }, onSwitchIn(pokemon) { // @ts-ignore - const originalFormeSecies = this.dex.species.get(pokemon.species.originalSpecies); - if (originalFormeSecies.exists && pokemon.m.originalSpecies !== originalFormeSecies.baseSpecies) { + const originalFormeSpecies = this.dex.species.get(pokemon.species.originalSpecies); + if (originalFormeSpecies.exists && pokemon.m.originalSpecies !== originalFormeSpecies.baseSpecies) { // Place volatiles on the Pokémon to show its mega-evolved condition and details - this.add('-start', pokemon, originalFormeSecies.requiredItem || originalFormeSecies.requiredMove, '[silent]'); + this.add('-start', pokemon, originalFormeSpecies.requiredItem || originalFormeSpecies.requiredMove, '[silent]'); const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); if (oSpecies.types.length !== pokemon.species.types.length || oSpecies.types[1] !== pokemon.species.types[1]) { this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); diff --git a/data/mods/bearticphone/abilities.ts b/data/mods/bearticphone/abilities.ts index 01121227d9..396a83d17c 100644 --- a/data/mods/bearticphone/abilities.ts +++ b/data/mods/bearticphone/abilities.ts @@ -15,11 +15,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { boombox: { onSourceDamagingHit(damage, target, source, move) { // Despite not being a secondary, Shield Dust / Covert Cloak block Boombox's effect - if (target.hasAbility('shielddust') || target.hasItem('covertcloak')) return; + if (target.hasAbility('shielddust') || target.hasItem('covertcloak') + || this.randomChance(7, 10)) return; - if (this.randomChance(3, 10)) { - target.addVolatile('confusion', source); - } + target.addVolatile('confusion', source); + }, name: "Boombox", shortDesc: "This Pokemon's moves have a 30% chance of confusing.", @@ -90,10 +90,8 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, onAllyTryHitSide(target, source, move) { - if (source === this.effectState.target || !target.isAlly(source)) return; - if (move.type === 'Rock') { - this.boost({atk: 1}, this.effectState.target); - } + if (source === this.effectState.target || !target.isAlly(source) || move.type !== 'Rock') return; + this.boost({atk: 1}, this.effectState.target); }, isBreakable: true, name: "Molten Fury", @@ -104,7 +102,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { phantomthief: { onModifyMovePriority: -5, onModifyMove(move) { - if (!move.ignoreImmunity) move.ignoreImmunity = {}; + move.ignoreImmunity ||= {}; if (move.ignoreImmunity !== true) { move.ignoreImmunity['Ghost'] = true; } @@ -122,9 +120,9 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, quackery: { onStart(pokemon) { - for (const pokemon of this.getAllActive()) { - pokemon.clearBoosts(); - this.add('-clearboost', pokemon, '[from] ability: Quackery', '[of] ' + pokemon); + for (const target of this.getAllActive()) { + target.clearBoosts(); + this.add('-clearboost', target, '[from] ability: Quackery', '[of] ' + pokemon); } }, name: "Quackery", @@ -136,21 +134,19 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onTryHitPriority: 1, onTryHit(target, source, move) { if (target !== source && move.type === 'Fire') { - if (!this.boost({atk: 1})) { + if (!this.boost({spe: 1})) { this.add('-immune', target, '[from] ability: Rocket Propulsion'); } return null; } }, onAllyTryHitSide(target, source, move) { - if (source === this.effectState.target || !target.isAlly(source)) return; - if (move.type === 'Fire') { - this.boost({spe: 1}, this.effectState.target); - } + if (source === this.effectState.target || !target.isAlly(source) || move.type !== 'Fire') return; + this.boost({spe: 1}, this.effectState.target); }, isBreakable: true, name: "Rocket Propulsion", - shortDesc: "This Pokemon's Attack is raised 1 stage if hit by a Fire move; Fire immunity.", + shortDesc: "This Pokemon's Speed is raised 1 stage if hit by a Fire move; Fire immunity.", rating: 3, num: 157, }, @@ -159,7 +155,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, attacker, defender, move) { if (move.flags['bullet']) { this.debug('Sharpshooter boost'); - return this.chainModify(1.3); + return this.chainModify([5325, 4096]); } }, name: "Sharpshooter", @@ -169,10 +165,9 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, twoleftfeet: { onAfterMoveSecondary(target, source, move) { + if (!source || source === target || !target.hp || !move.totalDamage || move.hasBounced) return; const moves = ['axekick', 'chatter', 'confuseray', 'confusion', 'dizzypunch', 'dynamicpunch', 'flatter', 'hurricane', 'magicaltorque', 'psybeam', 'rockclimb', 'secretpower', 'shadowpanic', 'signalbeam', 'strangesteam', 'supersonic', 'swagger', 'sweetkiss', 'teeterdance', 'waterpulse']; - if (!source || source === target || !target.hp || !move.totalDamage) return; - if ((moves.includes(move.id) || moves.includes(move.name))) { - if (move.hasBounced == true) return; + if (moves.includes(move.id) || moves.includes(move.name)) { const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; newMove.pranksterBoosted = false; @@ -181,7 +176,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, name: "Two Left Feet", - shortDesc: "After another Pokemon uses a move that can cause confusion, this Pokemon uses the same move.", + shortDesc: "After another Pokemon uses a move that can cause confusion, this Pokemon uses the same move.", //Currently like Magic Bounce, ideally should function like Dancer rating: 4, }, rollingboil: { @@ -230,8 +225,8 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onDamagePriority: 1, onDamage(damage, target, source, effect) { if ( - effect && effect.effectType === 'Move' && - ['heirfriar'].includes(target.species.id) && !target.transformed + effect?.effectType === 'Move' && + target.species.id === 'heirfriar' && !target.transformed ) { this.add('-activate', target, 'ability: Be Not Afraid'); this.effectState.busted = true; @@ -239,30 +234,27 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, onCriticalHit(target, source, move) { - if (!target) return; - if (!['heirfriar'].includes(target.species.id) || target.transformed) { + if (!target/*) return; + if (*/|| target.species.id !== 'heirfriar' || target.transformed || !target.runImmunity(move.type)) { return; } const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); if (hitSub) return; - if (!target.runImmunity(move.type)) return; return false; }, onEffectiveness(typeMod, target, type, move) { - if (!target || move.category === 'Status') return; - if (!['heirfriar'].includes(target.species.id) || target.transformed) { + if (!target || move.category === 'Status'/*) return; + if (*/|| target.species.id !== 'heirfriar' || target.transformed || !target.runImmunity(move.type)) { return; } const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); if (hitSub) return; - - if (!target.runImmunity(move.type)) return; return 0; }, onUpdate(pokemon) { - if (['heirfriar'].includes(pokemon.species.id) && this.effectState.busted) { + if (pokemon.species.id === 'heirfriar' && this.effectState.busted) { const speciesid = pokemon.species.id === 'Heirfriar-Holy'; pokemon.formeChange(speciesid, this.effect, true); this.damage(pokemon.baseMaxhp / 8, pokemon, pokemon, this.dex.species.get(speciesid)); @@ -318,13 +310,27 @@ export const Abilities: {[abilityid: string]: AbilityData} = { num: 273, }, bullseye: { + onStart(pokemon) { + this.effectState.boosts = 0; + }, onSourceAfterFaint(length, target, source, effect) { if (effect && effect.effectType === 'Move') { - this.actions.useMove("focusenergy", source, source); + this.add('-ability', source, 'Bullseye'); + const newboosts = this.effectState.boosts+1; + this.add('-end', pokemon, `bullseye${newboosts-1}`, '[silent]'); + this.add('-start', pokemon, `bullseye${newboosts}`, '[silent]'); + this.effectState.boosts = newboosts; } }, + onModifyCritRatio(critRatio) { + if (!this.effectState.boosts) return; + return critRatio + this.effectState.boosts; + }, + onEnd(pokemon) { + this.add('-end', pokemon, `bullseye${this.effectState.boosts}`, '[silent]'); + }, name: "Bullseye", - shortDesc: "Uses Focus Energy currently - KOing an opponent raises crit ratio by 1", + shortDesc: "KOing an opponent raises crit ratio by 1", rating: 3, num: 153, }, @@ -342,27 +348,27 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, mobmentality: { onStart(pokemon) { - const allies = pokemon.side.pokemon; - if (pokemon.side.totalFainted < allies.length - 1) { + const benched = (pokemon.side.pokemon.length - 1) - pokemon.side.totalFainted; + if (benched) { this.add('-activate', pokemon, 'ability: Mob Mentality'); - const fallen = Math.min(pokemon.side.totalFainted, 5); - this.add('-start', pokemon, `fallen${fallen}`, '[silent]'); - this.effectState.fallen = (allies.length - 1) - fallen; + const unfainted = Math.min(benched, 5); + this.add('-start', pokemon, `unfainted${unfainted}`, '[silent]'); + this.effectState.unfainted = unfainted; } }, onEnd(pokemon) { - this.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]'); + this.add('-end', pokemon, `unfainted${this.effectState.unfainted$}`, '[silent]'); }, onBasePowerPriority: 21, onBasePower(basePower, attacker, defender, move) { - if (this.effectState.fallen) { - const powMod = [6144, 5734, 5325, 4915, 4506, 4096]; + if (this.effectState.unfainted) { + const powMod = [4096, 4506, 4915, 5325, 5734, 6144]; this.debug(`Mob Mentality boost: ${powMod[this.effectState.fallen]}/4096`); return this.chainModify([powMod[this.effectState.fallen], 4096]); } }, name: "Mob Mentality", - shortDesc: "Uncoded - This Pokemon's moves have 10% more power for each unfainted ally, up to 5 allies.", + shortDesc: "This Pokemon's moves have 10% more power for each unfainted ally, up to 5 allies.", rating: 4, num: 293, }, diff --git a/data/mods/bearticphone/scripts.ts b/data/mods/bearticphone/scripts.ts index 74a10b4343..8afd809693 100644 --- a/data/mods/bearticphone/scripts.ts +++ b/data/mods/bearticphone/scripts.ts @@ -87,14 +87,54 @@ export const Scripts: {[k: string]: ModdedBattleScriptsData} = { this.battle.add('-hint', `Some effects can force a Pokemon to use ${move.name} again in a row.`); } + /* + // Dancer's activation order is completely different from any other event, so it's handled separately + if (moveDidSomething && !move.isExternal) { + const dancers = []; + const confusemoves = ['axekick', 'chatter', 'confuseray', 'confusion', 'dizzypunch', 'dynamicpunch', 'flatter', 'hurricane', 'magicaltorque', + 'psybeam', 'rockclimb', 'secretpower', 'shadowpanic', 'signalbeam', 'strangesteam', 'supersonic', 'swagger', 'sweetkiss', 'teeterdance', 'waterpulse']; + for (const currentPoke of this.battle.getAllActive()) { + if (pokemon === currentPoke || currentPoke.isSemiInvulnerable()) continue; + if (currentPoke.hasAbility('twoleftfeet')) { + if (!confusemoves.includes(move.id) && !confusemoves.includes(move.name)) continue; + dancers.push(currentPoke); + } else if (currentPoke.hasAbility('beantheredonethat') && move.category === 'Status') { + if (['rototiller','flowershield','magneticflux','gearup'].includes(move.id)) { + dancers.push(currentPoke); + } else if (move.boosts) { + let i: BoostID; + for (i in move.boosts) { + if (boost[i]! > 0) { + dancers.push(currentPoke); + break; + } + } + } + } + } + // Dancer activates in order of lowest speed stat to highest + // Note that the speed stat used is after any volatile replacements like Speed Swap, + // but before any multipliers like Agility or Choice Scarf + // Ties go to whichever Pokemon has had the ability for the least amount of time + dancers.sort( + (a, b) => -(b.storedStats['spe'] - a.storedStats['spe']) || b.abilityOrder - a.abilityOrder + ); + const targetOf1stDance = this.battle.activeTarget!; + for (const dancer of dancers) { + if (this.battle.faintMessages()) break; + if (dancer.fainted) continue; + this.battle.add('-activate', dancer, 'ability: ' + dancer.getAbility().name); + const dancersTarget = !targetOf1stDance.isAlly(dancer) && pokemon.isAlly(dancer) ? + targetOf1stDance : + pokemon; + const dancersTargetLoc = dancer.getLocOf(dancersTarget); + this.runMove(move.id, dancer, dancersTargetLoc, this.dex.abilities.get(dancer.ability), undefined, true); + } + }*/ + if (noLock && pokemon.volatiles['lockedmove']) delete pokemon.volatiles['lockedmove']; this.battle.faintMessages(); this.battle.checkWin(); - - if (this.battle.gen <= 4) { - // In gen 4, the outermost move is considered the last move for Copycat - this.battle.activeMove = oldActiveMove; - } } }, teambuilderConfig: { diff --git a/data/mods/earthsky/moves.ts b/data/mods/earthsky/moves.ts index f251996e10..d8130ee2a8 100644 --- a/data/mods/earthsky/moves.ts +++ b/data/mods/earthsky/moves.ts @@ -497,6 +497,27 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { this.add('-anim', source, "Brutal Swing", target); }, }, + metaledge: { + num: 1036, + basePower: 90, + accuracy: 100, + category: "Physical", + name: "Metal Edge", + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + critRatio: 2, + secondary: null, + desc: "Has a higher chance for a critical hit.", + shortDesc: "High critical hit ratio.", + target: "normal", + type: "Steel", + contestType: "Cool", + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Metal Claw", target); + }, + }, midnight: { num: 1010, basePower: 0, @@ -516,12 +537,12 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { return 5; }, onFieldStart(battle, source, effect) { - this.add('-fieldstart', 'move: Midnight'); + //this.add('-fieldstart', 'move: Midnight'); this.add('-message', "The battlefield became very dark!"); //Suppression implemented in scripts.ts as edits to sim/field.ts }, onFieldEnd() { - this.add('-fieldend', 'move: Midnight'); + //this.add('-fieldend', 'move: Midnight'); this.add('-message', "The darkness disappeared from the field."); }, }, @@ -560,27 +581,6 @@ export const Moves: {[moveid: string]: ModdedMoveData} = { this.add('-anim', source, "Extrasensory", target); }, }, - metaledge: { - num: 1036, - basePower: 90, - accuracy: 100, - category: "Physical", - name: "Metal Edge", - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, - critRatio: 2, - secondary: null, - desc: "Has a higher chance for a critical hit.", - shortDesc: "High critical hit ratio.", - target: "normal", - type: "Steel", - contestType: "Cool", - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Metal Claw", target); - }, - }, moltenslag: { num: 1012, basePower: 80, diff --git a/data/mods/earthsky/pokedex.ts b/data/mods/earthsky/pokedex.ts index 25d8f9a567..4f5526d097 100644 --- a/data/mods/earthsky/pokedex.ts +++ b/data/mods/earthsky/pokedex.ts @@ -1890,17 +1890,21 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Run Away", 1: "Adaptability", H: "Fluffy"}, }, + jolteon: { + inherit: true, + baseStats: {hp: 65, atk: 95, def: 60, spa: 110, spd: 65, spe: 130}, + }, articunogalar: { inherit: true, - abilities: {0: "Pressure", H: "Competitive"}, + abilities: {0: "Unnerve", H: "Competitive"}, }, zapdosgalar: { inherit: true, - abilities: {0: "Pressure", H: "Defiant"}, + abilities: {0: "Unnerve", H: "Defiant"}, }, moltresgalar: { inherit: true, - abilities: {0: "Pressure", H: "Berserk"}, + abilities: {0: "Unnerve", H: "Berserk"}, }, cyndaquil: { inherit: true, @@ -2405,6 +2409,18 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { abilities: {0: "Serene Grace", H: "Limber"}, exclusiveHidden: true, }, + oshawott: { + inherit: true, + abilities: {0: "Torrent", H: "Relentless"}, + }, + dewott: { + inherit: true, + abilities: {0: "Torrent", H: "Relentless"}, + }, + samurott: { + inherit: true, + abilities: {0: "Torrent", H: "Relentless"}, + }, herdier: { inherit: true, abilities: {0: "Intimidate", 1: "Snow Plow", H: "Scrappy"}, @@ -4055,6 +4071,7 @@ export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { dialgaorigin: null, palkiaorigin: null, garbodorgmax: null, + greninjabond: null, floetteeternal: null, gumshoostotem: null, vikavolttotem: null, diff --git a/data/mods/earthsky/scripts.ts b/data/mods/earthsky/scripts.ts index fc0f458d98..a1b4363541 100644 --- a/data/mods/earthsky/scripts.ts +++ b/data/mods/earthsky/scripts.ts @@ -46,7 +46,7 @@ export const Scripts: ModdedBattleScriptsData = { return ['fireplaque', 'grassplaque', 'waterplaque'].includes(itemid); case 'acrobatics': - return itemid === '' || set?.item.consumable; + return itemid === '' || dex.items.get(itemid)?.consumable; case 'aerialace': return ['sharpness', 'technician'].includes(abilityid) && !moves.includes('bravebird'); case 'ancientpower': @@ -70,7 +70,7 @@ export const Scripts: ModdedBattleScriptsData = { case 'hiddenpowerelectric': return !(moves.includes('thunderbolt') || moves.includes('discharge')); case 'hiddenpowerfighting': - return !(moves.includes('aurasphere') || moves.includes('focusblast')); + return abilityid === 'technician' || !(moves.includes('aurasphere') || moves.includes('focusblast')); case 'hiddenpowerfire': return !(moves.includes('flamethrower') || moves.includes('heatwave') || moves.includes('lavaplume') || moves.includes('mysticalfire')); case 'hiddenpowergrass': @@ -109,6 +109,8 @@ export const Scripts: ModdedBattleScriptsData = { return abilityid === 'bludgeon' && !(itemid === '' || dex.items.get(itemid)?.consumable); case 'tantrum': return !(moves.includes('earthquake') || moves.includes('drillrun') || moves.includes('highhorsepower')) || formatType !== 'singles'; + case 'wildcharge': + return !(moves.includes('volttackle') || moves.includes('zingzap')); } if (formatType !== 'singles' && this.GOOD_DOUBLES_MOVES.includes(id)) { @@ -137,7 +139,7 @@ export const Scripts: ModdedBattleScriptsData = { if(moveData.multihit?.length && moveData.basePower > 15 && (['skilllink', 'technician'].includes(abilityid) || itemid === 'loadeddice')){ return true; } - if (moveData.basePower < 75 && !(abilityid === 'technician' && moveData.basePower >= 50)) { + if (moveData.basePower < 75 && !(abilityid === 'technician' && movedata.basePower <= 60 && moveData.basePower >= 50)) { return this.GOOD_WEAK_MOVES.includes(id); } return !this.BAD_STRONG_MOVES.includes(id); @@ -146,7 +148,7 @@ export const Scripts: ModdedBattleScriptsData = { 'acidarmor', 'agility', 'aromatherapy', 'auroraveil', 'autotomize', 'batonpass', 'bellydrum', 'bulkup', 'bunkerdown', 'calmmind', 'coil', 'cottonguard', 'courtchange', 'curse', 'defog', 'destinybond', 'detect', 'disable', 'doubleteam', 'dragondance', 'eminence', 'encore', 'escapetunnel', 'filletaway', 'geomancy', 'glare', 'haze', 'healbell', 'healblock', 'healorder', 'healpulse', 'healingwish', 'heartswap', 'honeclaws', 'irondefense', 'kingsshield', 'leechseed', 'lightscreen', 'lovelykiss', 'lunardance', 'magiccoat', 'meditate', 'memento', 'midnight', 'milkdrink', 'moonlight', 'morningsun', 'nastyplot', 'naturesmadness', 'noretreat', 'obstruct', 'painsplit', 'partingshot', 'perishsong', 'preheat', 'protect', 'quiverdance', 'rebound', 'recover', 'reflect', 'reflecttype', 'rejuvenate', 'rest', 'revivalblessing', 'roar', 'rockpolish', 'roost', 'rototiller', 'shellsmash', 'shelter', 'shiftgear', 'shoreup', 'silktrap', 'slackoff', 'sleeppowder', 'sleeptalk', 'slipaway', 'softboiled', 'spiderweb', 'spikes', 'spikyshield', 'spore', 'stasis', 'stealthrock', 'stickyweb', 'strengthsap', 'substitute', 'switcheroo', 'swordsdance', 'synthesis', 'tailglow', 'tailwind', 'taunt', 'thunderwave', 'toxic', 'transform', 'trick', 'victorydance', 'warriorssoul', 'whirlwind', 'willowisp', 'wish', 'yawn', ], GOOD_WEAK_MOVES: [ - 'accelerock', 'ambush', 'aquacutter', 'aquajet', 'avalanche', 'bind', 'boltbeak', 'bonemerang', 'bulletpunch', 'circlethrow', 'clamp', 'clearsmog', 'crushgrip', 'doubleironbash', 'dragondarts', 'dragontail', 'drainingkiss', 'endeavor', 'equalizer', 'facade', 'firefang', 'fishiousrend', 'flowertrap', 'freezedry', 'frustration', 'geargrind', 'grassknot', 'gyroball', 'hex', 'icefang', 'iceshard', 'iciclespear', 'knockoff', 'lastrespects', 'lowkick', 'machpunch', 'mortalstrike', 'naturesmadness', 'nightshade', 'nuzzle', 'pelletshot', 'populationbomb', 'psychocut', 'pursuit', 'quickattack', 'rapidspin', 'rockblast', 'ruination', 'saltcure', 'secretpower', 'seismictoss', 'shadowclaw', 'shadowsneak', 'skydrop', 'snaptrap', 'stoneaxe', 'storedpower', 'stormthrow', 'suckerpunch', 'superfang', 'surgingstrikes', 'tailslap', 'trailhead', 'uturn', 'vengefulspirit', 'voltswitch', 'watershuriken', 'weatherball', + 'accelerock', 'ambush', 'aquacutter', 'aquajet', 'avalanche', 'bind', 'boltbeak', 'bonemerang', 'bulletpunch', 'circlethrow', 'clamp', 'clearsmog', 'crushgrip', 'doubleironbash', 'dragondarts', 'dragontail', 'drainingkiss', 'endeavor', 'equalizer', 'facade', 'firefang', 'fishiousrend', 'flowertrap', 'freezedry', 'frustration', 'geargrind', 'grassknot', 'gyroball', 'hex', 'icefang', 'iceshard', 'iciclespear', 'knockoff', 'lastrespects', 'lowkick', 'machpunch', 'mortalstrike', 'naturesmadness', 'nightshade', 'nuzzle', 'pelletshot', 'populationbomb', 'psychocut', 'pursuit', 'quickattack', 'rapidspin', 'rockblast', 'ruination', 'saltcure', 'seismictoss', 'shadowclaw', 'shadowsneak', 'skydrop', 'snaptrap', 'stoneaxe', 'storedpower', 'stormthrow', 'suckerpunch', 'superfang', 'surgingstrikes', 'tailslap', 'trailhead', 'uturn', 'vengefulspirit', 'voltswitch', 'watershuriken', 'weatherball', ], BAD_STRONG_MOVES: [ 'belch', 'burnup', 'completeshock', 'crushclaw', 'dreameater', 'eggbomb', 'falsesurrender', 'flyingpress', 'hyperfang', 'hyperspacehole', 'jawlock', 'landswrath', 'megapunch', 'muddywater', 'pollenpuff', 'selfdestruct', 'shelltrap', 'slam', 'smartstrike', 'synchronoise', 'takedown', 'thrash', 'uproar', 'vitalthrow', @@ -1210,7 +1212,6 @@ export const Scripts: ModdedBattleScriptsData = { Math.abs(acrossFromTargetLoc - sourceLoc) <= 1 : Math.abs(targetLoc - sourceLoc) === 1); const canTargetAny = source.tacticianBoosted; - if(targetType === 'anyAlly') console.log("anyAlly target? " + !isFoe || isSelf); if (this.gameType === 'freeforall' && targetType === 'adjacentAlly') { // moves targeting one ally can instead target foes in Battle Royal @@ -4248,10 +4249,10 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','articunogalar').learnset.trickroom = ["9L48","9M"]; this.modData('Learnsets','articunogalar').learnset.doubleteam = ["9L54"]; this.modData('Learnsets','articunogalar').learnset.extrasensory = ["9L60"]; - this.modData('Learnsets','articunogalar').learnset.dreameater = ["9L66","9M"]; + this.modData('Learnsets','articunogalar').learnset.futuresight = ["9L66","9M"]; this.modData('Learnsets','articunogalar').learnset.recover = ["9L72"]; this.modData('Learnsets','articunogalar').learnset.hurricane = ["9L78","9M"]; - this.modData('Learnsets','articunogalar').learnset.futuresight = ["9L84","9M"]; + this.modData('Learnsets','articunogalar').learnset.storedpower = ["9L84","9M"]; this.modData('Learnsets','articunogalar').learnset.laserfocus = ["9M"]; this.modData('Learnsets','articunogalar').learnset.telekinesis = ["9M"]; // Zapdos @@ -4653,7 +4654,10 @@ export const Scripts: ModdedBattleScriptsData = { this.modData('Learnsets','espeon').learnset.flash = ["9M"]; this.modData('Learnsets','espeon').learnset.nightmare = ["9M"]; // Umbreon - this.modData('Learnsets','umbreon').learnset.nightdaze = ["9D"]; + this.modData('Learnsets','umbreon').learnset.moonblast = ["9D"]; + this.modData('Learnsets','umbreon').learnset.meanlook = ["925"]; + this.modData('Learnsets','umbreon').learnset.nightdaze = ["9L37"]; + this.modData('Learnsets','umbreon').learnset.assurance = ["9M"]; this.modData('Learnsets','umbreon').learnset.flash = ["9M"]; this.modData('Learnsets','umbreon').learnset.nightmare = ["9M"]; this.modData('Learnsets','umbreon').learnset.toxic = ["9M"]; @@ -11009,6 +11013,7 @@ export const Scripts: ModdedBattleScriptsData = { delete this.modData('Learnsets','flittle').learnset.roost; // Espathra this.modData('Learnsets','espathra').learnset.lusterpurge = ["9D"]; + this.modData('Learnsets','espathra').learnset.storedpower = ["9L0"]; this.modData('Learnsets','espathra').learnset.uproar = ["9L34", "9M"]; this.modData('Learnsets','espathra').learnset.allyswitch = ["9M"]; this.modData('Learnsets','espathra').learnset.bounce = ["9M"]; diff --git a/data/mods/earthsky/sprites/aniback-shiny/darmanitanrage.gif b/data/mods/earthsky/sprites/aniback-shiny/darmanitanrage.gif index a4d11085c4..df99c7c4b4 100644 Binary files a/data/mods/earthsky/sprites/aniback-shiny/darmanitanrage.gif and b/data/mods/earthsky/sprites/aniback-shiny/darmanitanrage.gif differ diff --git a/data/mods/earthsky/sprites/aniback-shiny/lycanroctwilight.gif b/data/mods/earthsky/sprites/aniback-shiny/lycanroctwilight.gif index 2b0a5b536c..271a145af0 100644 Binary files a/data/mods/earthsky/sprites/aniback-shiny/lycanroctwilight.gif and b/data/mods/earthsky/sprites/aniback-shiny/lycanroctwilight.gif differ diff --git a/data/mods/earthsky/sprites/aniback-shiny/victreebell.gif b/data/mods/earthsky/sprites/aniback-shiny/victreebell.gif index f8f2e16aef..f257dca3d5 100644 Binary files a/data/mods/earthsky/sprites/aniback-shiny/victreebell.gif and b/data/mods/earthsky/sprites/aniback-shiny/victreebell.gif differ diff --git a/data/mods/earthsky/sprites/aniback/darmanitan-rage.gif b/data/mods/earthsky/sprites/aniback/darmanitan-rage.gif deleted file mode 100644 index ece9209e92..0000000000 Binary files a/data/mods/earthsky/sprites/aniback/darmanitan-rage.gif and /dev/null differ diff --git a/data/mods/earthsky/sprites/aniback/darmanitanrage.gif b/data/mods/earthsky/sprites/aniback/darmanitanrage.gif new file mode 100644 index 0000000000..7ecd845e78 Binary files /dev/null and b/data/mods/earthsky/sprites/aniback/darmanitanrage.gif differ diff --git a/data/mods/earthsky/sprites/aniback/lycanroc-twilight.gif b/data/mods/earthsky/sprites/aniback/lycanroc-twilight.gif deleted file mode 100644 index f3affdc6ad..0000000000 Binary files a/data/mods/earthsky/sprites/aniback/lycanroc-twilight.gif and /dev/null differ diff --git a/data/mods/earthsky/sprites/aniback/lycanroctwilight.gif b/data/mods/earthsky/sprites/aniback/lycanroctwilight.gif new file mode 100644 index 0000000000..3c6ff69dcb Binary files /dev/null and b/data/mods/earthsky/sprites/aniback/lycanroctwilight.gif differ diff --git a/data/mods/earthsky/sprites/aniback/victreebell.gif b/data/mods/earthsky/sprites/aniback/victreebell.gif index eef0d13588..334016ec39 100644 Binary files a/data/mods/earthsky/sprites/aniback/victreebell.gif and b/data/mods/earthsky/sprites/aniback/victreebell.gif differ diff --git a/data/mods/earthsky/sprites/anifront-shiny/darmanitanrage.gif b/data/mods/earthsky/sprites/anifront-shiny/darmanitanrage.gif index cc0c046152..3d80adc813 100644 Binary files a/data/mods/earthsky/sprites/anifront-shiny/darmanitanrage.gif and b/data/mods/earthsky/sprites/anifront-shiny/darmanitanrage.gif differ diff --git a/data/mods/earthsky/sprites/anifront-shiny/lycanroctwilight.gif b/data/mods/earthsky/sprites/anifront-shiny/lycanroctwilight.gif index 11ba69f3df..4f06b3e516 100644 Binary files a/data/mods/earthsky/sprites/anifront-shiny/lycanroctwilight.gif and b/data/mods/earthsky/sprites/anifront-shiny/lycanroctwilight.gif differ diff --git a/data/mods/earthsky/sprites/anifront-shiny/victreebell.gif b/data/mods/earthsky/sprites/anifront-shiny/victreebell.gif index 993ca8bc95..3cc7889fe2 100644 Binary files a/data/mods/earthsky/sprites/anifront-shiny/victreebell.gif and b/data/mods/earthsky/sprites/anifront-shiny/victreebell.gif differ diff --git a/data/mods/earthsky/sprites/anifront/darmanitanrage.gif b/data/mods/earthsky/sprites/anifront/darmanitanrage.gif index ccbb1a7333..4c2e827a23 100644 Binary files a/data/mods/earthsky/sprites/anifront/darmanitanrage.gif and b/data/mods/earthsky/sprites/anifront/darmanitanrage.gif differ diff --git a/data/mods/earthsky/sprites/anifront/lycanroc-dusk.gif b/data/mods/earthsky/sprites/anifront/lycanroc-dusk.gif deleted file mode 100644 index f785ca2be1..0000000000 Binary files a/data/mods/earthsky/sprites/anifront/lycanroc-dusk.gif and /dev/null differ diff --git a/data/mods/earthsky/sprites/anifront/lycanroctwilight.gif b/data/mods/earthsky/sprites/anifront/lycanroctwilight.gif new file mode 100644 index 0000000000..01ccd65377 Binary files /dev/null and b/data/mods/earthsky/sprites/anifront/lycanroctwilight.gif differ diff --git a/data/mods/earthsky/sprites/anifront/victreebell.gif b/data/mods/earthsky/sprites/anifront/victreebell.gif index cca0b1fe2e..829414bc12 100644 Binary files a/data/mods/earthsky/sprites/anifront/victreebell.gif and b/data/mods/earthsky/sprites/anifront/victreebell.gif differ diff --git a/data/mods/gen9multiverse/formats-data.ts b/data/mods/gen9multiverse/formats-data.ts index aee3a8fb85..2a05812a6b 100644 --- a/data/mods/gen9multiverse/formats-data.ts +++ b/data/mods/gen9multiverse/formats-data.ts @@ -113,4 +113,28 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { volcarona: { tier: "MV", }, + diggersby: { + tier: "MV", + }, + pancham: { + tier: "MV", + }, + aegislash: { + tier: "MV", + }, + aegislashblade: { + tier: "Illegal", + }, + dragalge: { + tier: "MV", + }, + sylveon: { + tier: "MV", + }, + goodra: { + tier: "MV", + }, + volcanion: { + tier: "MV", + }, }; \ No newline at end of file diff --git a/data/mods/gen9multiverse/learnsets.ts b/data/mods/gen9multiverse/learnsets.ts index e66a28bffc..4a061159c5 100644 --- a/data/mods/gen9multiverse/learnsets.ts +++ b/data/mods/gen9multiverse/learnsets.ts @@ -2951,4 +2951,505 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { zenheadbutt: ["9L1"], }, }, + diggersby: { + learnset: { + agility: ["9L1"], + attract: ["9L1"], + bodyslam: ["9L1"], + bounce: ["9L1"], + brickbreak: ["9L1"], + brutalswing: ["9L1"], + bulkup: ["9L1"], + bulldoze: ["9L1"], + closecombat: ["9L1"], + confide: ["9L1"], + cut: ["9L1"], + dig: ["9L1"], + doubleedge: ["9L1"], + doublekick: ["9L1"], + doubleslap: ["9L1"], + doubleteam: ["9L1"], + earthpower: ["9L1"], + earthquake: ["9L1"], + endeavor: ["9L1"], + endure: ["9L1"], + facade: ["9L1"], + firepunch: ["9L1"], + flail: ["9L1"], + fling: ["9L1"], + focuspunch: ["9L1"], + foulplay: ["9L1"], + frustration: ["9L1"], + gastroacid: ["9L1"], + gigaimpact: ["9L1"], + grassknot: ["9L1"], + gunkshot: ["9L1"], + hammerarm: ["9L1"], + hiddenpower: ["9L1"], + highhorsepower: ["9L1"], + hyperbeam: ["9L1"], + icepunch: ["9L1"], + ironhead: ["9L1"], + irontail: ["9L1"], + knockoff: ["9L1"], + laserfocus: ["9L1"], + lastresort: ["9L1"], + leer: ["9L1"], + lowkick: ["9L1"], + megakick: ["9L1"], + megakick: ["9L1"], + megapunch: ["9L1"], + mudshot: ["9L1"], + mudslap: ["9L1"], + naturepower: ["9L1"], + odorsleuth: ["9L1"], + payback: ["9L1"], + poweruppunch: ["9L1"], + protect: ["9L1"], + quickattack: ["9L1"], + recycle: ["9L1"], + rest: ["9L1"], + return: ["9L1"], + rockslide: ["9L1"], + rocksmash: ["9L1"], + rocktomb: ["9L1"], + rototiller: ["9L1"], + round: ["9L1"], + sandstorm: ["9L1"], + sandtomb: ["9L1"], + scorchingsands: ["9L1"], + secretpower: ["9L1"], + sleeptalk: ["9L1"], + sludgebomb: ["9L1"], + smackdown: ["9L1"], + snatch: ["9L1"], + snore: ["9L1"], + spikes: ["9L1"], + stompingtantrum: ["9L1"], + stoneedge: ["9L1"], + strength: ["9L1"], + substitute: ["9L1"], + superfang: ["9L1"], + superpower: ["9L1"], + surf: ["9L1"], + swagger: ["9L1"], + swordsdance: ["9L1"], + tackle: ["9L1"], + takedown: ["9L1"], + thief: ["9L1"], + thunderpunch: ["9L1"], + torment: ["9L1"], + toxic: ["9L1"], + uproar: ["9L1"], + uturn: ["9L1"], + wildcharge: ["9L1"], + workup: ["9L1"], + }, + }, + pancham: { + learnset: { + aerialace: ["9L1"], + armthrust: ["9L1"], + attract: ["9L1"], + blitzkrieg: ["9L1"], + block: ["9L1"], + bodyslam: ["9L1"], + brickbreak: ["9L1"], + bulkup: ["9L1"], + bulldoze: ["9L1"], + circlethrow: ["9L1"], + coaching: ["9L1"], + cometpunch: ["9L1"], + confide: ["9L1"], + covet: ["9L1"], + crunch: ["9L1"], + cut: ["9L1"], + darkpulse: ["9L1"], + dig: ["9L1"], + doubleteam: ["9L1"], + drainpunch: ["9L1"], + dualchop: ["9L1"], + echoedvoice: ["9L1"], + endeavor: ["9L1"], + endure: ["9L1"], + entrainment: ["9L1"], + facade: ["9L1"], + falseswipe: ["9L1"], + firepunch: ["9L1"], + fling: ["9L1"], + focuspunch: ["9L1"], + foulplay: ["9L1"], + frustration: ["9L1"], + grassknot: ["9L1"], + gunkshot: ["9L1"], + helpinghand: ["9L1"], + hiddenpower: ["9L1"], + highhorsepower: ["9L1"], + hypervoice: ["9L1"], + icepunch: ["9L1"], + ironhead: ["9L1"], + karatechop: ["9L1"], + knockoff: ["9L1"], + lashout: ["9L1"], + leer: ["9L1"], + lowkick: ["9L1"], + lowsweep: ["9L1"], + mefirst: ["9L1"], + megakick: ["9L1"], + megapunch: ["9L1"], + partingshot: ["9L1"], + payback: ["9L1"], + powertrip: ["9L1"], + poweruppunch: ["9L1"], + protect: ["9L1"], + quash: ["9L1"], + quickguard: ["9L1"], + raindance: ["9L1"], + rest: ["9L1"], + retaliate: ["9L1"], + return: ["9L1"], + roar: ["9L1"], + rockslide: ["9L1"], + rocksmash: ["9L1"], + rocktomb: ["9L1"], + round: ["9L1"], + secretpower: ["9L1"], + seismictoss: ["9L1"], + shadowclaw: ["9L1"], + skyuppercut: ["9L1"], + slash: ["9L1"], + sleeptalk: ["9L1"], + sludgebomb: ["9L1"], + snatch: ["9L1"], + snore: ["9L1"], + spite: ["9L1"], + stoneedge: ["9L1"], + stormthrow: ["9L1"], + strength: ["9L1"], + substitute: ["9L1"], + sunnyday: ["9L1"], + superpower: ["9L1"], + surf: ["9L1"], + swagger: ["9L1"], + swordsdance: ["9L1"], + tackle: ["9L1"], + taunt: ["9L1"], + thunderpunch: ["9L1"], + torment: ["9L1"], + toxic: ["9L1"], + uproar: ["9L1"], + vitalthrow: ["9L1"], + workup: ["9L1"], + zenheadbutt: ["9L1"], + }, + }, + aegislash: { + learnset: { + aerialace: ["9L1"], + afteryou: ["9L1"], + airslash: ["9L1"], + attract: ["9L1"], + blitzkrieg: ["9L1"], + block: ["9L1"], + brickbreak: ["9L1"], + brutalswing: ["9L1"], + closecombat: ["9L1"], + confide: ["9L1"], + cut: ["9L1"], + doubleteam: ["9L1"], + endure: ["9L1"], + facade: ["9L1"], + falseswipe: ["9L1"], + flashcannon: ["9L1"], + frustration: ["9L1"], + furycutter: ["9L1"], + gigaimpact: ["9L1"], + gyroball: ["9L1"], + headsmash: ["9L1"], + hiddenpower: ["9L1"], + hyperbeam: ["9L1"], + irondefense: ["9L1"], + ironhead: ["9L1"], + kingsshield: ["9L1"], + laserfocus: ["9L1"], + magnetrise: ["9L1"], + metalsound: ["9L1"], + nightslash: ["9L1"], + powertrick: ["9L1"], + protect: ["9L1"], + psychocut: ["9L1"], + pursuit: ["9L1"], + raindance: ["9L1"], + recover: ["9L1"], + reflect: ["9L1"], + rest: ["9L1"], + retaliate: ["9L1"], + return: ["9L1"], + reversal: ["9L1"], + rockslide: ["9L1"], + rocksmash: ["9L1"], + round: ["9L1"], + sacredsword: ["9L1"], + screech: ["9L1"], + secretpower: ["9L1"], + shadowball: ["9L1"], + shadowbone: ["9L1"], + shadowclaw: ["9L1"], + shadowsneak: ["9L1"], + shockwave: ["9L1"], + slash: ["9L1"], + sleeptalk: ["9L1"], + snore: ["9L1"], + solarblade: ["9L1"], + spite: ["9L1"], + steelbeam: ["9L1"], + substitute: ["9L1"], + sunnyday: ["9L1"], + swagger: ["9L1"], + swordsdance: ["9L1"], + tackle: ["9L1"], + wideguard: ["9L1"], + }, + }, + dragalge: { + learnset: { + acid: ["9L1"], + acidspray: ["9L1"], + aquatail: ["9L1"], + chillingwater: ["9L1"], + doubleteam: ["9L1"], + dracometeor: ["9L1"], + dragonpulse: ["9L1"], + endure: ["9L1"], + facade: ["9L1"], + flipturn: ["9L1"], + focusblast: ["9L1"], + gigaimpact: ["9L1"], + gunkshot: ["9L1"], + haze: ["9L1"], + hydropump: ["9L1"], + hyperbeam: ["9L1"], + icywind: ["9L1"], + incinerate: ["9L1"], + liquidation: ["9L1"], + mudshot: ["9L1"], + mudslap: ["9L1"], + outrage: ["9L1"], + playrough: ["9L1"], + poisontail: ["9L1"], + protect: ["9L1"], + raindance: ["9L1"], + rest: ["9L1"], + scald: ["9L1"], + scaleshot: ["9L1"], + scaryface: ["9L1"], + shadowball: ["9L1"], + sleeptalk: ["9L1"], + sludgebomb: ["9L1"], + smokescreen: ["9L1"], + snowscape: ["9L1"], + spite: ["9L1"], + substitute: ["9L1"], + surf: ["9L1"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9L1"], + terablast: ["9L1"], + thief: ["9L1"], + thunder: ["9L1"], + thunderbolt: ["9L1"], + toxic: ["9L1"], + toxicspikes: ["9L1"], + venoshock: ["9L1"], + waterfall: ["9L1"], + watergun: ["9L1"], + waterpulse: ["9L1"], + }, + }, + sylveon: { + learnset: { + babydolleyes: ["9L1"], + batonpass: ["9L1"], + bite: ["9L1"], + bodyslam: ["9L1"], + calmmind: ["9L1"], + charm: ["9L1"], + copycat: ["9L1"], + covet: ["9L1"], + dazzlinggleam: ["9L1"], + dig: ["9L1"], + disarmingvoice: ["9L1"], + doubleedge: ["9L1"], + drainingkiss: ["9L1"], + endure: ["9L1"], + facade: ["9L1"], + faketears: ["9L1"], + gigaimpact: ["9L1"], + growl: ["9L1"], + helpinghand: ["9L1"], + hyperbeam: ["9L1"], + hypervoice: ["9L1"], + lastresort: ["9L1"], + lightscreen: ["9L1"], + magicalleaf: ["9L1"], + mistyexplosion: ["9L1"], + mistyterrain: ["9L1"], + moonblast: ["9L1"], + mudslap: ["9L1"], + mysticalfire: ["9L1"], + playrough: ["9L1"], + protect: ["9L1"], + psychic: ["9L1"], + psychup: ["9L1"], + psyshock: ["9L1"], + quickattack: ["9L1"], + raindance: ["9L1"], + reflect: ["9L1"], + rest: ["9L1"], + roar: ["9L1"], + sandattack: ["9L1"], + shadowball: ["9L1"], + skillswap: ["9L1"], + sleeptalk: ["9L1"], + storedpower: ["9L1"], + substitute: ["9L1"], + sunnyday: ["9L1"], + swift: ["9L1"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9L1"], + terablast: ["9L1"], + trailblaze: ["9L1"], + weatherball: ["9L1"], + }, + }, + goodra: { + learnset: { + absorb: ["9L1"], + acidspray: ["9L1"], + aquatail: ["9L1"], + blizzard: ["9L1"], + bodypress: ["9L1"], + bodyslam: ["9L1"], + bulldoze: ["9L1"], + charm: ["9L1"], + chillingwater: ["9L1"], + curse: ["9L1"], + dracometeor: ["9L1"], + dragonbreath: ["9L1"], + dragonclaw: ["9L1"], + dragonpulse: ["9L1"], + dragontail: ["9L1"], + earthpower: ["9L1"], + earthquake: ["9L1"], + endure: ["9L1"], + facade: ["9L1"], + feint: ["9L1"], + fireblast: ["9L1"], + firepunch: ["9L1"], + flail: ["9L1"], + flamethrower: ["9L1"], + focusblast: ["9L1"], + focuspunch: ["9L1"], + gigaimpact: ["9L1"], + hydropump: ["9L1"], + hyperbeam: ["9L1"], + icebeam: ["9L1"], + knockoff: ["9L1"], + muddywater: ["9L1"], + mudshot: ["9L1"], + outrage: ["9L1"], + poisontail: ["9L1"], + powerwhip: ["9L1"], + protect: ["9L1"], + raindance: ["9L1"], + rest: ["9L1"], + rockslide: ["9L1"], + scald: ["9L1"], + sleeptalk: ["9L1"], + sludgebomb: ["9L1"], + stompingtantrum: ["9L1"], + substitute: ["9L1"], + sunnyday: ["9L1"], + surf: ["9L1"], + tackle: ["9L1"], + takedown: ["9L1"], + tearfullook: ["9L1"], + terablast: ["9L1"], + thunder: ["9L1"], + thunderbolt: ["9L1"], + thunderpunch: ["9L1"], + toxic: ["9L1"], + watergun: ["9L1"], + waterpulse: ["9L1"], + weatherball: ["9L1"], + }, + }, + volcanion: { + learnset: { + bodypress: ["9L1"], + bodyslam: ["9L1"], + brickbreak: ["9L1"], + bulldoze: ["9L1"], + dig: ["9L1"], + earthpower: ["9L1"], + earthquake: ["9L1"], + endure: ["9L1"], + explosion: ["9L1"], + facade: ["9L1"], + fireblast: ["9L1"], + firefang: ["9L1"], + firespin: ["9L1"], + flamecharge: ["9L1"], + flamethrower: ["9L1"], + flareblitz: ["9L1"], + flashcannon: ["9L1"], + fling: ["9L1"], + focusblast: ["9L1"], + gigaimpact: ["9L1"], + grassknot: ["9L1"], + gyroball: ["9L1"], + haze: ["9L1"], + heatcrash: ["9L1"], + heatwave: ["9L1"], + heavyslam: ["9L1"], + hydropump: ["9L1"], + hyperbeam: ["9L1"], + incinerate: ["9L1"], + leer: ["9L1"], + liquidation: ["9L1"], + mist: ["9L1"], + mistyterrain: ["9L1"], + mudshot: ["9L1"], + overheat: ["9L1"], + protect: ["9L1"], + raindance: ["9L1"], + rest: ["9L1"], + roar: ["9L1"], + rockslide: ["9L1"], + rocktomb: ["9L1"], + sandstorm: ["9L1"], + scald: ["9L1"], + scaryface: ["9L1"], + sleeptalk: ["9L1"], + sludgebomb: ["9L1"], + smackdown: ["9L1"], + solarbeam: ["9L1"], + steameruption: ["9L1"], + stomp: ["9L1"], + stompingtantrum: ["9L1"], + stoneedge: ["9L1"], + substitute: ["9L1"], + sunnyday: ["9L1"], + takedown: ["9L1"], + taunt: ["9L1"], + terablast: ["9L1"], + thunderfang: ["9L1"], + watergun: ["9L1"], + waterpulse: ["9L1"], + weatherball: ["9L1"], + wildcharge: ["9L1"], + willowisp: ["9L1"], + }, + }, }; diff --git a/data/mods/gen9multiverse/moves.ts b/data/mods/gen9multiverse/moves.ts index 4d0e481fed..6d8bfc6002 100644 --- a/data/mods/gen9multiverse/moves.ts +++ b/data/mods/gen9multiverse/moves.ts @@ -15,6 +15,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + shadowbone: { + inherit: true, + isNonstandard: null, + }, boo: { diff --git a/data/mods/gen9multiverse/pokedex.ts b/data/mods/gen9multiverse/pokedex.ts index 18dc994d48..bdd13cea3d 100644 --- a/data/mods/gen9multiverse/pokedex.ts +++ b/data/mods/gen9multiverse/pokedex.ts @@ -200,4 +200,41 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, prevo: null, }, + diggersby: { + inherit: true, + baseStats: {hp: 87, atk: 56, def: 97, spa: 50, spd: 87, spe: 78}, + abilities: {0: "Pickup", H: "Huge Power"}, + }, + pancham: { + inherit: true, + types: ["Fighting", "Dark"], + baseStats: {hp: 90, atk: 100, def: 70, spa: 55, spd: 70, spe: 72}, + }, + aegislash: { + inherit: true, + baseStats: {hp: 60, atk: 40, def: 140, spa: 40, spd: 140, spe: 60}, + prevo: null, + }, + aegislashblade: { + inherit: true, + baseStats: {hp: 60, atk: 130, def: 50, spa: 130, spd: 50, spe: 60}, + prevo: null, + }, + dragalge: { + inherit: true, + baseStats: {hp: 79, atk: 75, def: 90, spa: 97, spd: 123, spe: 44}, + }, + sylveon: { + inherit: true, + abilities: {0: "Cute Charm", H: "Pixelgreat"}, + }, + goodra: { + inherit: true, + baseStats: {hp: 90, atk: 105, def: 70, spa: 115, spd: 140, spe: 80}, + abilities: {0: "Sap Sipper", 1: "Gooey", H: "Neuroforce"}, + }, + volcanion: { + inherit: true, + baseStats: {hp: 85, atk: 70, def: 100, spa: 110, spd: 90, spe: 80}, + }, }; \ No newline at end of file diff --git a/data/mods/kitchen/sprites/aniback-shiny/athleetah.gif b/data/mods/kitchen/sprites/aniback-shiny/athleetah.gif new file mode 100644 index 0000000000..8d660fc1d3 Binary files /dev/null and b/data/mods/kitchen/sprites/aniback-shiny/athleetah.gif differ diff --git a/data/mods/kitchen/sprites/anifront-shiny/athleetah.gif b/data/mods/kitchen/sprites/anifront-shiny/athleetah.gif new file mode 100644 index 0000000000..79b89c16de Binary files /dev/null and b/data/mods/kitchen/sprites/anifront-shiny/athleetah.gif differ diff --git a/data/mods/vaporemons/formats-data.ts b/data/mods/vaporemons/formats-data.ts index 5f9f763dde..21fb1977ce 100644 --- a/data/mods/vaporemons/formats-data.ts +++ b/data/mods/vaporemons/formats-data.ts @@ -312,7 +312,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { doublesTier: "DOU", }, sneasler: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, ursaring: { @@ -580,7 +580,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { doublesTier: "DOU", }, heatran: { - tier: "OU", + tier: "UU", doublesTier: "DOU", }, giratina: { @@ -1440,7 +1440,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { doublesTier: "DOU", }, gliscor: { - tier: "OU", + tier: "Uber", doublesTier: "DOU", }, magcargo: { diff --git a/data/mods/vaporemons/items.ts b/data/mods/vaporemons/items.ts index 1492f29e79..0433afb3dc 100644 --- a/data/mods/vaporemons/items.ts +++ b/data/mods/vaporemons/items.ts @@ -38,20 +38,8 @@ export const Items: {[itemid: string]: ModdedItemData} = { } this.add('-message', `${pokemon.name}'s Tera Shard changed its type!`); }, - onModifyMove(move, pokemon) { - const type = pokemon.teraType; - if (move.type === type && pokemon.baseSpecies.types.includes(type)) { - move.stab = 2; - } - }, onBasePowerPriority: 30, onBasePower(basePower, attacker, defender, move) { - const basePowerAfterMultiplier = this.modify(basePower, this.event.modifier); - this.debug('Base Power: ' + basePowerAfterMultiplier); - if (basePowerAfterMultiplier <= 60 && move.type === attacker.teraType && !move.multihit && move.priority < 0.1) { - this.debug('Tera Shard boost'); - return move.basepower = 60; - } if (move.id === 'terablast') { return move.basepower = 100; }