diff --git a/README.md b/README.md index 7095a36cf..ad2237bb4 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,8 @@ Check out our [Trello Board](https://trello.com/b/z10B703R/pokerogue-board) to s - Arata Iiyoshi - Atsuhiro Ishizuna - Pokémon Black/White 2 - - Firel (Additional biome themes) + - Firel (Custom Metropolis and Laboratory biome music) + - Lmz (Custom Jungle biome music) - edifette (Title screen music) ### 🎵 Sound Effects diff --git a/public/audio/bgm/jungle.mp3 b/public/audio/bgm/jungle.mp3 index bd331aa09..5db42ba8d 100644 Binary files a/public/audio/bgm/jungle.mp3 and b/public/audio/bgm/jungle.mp3 differ diff --git a/src/data/ability.ts b/src/data/ability.ts index 5ef07c39f..22867ee13 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -1407,6 +1407,23 @@ export class PostSummonMessageAbAttr extends PostSummonAbAttr { } } +export class PostSummonUnnamedMessageAbAttr extends PostSummonAbAttr { + //Attr doesn't force pokemon name on the message + private message: string; + + constructor(message: string) { + super(true); + + this.message = message; + } + + applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean { + pokemon.scene.queueMessage(this.message); + + return true; + } +} + export class PostSummonAddBattlerTagAbAttr extends PostSummonAbAttr { private tagType: BattlerTagType; private turnCount: integer; @@ -3061,7 +3078,8 @@ export function initAbilities() { .attr(BlockCritAbAttr) .ignorable(), new Ability(Abilities.AIR_LOCK, 3) - .attr(SuppressWeatherEffectAbAttr, true), + .attr(SuppressWeatherEffectAbAttr, true) + .attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."), new Ability(Abilities.TANGLED_FEET, 4) .conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), BattleStatMultiplierAbAttr, BattleStat.EVA, 2) .ignorable(), diff --git a/src/data/move.ts b/src/data/move.ts index 2b61d30b8..6a6bee468 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6221,7 +6221,7 @@ export function initMoves() { .ignoresVirtual(), /* End Unused */ new AttackMove(Moves.ZIPPY_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 80, 100, 10, 100, 2, 7) - .attr(CritOnlyAttr), + .attr(StatChangeAttr, BattleStat.EVA, 1, true), new AttackMove(Moves.SPLISHY_SPLASH, Type.WATER, MoveCategory.SPECIAL, 90, 100, 15, 30, 0, 7) .attr(StatusEffectAttr, StatusEffect.PARALYSIS) .target(MoveTarget.ALL_NEAR_ENEMIES), @@ -6246,7 +6246,7 @@ export function initMoves() { new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7) .attr(ResetStatsAttr), new AttackMove(Moves.SPARKLY_SWIRL, Type.FAIRY, MoveCategory.SPECIAL, 120, 85, 5, -1, 0, 7) - .partial(), + .attr(PartyStatusCureAttr, null, Abilities.NONE), new AttackMove(Moves.VEEVEE_VOLLEY, Type.NORMAL, MoveCategory.PHYSICAL, -1, -1, 20, -1, 0, 7) .attr(FriendshipPowerAttr), new AttackMove(Moves.DOUBLE_IRON_BASH, Type.STEEL, MoveCategory.PHYSICAL, 60, 100, 5, 30, 0, 7) diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index 23495b54e..7511b0e41 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -1385,10 +1385,10 @@ export const pokemonEvolutions: PokemonEvolutions = { new SpeciesEvolution(Species.HELIOLISK, 1, EvolutionItem.SUN_STONE, null, SpeciesWildEvolutionDelay.LONG) ], [Species.CHARJABUG]: [ - new SpeciesEvolution(Species.VIKAVOLT, 1, EvolutionItem.THUNDER_STONE, null) + new SpeciesEvolution(Species.VIKAVOLT, 1, EvolutionItem.THUNDER_STONE, null, SpeciesWildEvolutionDelay.LONG) ], [Species.CRABRAWLER]: [ - new SpeciesEvolution(Species.CRABOMINABLE, 1, EvolutionItem.ICE_STONE, null) + new SpeciesEvolution(Species.CRABOMINABLE, 1, EvolutionItem.ICE_STONE, null, SpeciesWildEvolutionDelay.LONG) ], [Species.ROCKRUFF]: [ new SpeciesFormEvolution(Species.LYCANROC, '', 'midday', 25, null, new SpeciesEvolutionCondition(p => (p.scene.arena.getTimeOfDay() === TimeOfDay.DAWN || p.scene.arena.getTimeOfDay() === TimeOfDay.DAY) && (p.formIndex === 0)), null), diff --git a/src/data/pokemon-level-moves.ts b/src/data/pokemon-level-moves.ts index 2823170b1..53eeb747a 100644 --- a/src/data/pokemon-level-moves.ts +++ b/src/data/pokemon-level-moves.ts @@ -322,6 +322,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ASSURANCE ], [ 1, Moves.PLUCK ], [ 1, Moves.DRILL_RUN ], + [ 1, Moves.PURSUIT ], [ 4, Moves.LEER ], [ 8, Moves.ASSURANCE ], [ 11, Moves.FURY_ATTACK ], @@ -566,6 +567,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.CHARM ], [ 1, Moves.COPYCAT ], [ 1, Moves.DISARMING_VOICE ], + [ 1, Moves.SPOTLIGHT ], [ 4, Moves.STORED_POWER ], [ 8, Moves.ENCORE ], [ 12, Moves.AFTER_YOU ], @@ -600,6 +602,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.COPYCAT ], [ 1, Moves.AFTER_YOU ], [ 1, Moves.STORED_POWER ], + [ 1, Moves.SPOTLIGHT ], [ 1, Moves.DISARMING_VOICE ], ], [Species.VULPIX]: [ @@ -816,6 +819,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SUPERSONIC ], [ 1, Moves.DISABLE ], [ 1, Moves.QUIVER_DANCE ], + [ 1, Moves.SILVER_WIND ], [ 11, Moves.CONFUSION ], [ 13, Moves.POISON_POWDER ], [ 17, Moves.PSYBEAM ], @@ -850,6 +854,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TRI_ATTACK ], [ 1, Moves.ASTONISH ], [ 1, Moves.NIGHT_SLASH ], + [ 1, Moves.ROTOTILLER ], [ 12, Moves.MUD_SLAP ], [ 16, Moves.BULLDOZE ], [ 20, Moves.SUCKER_PUNCH ], @@ -895,6 +900,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.PSYDUCK]: [ [ 1, Moves.SCRATCH ], [ 1, Moves.TAIL_WHIP ], + [ 1, Moves.WATER_SPORT ], [ 3, Moves.WATER_GUN ], [ 6, Moves.CONFUSION ], [ 9, Moves.FURY_SWIPES ], @@ -914,6 +920,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.CONFUSION ], [ 1, Moves.AQUA_JET ], + [ 1, Moves.WATER_SPORT ], + [ 1, Moves.ME_FIRST ], [ 9, Moves.FURY_SWIPES ], [ 12, Moves.WATER_PULSE ], [ 15, Moves.DISABLE ], @@ -993,6 +1001,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.REVERSAL ], [ 1, Moves.CRUNCH ], [ 1, Moves.HELPING_HAND ], + [ 1, Moves.ODOR_SLEUTH ], [ 1, Moves.HOWL ], [ 1, Moves.FLARE_BLITZ ], [ 1, Moves.FIRE_FANG ], @@ -1003,6 +1012,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.POLIWAG]: [ [ 1, Moves.WATER_GUN ], [ 1, Moves.HYPNOSIS ], + [ 1, Moves.WATER_SPORT ], [ 6, Moves.POUND ], [ 12, Moves.MUD_SHOT ], [ 18, Moves.BUBBLE_BEAM ], @@ -1017,6 +1027,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.POUND ], [ 1, Moves.WATER_GUN ], [ 1, Moves.HYPNOSIS ], + [ 1, Moves.WATER_SPORT ], [ 1, Moves.MUD_SHOT ], [ 18, Moves.BUBBLE_BEAM ], [ 24, Moves.RAIN_DANCE ], @@ -1034,6 +1045,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.POUND ], [ 1, Moves.DOUBLE_EDGE ], [ 1, Moves.WATER_GUN ], + [ 1, Moves.WATER_SPORT ], [ 1, Moves.HYDRO_PUMP ], [ 1, Moves.BELLY_DRUM ], [ 1, Moves.RAIN_DANCE ], @@ -1098,6 +1110,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LOW_KICK ], [ 1, Moves.FOCUS_ENERGY ], [ 1, Moves.REVENGE ], + [ 1, Moves.KARATE_CHOP ], [ 12, Moves.LOW_SWEEP ], [ 16, Moves.KNOCK_OFF ], [ 20, Moves.SCARY_FACE ], @@ -1116,6 +1129,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FOCUS_ENERGY ], [ 1, Moves.REVENGE ], [ 1, Moves.WIDE_GUARD ], + [ 1, Moves.KARATE_CHOP ], [ 12, Moves.LOW_SWEEP ], [ 16, Moves.KNOCK_OFF ], [ 20, Moves.SCARY_FACE ], @@ -1195,6 +1209,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ACID ], [ 1, Moves.WATER_GUN ], [ 1, Moves.REFLECT_TYPE ], + [ 1, Moves.WRING_OUT ], [ 12, Moves.SUPERSONIC ], [ 16, Moves.WATER_PULSE ], [ 20, Moves.SCREECH ], @@ -1437,6 +1452,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWL ], [ 1, Moves.ICY_WIND ], [ 1, Moves.CHARM ], + [ 1, Moves.SIGNAL_BEAM ], [ 13, Moves.ENCORE ], [ 17, Moves.ICE_SHARD ], [ 21, Moves.REST ], @@ -1580,6 +1596,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.ROCK_THROW ], [ 1, Moves.HARDEN ], + [ 1, Moves.MUD_SPORT ], [ 4, Moves.SMACK_DOWN ], [ 8, Moves.ROCK_POLISH ], [ 12, Moves.DRAGON_BREATH ], @@ -1617,6 +1634,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.CONFUSION ], [ 1, Moves.HYPNOSIS ], [ 1, Moves.SWITCHEROO ], + [ 1, Moves.NIGHTMARE ], [ 13, Moves.HEADBUTT ], [ 17, Moves.POISON_GAS ], [ 21, Moves.PSYBEAM ], @@ -1631,6 +1649,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.KRABBY]: [ [ 1, Moves.LEER ], [ 1, Moves.WATER_GUN ], + [ 1, Moves.MUD_SPORT ], [ 4, Moves.HARDEN ], [ 8, Moves.METAL_CLAW ], [ 12, Moves.MUD_SHOT ], @@ -1651,6 +1670,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.METAL_CLAW ], [ 1, Moves.HAMMER_ARM ], [ 1, Moves.WIDE_GUARD ], + [ 1, Moves.MUD_SPORT ], [ 12, Moves.MUD_SHOT ], [ 16, Moves.PROTECT ], [ 20, Moves.BUBBLE_BEAM ], @@ -1704,6 +1724,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.EXEGGCUTE]: [ [ 1, Moves.ABSORB ], [ 1, Moves.HYPNOSIS ], + [ 1, Moves.BARRAGE ], [ 5, Moves.REFLECT ], [ 10, Moves.LEECH_SEED ], [ 15, Moves.MEGA_DRAIN ], @@ -1718,6 +1739,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.EXEGGUTOR]: [ [ 0, Moves.STOMP ], + [ 1, Moves.BARRAGE ], [ 1, Moves.SEED_BOMB ], [ 1, Moves.PSYSHOCK ], [ 1, Moves.WOOD_HAMMER ], @@ -1758,6 +1780,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWL ], [ 1, Moves.MUD_SLAP ], [ 1, Moves.FALSE_SWIPE ], + [ 1, Moves.BONE_CLUB ], [ 12, Moves.HEADBUTT ], [ 16, Moves.RETALIATE ], [ 20, Moves.FLING ], @@ -1777,6 +1800,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.HELPING_HAND ], [ 1, Moves.FEINT ], [ 1, Moves.LOW_SWEEP ], + [ 1, Moves.JUMP_KICK ], + [ 1, Moves.ROLLING_KICK ], [ 4, Moves.DOUBLE_KICK ], [ 8, Moves.LOW_KICK ], [ 12, Moves.ENDURE ], @@ -1797,6 +1822,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FAKE_OUT ], [ 1, Moves.HELPING_HAND ], [ 1, Moves.FEINT ], + [ 1, Moves.PURSUIT ], + [ 1, Moves.COMET_PUNCH ], [ 4, Moves.MACH_PUNCH ], [ 8, Moves.VACUUM_WAVE ], [ 12, Moves.DETECT ], @@ -1920,6 +1947,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.TANGELA]: [ [ 1, Moves.BIND ], [ 1, Moves.ABSORB ], + [ 1, Moves.CONSTRICT ], [ 4, Moves.STUN_SPORE ], [ 8, Moves.GROWTH ], [ 12, Moves.MEGA_DRAIN ], @@ -1939,6 +1967,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.KANGASKHAN]: [ [ 1, Moves.POUND ], [ 1, Moves.TAIL_WHIP ], + [ 1, Moves.COMET_PUNCH ], [ 4, Moves.GROWL ], [ 8, Moves.FAKE_OUT ], [ 12, Moves.BITE ], @@ -1986,6 +2015,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.GOLDEEN]: [ [ 1, Moves.TAIL_WHIP ], [ 1, Moves.PECK ], + [ 1, Moves.WATER_SPORT ], [ 5, Moves.SUPERSONIC ], [ 10, Moves.WATER_PULSE ], [ 15, Moves.HORN_ATTACK ], @@ -2000,6 +2030,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SEAKING]: [ [ 1, Moves.TAIL_WHIP ], [ 1, Moves.SUPERSONIC ], + [ 1, Moves.WATER_SPORT ], [ 1, Moves.PECK ], [ 1, Moves.WATER_PULSE ], [ 15, Moves.HORN_ATTACK ], @@ -2042,6 +2073,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.CONFUSE_RAY ], [ 1, Moves.LIGHT_SCREEN ], [ 1, Moves.SWIFT ], + [ 1, Moves.SPOTLIGHT ], [ 1, Moves.RAPID_SPIN ], [ 1, Moves.COSMIC_POWER ], [ 1, Moves.BRINE ], @@ -2056,6 +2088,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GUARD_SWAP ], [ 1, Moves.WIDE_GUARD ], [ 1, Moves.QUICK_GUARD ], + [ 1, Moves.BARRIER ], [ 12, Moves.CONFUSION ], [ 16, Moves.ROLE_PLAY ], [ 20, Moves.PROTECT ], @@ -2334,6 +2367,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.OMANYTE]: [ [ 1, Moves.BIND ], [ 1, Moves.WITHDRAW ], + [ 1, Moves.CONSTRICT ], [ 5, Moves.ROLLOUT ], [ 10, Moves.SAND_ATTACK ], [ 15, Moves.WATER_GUN ], @@ -2351,6 +2385,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 0, Moves.CRUNCH ], [ 1, Moves.BIND ], [ 1, Moves.SAND_ATTACK ], + [ 1, Moves.CONSTRICT ], + [ 1, Moves.SPIKE_CANNON ], [ 1, Moves.WITHDRAW ], [ 1, Moves.ROLLOUT ], [ 15, Moves.WATER_GUN ], @@ -2841,6 +2877,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SPINARAK]: [ [ 1, Moves.POISON_STING ], [ 1, Moves.STRING_SHOT ], + [ 1, Moves.CONSTRICT ], [ 5, Moves.ABSORB ], [ 8, Moves.INFESTATION ], [ 12, Moves.SCARY_FACE ], @@ -2861,6 +2898,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.POISON_STING ], [ 1, Moves.ABSORB ], [ 1, Moves.STRING_SHOT ], + [ 1, Moves.CONSTRICT ], [ 1, Moves.FOCUS_ENERGY ], [ 1, Moves.BUG_BITE ], [ 1, Moves.FELL_STINGER ], @@ -2918,6 +2956,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 0, Moves.SWALLOW ], [ 1, Moves.SUPERSONIC ], [ 1, Moves.WATER_GUN ], + [ 1, Moves.SPOTLIGHT ], [ 1, Moves.THUNDER_WAVE ], [ 1, Moves.ELECTRO_BALL ], [ 1, Moves.EERIE_IMPULSE ], @@ -3069,6 +3108,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ZAP_CANNON ], [ 1, Moves.DRAGON_PULSE ], [ 1, Moves.MAGNETIC_FLUX ], + [ 1, Moves.ION_DELUGE ], [ 11, Moves.COTTON_SPORE ], [ 16, Moves.CHARGE ], [ 20, Moves.TAKE_DOWN ], @@ -3371,6 +3411,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.HELPING_HAND ], [ 1, Moves.COVET ], [ 1, Moves.COPYCAT ], + [ 1, Moves.PURSUIT ], [ 5, Moves.SAND_ATTACK ], [ 10, Moves.SNARL ], [ 15, Moves.QUICK_ATTACK ], @@ -3425,6 +3466,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MISDREAVUS]: [ [ 1, Moves.GROWL ], [ 1, Moves.CONFUSION ], + [ 1, Moves.PSYWAVE ], [ 10, Moves.ASTONISH ], [ 14, Moves.CONFUSE_RAY ], [ 19, Moves.MEAN_LOOK ], @@ -3492,6 +3534,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TOXIC_SPIKES ], [ 1, Moves.MAGNET_RISE ], [ 1, Moves.BUG_BITE ], + [ 1, Moves.MIRROR_SHOT ], [ 12, Moves.TAKE_DOWN ], [ 17, Moves.RAPID_SPIN ], [ 20, Moves.ROLLOUT ], @@ -3541,6 +3584,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.ROCK_THROW ], [ 1, Moves.HARDEN ], + [ 1, Moves.MUD_SPORT ], [ 1, Moves.CRUNCH ], [ 1, Moves.ROCK_POLISH ], [ 1, Moves.THUNDER_FANG ], @@ -3638,6 +3682,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SHUCKLE]: [ [ 1, Moves.WRAP ], [ 1, Moves.WITHDRAW ], + [ 1, Moves.BIDE ], + [ 1, Moves.CONSTRICT ], [ 5, Moves.ROLLOUT ], [ 10, Moves.STRUGGLE_BUG ], [ 15, Moves.ROCK_THROW ], @@ -3758,6 +3804,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SWINUB]: [ [ 1, Moves.TACKLE ], [ 1, Moves.MUD_SLAP ], + [ 1, Moves.ODOR_SLEUTH ], [ 5, Moves.POWDER_SNOW ], [ 10, Moves.FLAIL ], [ 15, Moves.ICE_SHARD ], @@ -3775,6 +3822,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FLAIL ], [ 1, Moves.POWDER_SNOW ], [ 1, Moves.MUD_SLAP ], + [ 1, Moves.ODOR_SLEUTH ], [ 1, Moves.ANCIENT_POWER ], [ 15, Moves.ICE_SHARD ], [ 20, Moves.MIST ], @@ -3819,6 +3867,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.OCTILLERY]: [ [ 0, Moves.OCTAZOOKA ], [ 1, Moves.WRAP ], + [ 1, Moves.CONSTRICT ], [ 1, Moves.WATER_GUN ], [ 1, Moves.FOCUS_ENERGY ], [ 1, Moves.HELPING_HAND ], @@ -3835,9 +3884,23 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 48, Moves.SOAK ], [ 54, Moves.HYPER_BEAM ], ], - [Species.DELIBIRD]: [ + [Species.DELIBIRD]: [ //Given a custom level up learnset [ 1, Moves.PRESENT ], + [ 1, Moves.METRONOME ], + [ 5, Moves.FAKE_OUT ], + [ 5, Moves.POWDER_SNOW ], + [ 6, Moves.MIST ], + [ 10, Moves.ICE_SHARD ], + [ 15, Moves.AERIAL_ACE ], + [ 20, Moves.ICY_WIND ], [ 25, Moves.DRILL_PECK ], + [ 30, Moves.ICE_PUNCH ], + [ 35, Moves.HAZE ], + [ 40, Moves.AIR_SLASH ], + [ 45, Moves.TAILWIND ], + [ 50, Moves.SNOWSCAPE ], + [ 55, Moves.BLIZZARD ], + [ 60, Moves.BRAVE_BIRD ], ], [Species.MANTINE]: [ [ 1, Moves.WING_ATTACK ], @@ -3845,6 +3908,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SUPERSONIC ], [ 1, Moves.WATER_GUN ], [ 1, Moves.PSYBEAM ], + [ 1, Moves.SIGNAL_BEAM ], [ 1, Moves.BULLET_SEED ], [ 1, Moves.ROOST ], [ 12, Moves.WATER_PULSE ], @@ -3934,6 +3998,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.GROWL ], [ 1, Moves.DEFENSE_CURL ], + [ 1, Moves.ODOR_SLEUTH ], [ 6, Moves.FLAIL ], [ 10, Moves.ROLLOUT ], [ 15, Moves.BULLDOZE ], @@ -3981,6 +4046,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.STANTLER]: [ [ 1, Moves.TACKLE ], + [ 1, Moves.ME_FIRST ], [ 3, Moves.LEER ], [ 7, Moves.ASTONISH ], [ 10, Moves.HYPNOSIS ], @@ -4015,6 +4081,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FAKE_OUT ], [ 1, Moves.HELPING_HAND ], [ 1, Moves.FEINT ], + [ 1, Moves.PURSUIT ], + [ 1, Moves.ROLLING_KICK ], [ 4, Moves.QUICK_ATTACK ], [ 8, Moves.GYRO_BALL ], [ 12, Moves.DETECT ], @@ -4334,6 +4402,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.X_SCISSOR ], [ 1, Moves.ENERGY_BALL ], [ 1, Moves.SHED_TAIL ], + [ 1, Moves.DUAL_CHOP ], [ 5, Moves.MEGA_DRAIN ], [ 12, Moves.DETECT ], [ 15, Moves.QUICK_GUARD ], @@ -4524,6 +4593,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWL ], [ 1, Moves.SWITCHEROO ], [ 1, Moves.BABY_DOLL_EYES ], + [ 1, Moves.ROTOTILLER ], [ 9, Moves.COVET ], [ 12, Moves.HEADBUTT ], [ 15, Moves.HONE_CLAWS ], @@ -4644,6 +4714,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SEEDOT]: [ [ 1, Moves.TACKLE ], [ 1, Moves.HARDEN ], + [ 1, Moves.BIDE ], [ 3, Moves.ABSORB ], [ 6, Moves.ASTONISH ], [ 9, Moves.GROWTH ], @@ -4756,6 +4827,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.TAILWIND ], [ 1, Moves.SUPERSONIC ], + [ 1, Moves.WATER_SPORT ], [ 15, Moves.WING_ATTACK ], [ 20, Moves.WATER_PULSE ], [ 28, Moves.STOCKPILE ], @@ -4842,6 +4914,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.QUICK_ATTACK ], [ 1, Moves.SWEET_SCENT ], [ 1, Moves.SOAK ], + [ 1, Moves.OMINOUS_WIND ], [ 17, Moves.GUST ], [ 22, Moves.SCARY_FACE ], [ 22, Moves.AIR_CUTTER ], @@ -5232,6 +5305,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MEDITITE]: [ [ 1, Moves.CONFUSION ], [ 1, Moves.WORK_UP ], + [ 1, Moves.BIDE ], [ 9, Moves.DETECT ], [ 12, Moves.ENDURE ], [ 15, Moves.FEINT ], @@ -5254,6 +5328,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.CONFUSION ], [ 1, Moves.DETECT ], [ 1, Moves.WORK_UP ], + [ 1, Moves.BIDE ], [ 12, Moves.ENDURE ], [ 15, Moves.FEINT ], [ 17, Moves.FORCE_PALM ], @@ -5345,6 +5420,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 49, Moves.ENTRAINMENT ], ], [Species.VOLBEAT]: [ + [ 1, Moves.FLASH ], [ 1, Moves.TACKLE ], [ 5, Moves.DOUBLE_TEAM ], [ 8, Moves.CONFUSE_RAY ], @@ -5420,6 +5496,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.POUND ], [ 1, Moves.YAWN ], [ 1, Moves.POISON_GAS ], + [ 1, Moves.WRING_OUT ], [ 1, Moves.SLUDGE ], [ 12, Moves.AMNESIA ], [ 17, Moves.ACID_SPRAY ], @@ -5606,6 +5683,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.TRAPINCH]: [ [ 1, Moves.SAND_ATTACK ], [ 1, Moves.ASTONISH ], + [ 1, Moves.BIDE ], + [ 1, Moves.FEINT_ATTACK ], [ 8, Moves.BITE ], [ 12, Moves.MUD_SLAP ], [ 16, Moves.SAND_TOMB ], @@ -5629,6 +5708,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SUPERPOWER ], [ 1, Moves.ASTONISH ], [ 1, Moves.BULLDOZE ], + [ 1, Moves.BIDE ], + [ 1, Moves.FEINT_ATTACK ], [ 12, Moves.MUD_SLAP ], [ 16, Moves.SAND_TOMB ], [ 20, Moves.DRAGON_TAIL ], @@ -5655,6 +5736,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ASTONISH ], [ 1, Moves.DRAGON_DANCE ], [ 1, Moves.FEINT ], + [ 1, Moves.BIDE ], + [ 1, Moves.FEINT_ATTACK ], [ 12, Moves.MUD_SLAP ], [ 16, Moves.SAND_TOMB ], [ 20, Moves.DRAGON_TAIL ], @@ -5932,6 +6015,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.LILEEP]: [ [ 1, Moves.WRAP ], [ 1, Moves.ASTONISH ], + [ 1, Moves.CONSTRICT ], [ 4, Moves.ACID ], [ 8, Moves.CONFUSE_RAY ], [ 12, Moves.INGRAIN ], @@ -5950,6 +6034,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEECH_SEED ], [ 1, Moves.WRAP ], [ 1, Moves.ASTONISH ], + [ 1, Moves.CONSTRICT ], [ 1, Moves.ACID ], [ 1, Moves.CONFUSE_RAY ], [ 12, Moves.INGRAIN ], @@ -6006,6 +6091,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.WRAP ], [ 1, Moves.WATER_GUN ], + [ 1, Moves.WATER_SPORT ], [ 4, Moves.DISARMING_VOICE ], [ 8, Moves.TWISTER ], [ 12, Moves.AQUA_RING ], @@ -6145,6 +6231,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWL ], [ 1, Moves.ASTONISH ], [ 1, Moves.CONFUSION ], + [ 1, Moves.SYNCHRONOISE ], [ 13, Moves.YAWN ], [ 16, Moves.STORED_POWER ], [ 19, Moves.TAKE_DOWN ], @@ -6204,7 +6291,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.HEADBUTT ], [ 1, Moves.ASTONISH ], [ 1, Moves.LEER ], - [ 1, Moves.DOUBLE_TEAM ], + [ 1, Moves.DOUBLE_TEAM ], + [ 1, Moves.ICE_BALL ], [ 15, Moves.ICE_SHARD ], [ 20, Moves.PROTECT ], [ 25, Moves.ICY_WIND ], @@ -6272,6 +6360,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 72, Moves.SHEER_COLD ], ], [Species.CLAMPERL]: [ + [ 1, Moves.CLAMP ], [ 1, Moves.WATER_GUN ], [ 1, Moves.WHIRLPOOL ], [ 1, Moves.IRON_DEFENSE ], @@ -6495,6 +6584,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.LATIAS]: [ [ 1, Moves.STORED_POWER ], [ 1, Moves.CHARM ], + [ 1, Moves.PSYWAVE ], [ 5, Moves.HELPING_HAND ], [ 10, Moves.RECOVER ], [ 15, Moves.CONFUSION ], @@ -6513,6 +6603,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.LATIOS]: [ [ 1, Moves.STORED_POWER ], [ 1, Moves.DRAGON_DANCE ], + [ 1, Moves.HEAL_BLOCK ], + [ 1, Moves.PSYWAVE ], [ 5, Moves.HELPING_HAND ], [ 10, Moves.RECOVER ], [ 15, Moves.CONFUSION ], @@ -6595,6 +6687,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 98, Moves.DOOM_DESIRE ], ], [Species.DEOXYS]: [ + [ 1, Moves.CONFUSION ], //Custom [ 1, Moves.LEER ], [ 1, Moves.WRAP ], [ 7, Moves.NIGHT_SHADE ], @@ -6831,6 +6924,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.KRICKETOT]: [ [ 1, Moves.TACKLE ], [ 1, Moves.GROWL ], + [ 1, Moves.BIDE ], [ 6, Moves.STRUGGLE_BUG ], [ 16, Moves.BUG_BITE ], ], @@ -6838,6 +6932,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 0, Moves.FURY_CUTTER ], [ 1, Moves.TACKLE ], [ 1, Moves.GROWL ], + [ 1, Moves.BIDE ], [ 14, Moves.ABSORB ], [ 18, Moves.SING ], [ 22, Moves.FOCUS_ENERGY ], @@ -7055,11 +7150,13 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 36, Moves.TOXIC ], [ 40, Moves.ATTACK_ORDER ], [ 40, Moves.DEFEND_ORDER ], + [ 40, Moves.HEAL_ORDER ], [ 44, Moves.DESTINY_BOND ], ], [Species.PACHIRISU]: [ [ 1, Moves.GROWL ], [ 1, Moves.THUNDER_SHOCK ], + [ 1, Moves.BIDE ], [ 5, Moves.QUICK_ATTACK ], [ 9, Moves.CHARM ], [ 13, Moves.SPARK ], @@ -7156,6 +7253,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.RECOVER ], [ 1, Moves.HARDEN ], [ 1, Moves.MUD_SLAP ], + [ 1, Moves.MUD_SPORT ], [ 15, Moves.WATER_PULSE ], [ 20, Moves.ANCIENT_POWER ], [ 25, Moves.BODY_SLAM ], @@ -7183,6 +7281,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.DRIFLOON]: [ [ 1, Moves.MINIMIZE ], [ 1, Moves.ASTONISH ], + [ 1, Moves.CONSTRICT ], [ 4, Moves.GUST ], [ 8, Moves.FOCUS_ENERGY ], [ 12, Moves.PAYBACK ], @@ -7203,6 +7302,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.MINIMIZE ], [ 1, Moves.FOCUS_ENERGY ], [ 1, Moves.ASTONISH ], + [ 1, Moves.CONSTRICT ], [ 1, Moves.STRENGTH_SAP ], [ 12, Moves.PAYBACK ], [ 16, Moves.HEX ], @@ -7217,6 +7317,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 54, Moves.EXPLOSION ], ], [Species.BUNEARY]: [ + [ 1, Moves.FRUSTRATION ], [ 1, Moves.POUND ], [ 1, Moves.SPLASH ], [ 4, Moves.DEFENSE_CURL ], @@ -7234,12 +7335,14 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 52, Moves.HEALING_WISH ], ], [Species.LOPUNNY]: [ + [ 0, Moves.RETURN ], [ 1, Moves.POUND ], [ 1, Moves.DEFENSE_CURL ], [ 1, Moves.SPLASH ], [ 1, Moves.MIRROR_COAT ], [ 1, Moves.MAGIC_COAT ], [ 1, Moves.BABY_DOLL_EYES ], + [ 1, Moves.ROTOTILLER ], [ 12, Moves.AFTER_YOU ], [ 16, Moves.QUICK_ATTACK ], [ 20, Moves.DOUBLE_KICK ], @@ -7256,6 +7359,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MISMAGIUS]: [ [ 1, Moves.GROWL ], [ 1, Moves.SPITE ], + [ 1, Moves.PSYWAVE ], + [ 1, Moves.LUCKY_CHANT ], [ 1, Moves.ASTONISH ], [ 1, Moves.MAGICAL_LEAF ], [ 1, Moves.POWER_GEM ], @@ -7269,6 +7374,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SUCKER_PUNCH ], [ 1, Moves.NIGHT_SLASH ], [ 1, Moves.QUASH ], + [ 1, Moves.PURSUIT ], [ 25, Moves.SWAGGER ], [ 35, Moves.NASTY_PLOT ], [ 45, Moves.FOUL_PLAY ], @@ -7409,6 +7515,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MIME_JR]: [ [ 1, Moves.POUND ], [ 1, Moves.COPYCAT ], + [ 1, Moves.BARRIER ], [ 4, Moves.BATON_PASS ], [ 8, Moves.ENCORE ], [ 12, Moves.CONFUSION ], @@ -7455,6 +7562,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SPIRITOMB]: [ [ 1, Moves.NIGHT_SHADE ], [ 1, Moves.CONFUSE_RAY ], + [ 1, Moves.PURSUIT ], [ 5, Moves.SHADOW_SNEAK ], [ 10, Moves.SPITE ], [ 15, Moves.PAYBACK ], @@ -7487,6 +7595,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.DRAGON_BREATH ], [ 1, Moves.SAND_TOMB ], + [ 1, Moves.DUAL_CHOP ], [ 18, Moves.BULLDOZE ], [ 27, Moves.BITE ], [ 34, Moves.SLASH ], @@ -7502,6 +7611,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.DRAGON_BREATH ], [ 1, Moves.SAND_TOMB ], + [ 1, Moves.DUAL_CHOP ], [ 18, Moves.BULLDOZE ], [ 27, Moves.BITE ], [ 34, Moves.SLASH ], @@ -7514,6 +7624,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MUNCHLAX]: [ [ 1, Moves.TACKLE ], [ 1, Moves.LICK ], + [ 1, Moves.ODOR_SLEUTH ], [ 4, Moves.DEFENSE_CURL ], [ 8, Moves.RECYCLE ], [ 12, Moves.COVET ], @@ -7789,6 +7900,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TAUNT ], [ 1, Moves.ASSURANCE ], [ 1, Moves.ICE_SHARD ], + [ 1, Moves.EMBARGO ], [ 18, Moves.METAL_CLAW ], [ 24, Moves.ICY_WIND ], [ 30, Moves.FURY_SWIPES ], @@ -7804,6 +7916,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SUPERSONIC ], [ 1, Moves.THUNDER_SHOCK ], [ 1, Moves.THUNDER_WAVE ], + [ 1, Moves.BARRIER ], [ 1, Moves.TRI_ATTACK ], [ 1, Moves.MIRROR_COAT ], [ 1, Moves.MAGNETIC_FLUX ], @@ -7825,6 +7938,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.DEFENSE_CURL ], [ 1, Moves.LICK ], [ 1, Moves.ROLLOUT ], + [ 1, Moves.WRING_OUT ], [ 6, Moves.REST ], [ 18, Moves.WRAP ], [ 24, Moves.DISABLE ], @@ -7859,6 +7973,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWTH ], [ 1, Moves.STUN_SPORE ], [ 1, Moves.BLOCK ], + [ 1, Moves.CONSTRICT ], [ 12, Moves.MEGA_DRAIN ], [ 16, Moves.VINE_WHIP ], [ 20, Moves.POISON_POWDER ], @@ -7878,6 +7993,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.THUNDER_SHOCK ], [ 1, Moves.QUICK_ATTACK ], [ 1, Moves.CHARGE ], + [ 1, Moves.ION_DELUGE ], [ 12, Moves.SWIFT ], [ 16, Moves.SHOCK_WAVE ], [ 20, Moves.THUNDER_WAVE ], @@ -8024,6 +8140,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FLAIL ], [ 1, Moves.POWDER_SNOW ], [ 1, Moves.MUD_SLAP ], + [ 1, Moves.ODOR_SLEUTH ], [ 1, Moves.ANCIENT_POWER ], [ 1, Moves.ICE_FANG ], [ 15, Moves.ICE_SHARD ], @@ -8147,6 +8264,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.CRUNCH ], [ 1, Moves.ASTONISH ], [ 1, Moves.ICE_FANG ], + [ 1, Moves.OMINOUS_WIND ], [ 15, Moves.ICE_SHARD ], [ 20, Moves.DRAINING_KISS ], [ 25, Moves.ICY_WIND ], @@ -8269,6 +8387,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.REGIGIGAS]: [ [ 1, Moves.POUND ], [ 1, Moves.CONFUSE_RAY ], + [ 1, Moves.DIZZY_PUNCH ], + [ 1, Moves.FORESIGHT ], [ 6, Moves.PAYBACK ], [ 12, Moves.REVENGE ], [ 18, Moves.STOMP ], @@ -8346,6 +8466,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.DARKRAI]: [ [ 1, Moves.DISABLE ], + [ 1, Moves.OMINOUS_WIND ], [ 11, Moves.QUICK_ATTACK ], [ 20, Moves.HYPNOSIS ], [ 29, Moves.SUCKER_PUNCH ], @@ -8358,6 +8479,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 93, Moves.DARK_PULSE ], ], [Species.SHAYMIN]: [ + [ 1, Moves.LEAFAGE ], //Custom [ 1, Moves.GROWTH ], [ 10, Moves.MAGICAL_LEAF ], [ 19, Moves.LEECH_SEED ], @@ -8374,6 +8496,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.ARCEUS]: [ [ 1, Moves.SEISMIC_TOSS ], [ 1, Moves.COSMIC_POWER ], + [ 1, Moves.PUNISHMENT ], [ 10, Moves.GRAVITY ], [ 20, Moves.EARTH_POWER ], [ 30, Moves.HYPER_VOICE ], @@ -8667,6 +8790,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 40, Moves.PLAY_ROUGH ], ], [Species.LIEPARD]: [ + [ 1, Moves.ASSIST ], [ 1, Moves.SCRATCH ], [ 1, Moves.SAND_ATTACK ], [ 1, Moves.GROWL ], @@ -8755,6 +8879,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MUNNA]: [ [ 1, Moves.DEFENSE_CURL ], [ 1, Moves.STORED_POWER ], + [ 1, Moves.PSYWAVE ], [ 4, Moves.HYPNOSIS ], [ 8, Moves.PSYBEAM ], [ 12, Moves.IMPRISON ], @@ -8774,6 +8899,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.PSYCHIC ], [ 1, Moves.HYPNOSIS ], [ 1, Moves.DEFENSE_CURL ], + [ 1, Moves.LUCKY_CHANT ], [ 1, Moves.DREAM_EATER ], [ 1, Moves.MOONLIGHT ], [ 1, Moves.FUTURE_SIGHT ], @@ -8851,6 +8977,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.THUNDER_WAVE ], [ 1, Moves.QUICK_ATTACK ], [ 1, Moves.CHARGE ], + [ 1, Moves.ION_DELUGE ], [ 11, Moves.SHOCK_WAVE ], [ 18, Moves.FLAME_CHARGE ], [ 25, Moves.SPARK ], @@ -8940,6 +9067,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.DRILBUR]: [ [ 1, Moves.MUD_SLAP ], [ 1, Moves.RAPID_SPIN ], + [ 1, Moves.MUD_SPORT ], [ 4, Moves.SCRATCH ], [ 8, Moves.HONE_CLAWS ], [ 12, Moves.FURY_SWIPES ], @@ -8958,6 +9086,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SCRATCH ], [ 1, Moves.MUD_SLAP ], [ 1, Moves.RAPID_SPIN ], + [ 1, Moves.MUD_SPORT ], + [ 1, Moves.ROTOTILLER ], [ 1, Moves.HONE_CLAWS ], [ 12, Moves.FURY_SWIPES ], [ 16, Moves.METAL_CLAW ], @@ -9010,6 +9140,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.LOW_KICK ], [ 1, Moves.ROCK_THROW ], + [ 1, Moves.BIDE ], [ 12, Moves.FOCUS_ENERGY ], [ 16, Moves.BULK_UP ], [ 20, Moves.ROCK_SLIDE ], @@ -9026,6 +9157,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.LOW_KICK ], [ 1, Moves.ROCK_THROW ], + [ 1, Moves.BIDE ], [ 12, Moves.FOCUS_ENERGY ], [ 16, Moves.BULK_UP ], [ 20, Moves.ROCK_SLIDE ], @@ -9090,6 +9222,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.THROH]: [ [ 1, Moves.BIND ], [ 1, Moves.LEER ], + [ 1, Moves.BIDE ], + [ 1, Moves.MAT_BLOCK ], [ 5, Moves.FOCUS_ENERGY ], [ 10, Moves.CIRCLE_THROW ], [ 15, Moves.WIDE_GUARD ], @@ -9105,6 +9239,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SAWK]: [ [ 1, Moves.LEER ], [ 1, Moves.ROCK_SMASH ], + [ 1, Moves.BIDE ], [ 5, Moves.FOCUS_ENERGY ], [ 10, Moves.DOUBLE_KICK ], [ 15, Moves.QUICK_GUARD ], @@ -9134,6 +9269,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.RAZOR_LEAF ], [ 1, Moves.STRING_SHOT ], [ 1, Moves.BUG_BITE ], + [ 1, Moves.GRASS_WHISTLE ], [ 22, Moves.STRUGGLE_BUG ], [ 29, Moves.ENDURE ], [ 31, Moves.STICKY_WEB ], @@ -9466,6 +9602,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.LOW_KICK ], [ 1, Moves.PAYBACK ], + [ 1, Moves.FEINT_ATTACK ], [ 12, Moves.SAND_ATTACK ], [ 16, Moves.FACADE ], [ 20, Moves.PROTECT ], @@ -9538,6 +9675,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.TIRTOUGA]: [ [ 1, Moves.WATER_GUN ], [ 1, Moves.WITHDRAW ], + [ 1, Moves.BIDE ], [ 3, Moves.PROTECT ], [ 6, Moves.AQUA_JET ], [ 9, Moves.SMACK_DOWN ], @@ -9559,6 +9697,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WITHDRAW ], [ 1, Moves.PROTECT ], [ 1, Moves.AQUA_JET ], + [ 1, Moves.BIDE ], [ 9, Moves.SMACK_DOWN ], [ 12, Moves.ANCIENT_POWER ], [ 15, Moves.BITE ], @@ -9674,6 +9813,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TORMENT ], [ 1, Moves.U_TURN ], [ 1, Moves.HONE_CLAWS ], + [ 1, Moves.PURSUIT ], [ 12, Moves.FURY_SWIPES ], [ 20, Moves.TAUNT ], [ 24, Moves.KNOCK_OFF ], @@ -9771,6 +9911,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.SOLOSIS]: [ [ 1, Moves.CONFUSION ], [ 1, Moves.PROTECT ], + [ 1, Moves.PSYWAVE ], [ 4, Moves.RECOVER ], [ 8, Moves.ENDEAVOR ], [ 12, Moves.PSYBEAM ], @@ -9789,8 +9930,10 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.DUOSION]: [ [ 1, Moves.CONFUSION ], [ 1, Moves.RECOVER ], + [ 1, Moves.PSYWAVE ], [ 1, Moves.PROTECT ], [ 1, Moves.ENDEAVOR ], + [ 1, Moves.SNATCH ], [ 12, Moves.PSYBEAM ], [ 16, Moves.CHARM ], [ 20, Moves.PSYSHOCK ], @@ -9810,6 +9953,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.RECOVER ], [ 1, Moves.PROTECT ], [ 1, Moves.ENDEAVOR ], + [ 1, Moves.DIZZY_PUNCH ], + [ 1, Moves.PSYWAVE ], + [ 1, Moves.SNATCH ], [ 12, Moves.PSYBEAM ], [ 16, Moves.CHARM ], [ 20, Moves.PSYSHOCK ], @@ -9908,6 +10054,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.DEERLING]: [ [ 1, Moves.TACKLE ], + [ 1, Moves.CAMOUFLAGE ], [ 4, Moves.GROWL ], [ 7, Moves.SAND_ATTACK ], [ 10, Moves.DOUBLE_KICK ], @@ -9925,6 +10072,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SAND_ATTACK ], [ 1, Moves.TACKLE ], [ 1, Moves.GROWL ], + [ 1, Moves.CAMOUFLAGE ], [ 1, Moves.MEGAHORN ], [ 10, Moves.DOUBLE_KICK ], [ 13, Moves.LEECH_SEED ], @@ -9978,6 +10126,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FURY_CUTTER ], [ 1, Moves.QUICK_GUARD ], [ 1, Moves.FELL_STINGER ], + [ 1, Moves.TWINEEDLE ], [ 12, Moves.FALSE_SWIPE ], [ 16, Moves.ACID_SPRAY ], [ 20, Moves.HEADBUTT ], @@ -10011,6 +10160,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWTH ], [ 1, Moves.STUN_SPORE ], [ 1, Moves.ASTONISH ], + [ 1, Moves.BIDE ], [ 12, Moves.MEGA_DRAIN ], [ 16, Moves.SYNTHESIS ], [ 20, Moves.CLEAR_SMOG ], @@ -10025,6 +10175,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.FRILLISH]: [ [ 1, Moves.WATER_GUN ], [ 1, Moves.ABSORB ], + [ 1, Moves.WATER_SPORT ], [ 4, Moves.POISON_STING ], [ 8, Moves.NIGHT_SHADE ], [ 12, Moves.WATER_PULSE ], @@ -10041,6 +10192,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.JELLICENT]: [ [ 1, Moves.POISON_STING ], [ 1, Moves.WATER_GUN ], + [ 1, Moves.WATER_SPORT ], + [ 1, Moves.WRING_OUT ], [ 1, Moves.ABSORB ], [ 1, Moves.NIGHT_SHADE ], [ 1, Moves.ACID_ARMOR ], @@ -10058,6 +10211,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.ALOMOMOLA]: [ [ 1, Moves.POUND ], [ 1, Moves.PLAY_NICE ], + [ 1, Moves.WATER_SPORT ], [ 5, Moves.AQUA_RING ], [ 9, Moves.AQUA_JET ], [ 13, Moves.HELPING_HAND ], @@ -10075,6 +10229,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.JOLTIK]: [ [ 1, Moves.ABSORB ], [ 1, Moves.FURY_CUTTER ], + [ 1, Moves.SPIDER_WEB ], [ 4, Moves.ELECTROWEB ], [ 8, Moves.BUG_BITE ], [ 12, Moves.STRING_SHOT ], @@ -10094,6 +10249,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FURY_CUTTER ], [ 1, Moves.BUG_BITE ], [ 1, Moves.ELECTROWEB ], + [ 1, Moves.SPIDER_WEB ], [ 12, Moves.STRING_SHOT ], [ 16, Moves.THUNDER_WAVE ], [ 20, Moves.ELECTRO_BALL ], @@ -10125,6 +10281,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.PIN_MISSILE ], [ 1, Moves.HARDEN ], [ 1, Moves.METAL_CLAW ], + [ 1, Moves.ROCK_CLIMB ], [ 15, Moves.INGRAIN ], [ 20, Moves.FLASH_CANNON ], [ 25, Moves.IRON_HEAD ], @@ -10197,6 +10354,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.THUNDER_WAVE ], [ 1, Moves.SPARK ], [ 1, Moves.CHARGE_BEAM ], + [ 1, Moves.ION_DELUGE ], [ 9, Moves.BIND ], [ 19, Moves.ACID ], [ 29, Moves.DISCHARGE ], @@ -10239,6 +10397,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.BEHEEYEM]: [ [ 1, Moves.GROWL ], [ 1, Moves.CONFUSION ], + [ 1, Moves.SYNCHRONOISE ], [ 1, Moves.TELEPORT ], [ 1, Moves.IMPRISON ], [ 1, Moves.PSYCHIC_TERRAIN ], @@ -10319,7 +10478,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 21, Moves.SCARY_FACE ], [ 24, Moves.CRUNCH ], [ 27, Moves.DRAGON_DANCE ], - [ 30, Moves.BREAKING_SWIPE ], + [ 30, Moves.DUAL_CHOP ], [ 33, Moves.FOCUS_ENERGY ], [ 36, Moves.DRAGON_PULSE ], [ 39, Moves.SWORDS_DANCE ], @@ -10332,6 +10491,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.BITE ], [ 1, Moves.FALSE_SWIPE ], + [ 1, Moves.DUAL_CHOP ], [ 9, Moves.ASSURANCE ], [ 12, Moves.TAUNT ], [ 15, Moves.SLASH ], @@ -10352,6 +10512,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.BITE ], [ 1, Moves.FALSE_SWIPE ], + [ 1, Moves.DUAL_CHOP ], [ 9, Moves.ASSURANCE ], [ 12, Moves.TAUNT ], [ 15, Moves.SLASH ], @@ -10393,6 +10554,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ENDURE ], [ 1, Moves.CHARM ], [ 1, Moves.AQUA_JET ], + [ 1, Moves.BIDE ], [ 9, Moves.ICY_WIND ], [ 12, Moves.PLAY_NICE ], [ 15, Moves.BRINE ], @@ -10473,6 +10635,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.THUNDER_SHOCK ], [ 1, Moves.MUD_SLAP ], + [ 1, Moves.MUD_SPORT ], [ 5, Moves.ENDURE ], [ 10, Moves.MUD_SHOT ], [ 15, Moves.REVENGE ], @@ -10609,6 +10772,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.BOUFFALANT]: [ [ 1, Moves.TACKLE ], [ 1, Moves.LEER ], + [ 1, Moves.PURSUIT ], [ 5, Moves.FOCUS_ENERGY ], [ 10, Moves.FURY_ATTACK ], [ 15, Moves.REVENGE ], @@ -11049,6 +11213,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 48, Moves.WOOD_HAMMER ], ], [Species.QUILLADIN]: [ + [ 0, Moves.NEEDLE_ARM ], [ 1, Moves.TACKLE ], [ 1, Moves.GROWL ], [ 1, Moves.VINE_WHIP ], @@ -11072,6 +11237,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ROLLOUT ], [ 1, Moves.HAMMER_ARM ], [ 1, Moves.FEINT ], + [ 1, Moves.NEEDLE_ARM ], [ 11, Moves.BITE ], [ 15, Moves.LEECH_SEED ], [ 19, Moves.PIN_MISSILE ], @@ -11178,6 +11344,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.QUICK_ATTACK ], [ 1, Moves.HAZE ], + [ 1, Moves.MAT_BLOCK ], [ 1, Moves.ROLE_PLAY ], [ 1, Moves.NIGHT_SLASH ], [ 10, Moves.LICK ], @@ -11213,6 +11380,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.MUD_SLAP ], [ 1, Moves.LASER_FOCUS ], + [ 1, Moves.ROTOTILLER ], [ 9, Moves.QUICK_ATTACK ], [ 12, Moves.MUD_SHOT ], [ 15, Moves.FLAIL ], @@ -11290,6 +11458,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.STUN_SPORE ], [ 1, Moves.SLEEP_POWDER ], [ 1, Moves.STRUGGLE_BUG ], + [ 1, Moves.POWDER ], [ 12, Moves.LIGHT_SCREEN ], [ 17, Moves.PSYBEAM ], [ 21, Moves.SUPERSONIC ], @@ -11372,6 +11541,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SAFEGUARD ], [ 1, Moves.SYNTHESIS ], [ 1, Moves.WISH ], + [ 1, Moves.LUCKY_CHANT ], [ 1, Moves.MAGICAL_LEAF ], [ 1, Moves.GRASS_KNOT ], [ 1, Moves.PETAL_BLIZZARD ], @@ -11533,6 +11703,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.AEGISLASH]: [ [ 0, Moves.KINGS_SHIELD ], [ 1, Moves.SWORDS_DANCE ], + [ 1, Moves.PURSUIT ], [ 1, Moves.TACKLE ], [ 1, Moves.SLASH ], [ 1, Moves.FURY_CUTTER ], @@ -11622,6 +11793,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.INKAY]: [ [ 1, Moves.TACKLE ], [ 1, Moves.PECK ], + [ 1, Moves.CONSTRICT ], [ 3, Moves.HYPNOSIS ], [ 6, Moves.WRAP ], [ 9, Moves.PAYBACK ], @@ -11640,6 +11812,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.WRAP ], [ 1, Moves.PECK ], + [ 1, Moves.CONSTRICT ], [ 1, Moves.HYPNOSIS ], [ 1, Moves.REVERSAL ], [ 9, Moves.PAYBACK ], @@ -11706,6 +11879,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ACID ], [ 1, Moves.WATER_GUN ], [ 1, Moves.SMOKESCREEN ], + [ 1, Moves.FEINT_ATTACK ], [ 15, Moves.TAIL_WHIP ], [ 20, Moves.DOUBLE_TEAM ], [ 25, Moves.POISON_TAIL ], @@ -11766,6 +11940,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.HELIOLISK]: [ [ 1, Moves.POUND ], [ 1, Moves.TAIL_WHIP ], + [ 1, Moves.RAZOR_WIND ], [ 1, Moves.THUNDER_SHOCK ], [ 1, Moves.THUNDERBOLT ], [ 1, Moves.THUNDER_WAVE ], @@ -12161,6 +12336,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.YVELTAL]: [ [ 1, Moves.GUST ], [ 1, Moves.DOUBLE_TEAM ], + [ 1, Moves.RAZOR_WIND ], [ 5, Moves.TAUNT ], [ 10, Moves.SNARL ], [ 15, Moves.DISABLE ], @@ -12479,6 +12655,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TACKLE ], [ 1, Moves.LEER ], [ 1, Moves.PAYBACK ], + [ 1, Moves.PURSUIT ], [ 13, Moves.WORK_UP ], [ 19, Moves.BITE ], [ 23, Moves.MUD_SLAP ], @@ -12539,6 +12716,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 64, Moves.ZAP_CANNON ], ], [Species.CRABRAWLER]: [ + [ 1, Moves.BUBBLE ], + [ 1, Moves.VISE_GRIP ], [ 5, Moves.ROCK_SMASH ], [ 9, Moves.LEER ], [ 13, Moves.BUBBLE_BEAM ], @@ -12557,6 +12736,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.PROTECT ], [ 1, Moves.ROCK_SMASH ], + [ 1, Moves.BUBBLE ], + [ 1, Moves.PURSUIT ], [ 17, Moves.BUBBLE_BEAM ], [ 22, Moves.BRICK_BREAK ], [ 25, Moves.SLAM ], @@ -12725,6 +12906,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.DEWPIDER]: [ [ 1, Moves.WATER_GUN ], [ 1, Moves.INFESTATION ], + [ 1, Moves.WATER_SPORT ], [ 4, Moves.BUG_BITE ], [ 8, Moves.BITE ], [ 12, Moves.BUBBLE_BEAM ], @@ -12744,6 +12926,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.BUG_BITE ], [ 1, Moves.WIDE_GUARD ], [ 1, Moves.INFESTATION ], + [ 1, Moves.SPIDER_WEB ], [ 12, Moves.BUBBLE_BEAM ], [ 16, Moves.AQUA_RING ], [ 20, Moves.HEADBUTT ], @@ -12777,6 +12960,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.INGRAIN ], [ 1, Moves.NIGHT_SLASH ], [ 1, Moves.LEAFAGE ], + [ 1, Moves.DUAL_CHOP ], [ 15, Moves.RAZOR_LEAF ], [ 20, Moves.SWEET_SCENT ], [ 25, Moves.SLASH ], @@ -12806,6 +12990,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.CONFUSE_RAY ], [ 1, Moves.INGRAIN ], [ 1, Moves.ASTONISH ], + [ 1, Moves.FLASH ], [ 12, Moves.MEGA_DRAIN ], [ 16, Moves.SLEEP_POWDER ], [ 20, Moves.MOONLIGHT ], @@ -12844,6 +13029,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TORMENT ], [ 1, Moves.KNOCK_OFF ], [ 1, Moves.ENDEAVOR ], + [ 1, Moves.CAPTIVATE ], [ 15, Moves.POISON_FANG ], [ 20, Moves.SWEET_SCENT ], [ 25, Moves.NASTY_PLOT ], @@ -12919,6 +13105,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.RAPID_SPIN ], [ 1, Moves.POWER_WHIP ], [ 1, Moves.PLAY_NICE ], + [ 1, Moves.PUNISHMENT ], [ 16, Moves.SWEET_SCENT ], [ 22, Moves.MAGICAL_LEAF ], [ 28, Moves.STOMP ], @@ -13037,6 +13224,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.PYUKUMUKU]: [ [ 1, Moves.HARDEN ], [ 1, Moves.BATON_PASS ], + [ 1, Moves.BIDE ], + [ 1, Moves.MUD_SPORT ], + [ 1, Moves.WATER_SPORT ], [ 5, Moves.HELPING_HAND ], [ 10, Moves.TAUNT ], [ 15, Moves.SAFEGUARD ], @@ -13238,10 +13428,12 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 44, Moves.OUTRAGE ], ], [Species.HAKAMO_O]: [ + [ 0, Moves.SKY_UPPERCUT ], [ 1, Moves.TACKLE ], [ 1, Moves.LEER ], [ 1, Moves.PROTECT ], [ 1, Moves.DRAGON_TAIL ], + [ 1, Moves.BIDE ], [ 12, Moves.SCARY_FACE ], [ 16, Moves.HEADBUTT ], [ 20, Moves.WORK_UP ], @@ -13259,6 +13451,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.LEER ], [ 1, Moves.PROTECT ], [ 1, Moves.DRAGON_TAIL ], + [ 1, Moves.BIDE ], + [ 1, Moves.SKY_UPPERCUT ], [ 12, Moves.SCARY_FACE ], [ 16, Moves.HEADBUTT ], [ 20, Moves.WORK_UP ], @@ -13363,6 +13557,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.METAL_CLAW ], [ 1, Moves.COSMIC_POWER ], [ 1, Moves.NOBLE_ROAR ], + [ 1, Moves.WAKE_UP_SLAP ], [ 7, Moves.IRON_HEAD ], [ 14, Moves.METAL_SOUND ], [ 21, Moves.ZEN_HEADBUTT ], @@ -13398,6 +13593,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.NIHILEGO]: [ [ 1, Moves.POUND ], [ 1, Moves.WRAP ], + [ 1, Moves.CONSTRICT ], [ 5, Moves.ACID ], [ 10, Moves.TICKLE ], [ 15, Moves.ACID_SPRAY ], @@ -13530,6 +13726,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.MOONLIGHT ], [ 1, Moves.GRAVITY ], [ 1, Moves.CHARGE_BEAM ], + [ 1, Moves.MIRROR_SHOT ], [ 8, Moves.STEALTH_ROCK ], [ 16, Moves.SLASH ], [ 24, Moves.NIGHT_SLASH ], @@ -13569,6 +13766,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FEINT ], [ 1, Moves.COPYCAT ], [ 1, Moves.SHADOW_SNEAK ], + [ 1, Moves.PURSUIT ], [ 9, Moves.ROLE_PLAY ], [ 18, Moves.SHADOW_PUNCH ], [ 27, Moves.FORCE_PALM ], @@ -17333,6 +17531,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.METAL_BURST ], [ 1, Moves.IRON_HEAD ], [ 1, Moves.SNOWSCAPE ], + [ 1, Moves.ICE_BALL ], ], [Species.ALOLA_VULPIX]: [ [ 1, Moves.TAIL_WHIP ], @@ -17393,6 +17592,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.METAL_CLAW ], [ 1, Moves.ASTONISH ], [ 1, Moves.NIGHT_SLASH ], + [ 1, Moves.ROTOTILLER ], [ 12, Moves.MUD_SLAP ], [ 16, Moves.BULLDOZE ], [ 20, Moves.SUCKER_PUNCH ], @@ -17528,6 +17728,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.ALOLA_EXEGGUTOR]: [ [ 0, Moves.DRAGON_HAMMER ], + [ 1, Moves.BARRAGE ], [ 1, Moves.SEED_BOMB ], [ 1, Moves.PSYSHOCK ], [ 1, Moves.WOOD_HAMMER ], @@ -17549,6 +17750,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.ALOLA_MAROWAK]: [ [ 0, Moves.SHADOW_BONE ], + [ 1, Moves.BONE_CLUB ], [ 1, Moves.HEADBUTT ], [ 1, Moves.DOUBLE_EDGE ], [ 1, Moves.TAIL_WHIP ], @@ -18301,6 +18503,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = { [Species.DEOXYS]: { 1: [ + [ 1, Moves.CONFUSION ], //Custom [ 1, Moves.WRAP ], [ 1, Moves.LEER ], [ 7, Moves.NIGHT_SHADE ], @@ -18317,6 +18520,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = { [ 73, Moves.HYPER_BEAM ], ], 2: [ + [ 1, Moves.CONFUSION ], //Custom [ 1, Moves.WRAP ], [ 1, Moves.LEER ], [ 7, Moves.NIGHT_SHADE ], @@ -18335,6 +18539,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = { [ 73, Moves.MIRROR_COAT ], ], 3: [ + [ 1, Moves.CONFUSION ], //Custom [ 1, Moves.WRAP ], [ 1, Moves.LEER ], [ 7, Moves.NIGHT_SHADE ], @@ -18478,6 +18683,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = { }, [Species.SHAYMIN]: { 1: [ + [ 1, Moves.LEAFAGE ], //Custom [ 1, Moves.GROWTH ], [ 10, Moves.MAGICAL_LEAF ], [ 19, Moves.LEECH_SEED ], diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index bd9250bad..c8f999369 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -2759,7 +2759,7 @@ export const speciesStarters = { [Species.GROUDON]: 8, [Species.RAYQUAZA]: 8, [Species.JIRACHI]: 7, - [Species.DEOXYS]: 8, + [Species.DEOXYS]: 7, [Species.TURTWIG]: 3, [Species.CHIMCHAR]: 3, @@ -2813,7 +2813,7 @@ export const speciesStarters = { [Species.DARKRAI]: 7, [Species.SHAYMIN]: 7, [Species.ARCEUS]: 9, - [Species.VICTINI]: 8, + [Species.VICTINI]: 7, [Species.SNIVY]: 3, [Species.TEPIG]: 3, @@ -2895,7 +2895,7 @@ export const speciesStarters = { [Species.KYUREM]: 8, [Species.KELDEO]: 7, [Species.MELOETTA]: 7, - [Species.GENESECT]: 8, + [Species.GENESECT]: 7, [Species.CHESPIN]: 3, [Species.FENNEKIN]: 3, diff --git a/src/field/arena.ts b/src/field/arena.ts index 52822aef4..a2bde9422 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -617,7 +617,7 @@ export class Arena { case Biome.CONSTRUCTION_SITE: return 1.222; case Biome.JUNGLE: - return 2.477; + return 0.000; case Biome.FAIRY_CAVE: return 4.542; case Biome.TEMPLE: diff --git a/src/field/damage-number-handler.ts b/src/field/damage-number-handler.ts index f4a3d570e..262ff8863 100644 --- a/src/field/damage-number-handler.ts +++ b/src/field/damage-number-handler.ts @@ -13,7 +13,7 @@ export default class DamageNumberHandler { add(target: Pokemon, amount: integer, result: DamageResult | HitResult.HEAL = HitResult.EFFECTIVE, critical: boolean = false): void { const scene = target.scene; - if (!scene.damageNumbersMode) + if (!scene?.damageNumbersMode) return; const battlerIndex = target.getBattlerIndex(); diff --git a/src/locales/de/move.ts b/src/locales/de/move.ts index 1880253b8..a7750942e 100644 --- a/src/locales/de/move.ts +++ b/src/locales/de/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "Britzelturbo", - effect: "Ein stürmischer Blitz-Angriff mit hoher Erstschlag- und Volltrefferquote." + effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness." }, "splishySplash": { name: "Plätschersurfer", diff --git a/src/locales/en/move.ts b/src/locales/en/move.ts index f0c1c623a..11f92dda5 100644 --- a/src/locales/en/move.ts +++ b/src/locales/en/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "Zippy Zap", - effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and results in a critical hit." + effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness." }, "splishySplash": { name: "Splishy Splash", diff --git a/src/locales/es/move.ts b/src/locales/es/move.ts index 08aea3b45..026e67b79 100644 --- a/src/locales/es/move.ts +++ b/src/locales/es/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, zippyZap: { name: "Pikaturbo", - effect: "Ataque eléctrico a la velocidad del rayo. Este movimiento tiene prioridad alta y propina golpes críticos.", + effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness.", }, splishySplash: { name: "Salpikasurf", diff --git a/src/locales/fr/ability-trigger.ts b/src/locales/fr/ability-trigger.ts index 889007412..f668ee5e8 100644 --- a/src/locales/fr/ability-trigger.ts +++ b/src/locales/fr/ability-trigger.ts @@ -1,5 +1,5 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const abilityTriggers: SimpleTranslationEntries = { - 'blockRecoilDamage' : `{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!`, -} as const; \ No newline at end of file + 'blockRecoilDamage' : `{{abilityName}}\nde {{pokemonName}} le protège du contrecoup !`, +} as const; diff --git a/src/locales/fr/move.ts b/src/locales/fr/move.ts index 2139f96d9..e4d7f5e03 100644 --- a/src/locales/fr/move.ts +++ b/src/locales/fr/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "Pika-Sprint", - effect: "Une attaque électrique rapide comme l’éclair qui inflige un coup critique à coup sûr. Frappe en priorité." + effect: "Une attaque électrique rapide comme l’éclair qui auguemente l’esquive. Frappe en priorité." }, "splishySplash": { name: "Pika-Splash", diff --git a/src/locales/it/move.ts b/src/locales/it/move.ts index 116a14b5d..85babbfd3 100644 --- a/src/locales/it/move.ts +++ b/src/locales/it/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, zippyZap: { name: "Sprintaboom", - effect: "Un attacco elettrico ad altissima velocità. Questa mossa ha priorità alta e infligge sicuramente un brutto colpo.", + effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness.", }, splishySplash: { name: "Surfasplash", diff --git a/src/locales/pt_BR/move.ts b/src/locales/pt_BR/move.ts index 11fa8a240..97f24efee 100644 --- a/src/locales/pt_BR/move.ts +++ b/src/locales/pt_BR/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, zippyZap: { name: "Zippy Zap", - effect: "O usuário ataca o alvo com rajadas de eletricidade em alta velocidade. Este movimento sempre ataca primeiro e resulta em um golpe crítico." + effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness." }, splishySplash: { name: "Splishy Splash", diff --git a/src/locales/zh_CN/move.ts b/src/locales/zh_CN/move.ts index 3c4b8eb62..1432fde5b 100644 --- a/src/locales/zh_CN/move.ts +++ b/src/locales/zh_CN/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "电电加速", - effect: "迅猛无比的电击。必定能够\n先制攻击,击中对方的要害", + effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness.", }, "splishySplash": { name: "滔滔冲浪", diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 6b3365230..982f8a654 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -554,10 +554,10 @@ export class EvolutionItemModifierType extends PokemonModifierType implements Ge super(Utils.toReadableString(EvolutionItem[evolutionItem]), `Causes certain Pokémon to evolve`, (_type, args) => new Modifiers.EvolutionItemModifier(this, (args[0] as PlayerPokemon).id), (pokemon: PlayerPokemon) => { if (pokemonEvolutions.hasOwnProperty(pokemon.species.speciesId) && pokemonEvolutions[pokemon.species.speciesId].filter(e => e.item === this.evolutionItem - && (!e.condition || e.condition.predicate(pokemon))).length && (pokemon.formIndex == 0)) + && (!e.condition || e.condition.predicate(pokemon))).length && (pokemon.getFormKey() !== SpeciesFormKey.GIGANTAMAX)) return null; else if (pokemon.isFusion() && pokemonEvolutions.hasOwnProperty(pokemon.fusionSpecies.speciesId) && pokemonEvolutions[pokemon.fusionSpecies.speciesId].filter(e => e.item === this.evolutionItem - && (!e.condition || e.condition.predicate(pokemon))).length && (pokemon.fusionFormIndex == 0)) + && (!e.condition || e.condition.predicate(pokemon))).length && (pokemon.getFusionFormKey() !== SpeciesFormKey.GIGANTAMAX)) return null; return PartyUiHandler.NoEffectMessage; diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index ba009cb7a..8a5fba17d 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -635,6 +635,9 @@ export class PokemonBaseStatModifier extends PokemonHeldItemModifier { } } + /** + * Applies Specific Type item boosts (e.g., Magnet) + */ export class AttackTypeBoosterModifier extends PokemonHeldItemModifier { private moveType: Type; private boostMultiplier: number; @@ -667,8 +670,15 @@ export class AttackTypeBoosterModifier extends PokemonHeldItemModifier { return super.shouldApply(args) && args.length === 3 && typeof args[1] === 'number' && args[2] instanceof Utils.NumberHolder; } + /** + * @param {Array} args Array + * - Index 0: {Pokemon} Pokemon + * - Index 1: {number} Move type + * - Index 2: {Utils.NumberHolder} Move power + * @returns {boolean} Returns true if boosts have been applied to the move. + */ apply(args: any[]): boolean { - if (args[1] === this.moveType) { + if (args[1] === this.moveType && (args[2] as Utils.NumberHolder).value >= 1) { (args[2] as Utils.NumberHolder).value = Math.floor((args[2] as Utils.NumberHolder).value * (1 + (this.getStackCount() * this.boostMultiplier))); return true; } diff --git a/src/phases.ts b/src/phases.ts index 6cc6af93e..271e5350c 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -775,7 +775,7 @@ export class EncounterPhase extends BattlePhase { this.scene.ui.setMode(Mode.MESSAGE).then(() => { if (!this.loaded) { - this.scene.gameData.saveAll(this.scene, true, battle.waveIndex % 5 === 1).then(success => { + this.scene.gameData.saveAll(this.scene, true).then(success => { this.scene.disableMenu = false; if (!success) return this.scene.reset(true); diff --git a/src/system/game-data.ts b/src/system/game-data.ts index d0e296cc4..7f6e1475b 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -277,7 +277,7 @@ export class GameData { const maxIntAttrValue = Math.pow(2, 31); const systemData = JSON.stringify(data, (k: any, v: any) => typeof v === 'bigint' ? v <= maxIntAttrValue ? Number(v) : v.toString() : v); - if (!bypassLogin && !localStorage.getItem('data')) { + if (!bypassLogin) { Utils.apiPost(`savedata/update?datatype=${GameDataType.SYSTEM}`, systemData, undefined, true) .then(response => response.text()) .then(error => { @@ -293,15 +293,12 @@ export class GameData { console.error(error); return resolve(false); } - localStorage.removeItem('data'); resolve(true); }); } else { - const encFunc = bypassLogin - ? (data: string) => btoa(data) - : (data: string) => AES.encrypt(data, saveKey); + localStorage.setItem('data_bak', localStorage.getItem('data')); - localStorage.setItem('data', encFunc(systemData)); + localStorage.setItem('data', btoa(systemData)); this.scene.ui.savingIcon.hide(); @@ -312,7 +309,7 @@ export class GameData { public loadSystem(): Promise { return new Promise(resolve => { - if (bypassLogin && !localStorage.getItem('data')) + if (bypassLogin && !localStorage.hasOwnProperty('data')) return resolve(false); const handleSystemData = (systemDataStr: string) => { @@ -424,7 +421,7 @@ export class GameData { } } - if (!bypassLogin && !localStorage.getItem('data')) { + if (!bypassLogin) { Utils.apiFetch(`savedata/get?datatype=${GameDataType.SYSTEM}`, true) .then(response => response.text()) .then(response => { @@ -442,12 +439,8 @@ export class GameData { handleSystemData(response); }); - } else { - const decFunc = bypassLogin - ? (data: string) => atob(data) - : (data: string) => AES.decrypt(data, saveKey).toString(enc.Utf8); - handleSystemData(decFunc(localStorage.getItem('data'))); - } + } else + handleSystemData(atob(localStorage.getItem('data'))); }); } @@ -564,6 +557,40 @@ export class GameData { } as SessionSaveData; } + saveSession(scene: BattleScene, skipVerification?: boolean): Promise { + return new Promise(resolve => { + Utils.executeIf(!skipVerification, updateUserInfo).then(success => { + if (success !== null && !success) + return resolve(false); + + const sessionData = this.getSessionSaveData(scene); + + if (!bypassLogin) { + Utils.apiPost(`savedata/update?datatype=${GameDataType.SESSION}&slot=${scene.sessionSlotId}&trainerId=${this.trainerId}&secretId=${this.secretId}`, JSON.stringify(sessionData), undefined, true) + .then(response => response.text()) + .then(error => { + if (error) { + if (error.startsWith('session out of date')) { + this.scene.clearPhaseQueue(); + this.scene.unshiftPhase(new ReloadSessionPhase(this.scene)); + } + console.error(error); + return resolve(false); + } + console.debug('Session data saved'); + resolve(true); + }); + } else { + localStorage.setItem(`sessionData${scene.sessionSlotId ? scene.sessionSlotId : ''}`, btoa(JSON.stringify(sessionData))); + + console.debug('Session data saved'); + + resolve(true); + } + }); + }); + } + getSession(slotId: integer): Promise { return new Promise(async (resolve, reject) => { if (slotId < 0) @@ -578,7 +605,7 @@ export class GameData { } }; - if (!bypassLogin && !localStorage.getItem(`sessionData${slotId ? slotId : ''}`)) { + if (!bypassLogin) { Utils.apiFetch(`savedata/get?datatype=${GameDataType.SESSION}&slot=${slotId}`, true) .then(response => response.text()) .then(async response => { @@ -591,12 +618,9 @@ export class GameData { }); } else { const sessionData = localStorage.getItem(`sessionData${slotId ? slotId : ''}`); - if (sessionData) { - const decFunc = bypassLogin - ? (data: string) => atob(data) - : (data: string) => AES.decrypt(data, saveKey).toString(enc.Utf8); - await handleSessionData(decFunc(sessionData)); - } else + if (sessionData) + await handleSessionData(atob(sessionData)); + else return resolve(null); } }); @@ -707,7 +731,7 @@ export class GameData { deleteSession(slotId: integer): Promise { return new Promise(resolve => { if (bypassLogin) { - localStorage.removeItem(`sessionData${this.scene.sessionSlotId ? this.scene.sessionSlotId : ''}`); + localStorage.removeItem('sessionData'); return resolve(true); } @@ -717,7 +741,6 @@ export class GameData { Utils.apiFetch(`savedata/delete?datatype=${GameDataType.SESSION}&slot=${slotId}`, true).then(response => { if (response.ok) { loggedInUser.lastSessionSlot = -1; - localStorage.removeItem(`sessionData${this.scene.sessionSlotId ? this.scene.sessionSlotId : ''}`); resolve(true); } return response.text(); @@ -748,10 +771,8 @@ export class GameData { return resolve([false, false]); const sessionData = this.getSessionSaveData(scene); Utils.apiPost(`savedata/clear?slot=${slotId}&trainerId=${this.trainerId}&secretId=${this.secretId}`, JSON.stringify(sessionData), undefined, true).then(response => { - if (response.ok) { + if (response.ok) loggedInUser.lastSessionSlot = -1; - localStorage.removeItem(`sessionData${this.scene.sessionSlotId ? this.scene.sessionSlotId : ''}`); - } return response.json(); }).then(jsonResponse => { if (!jsonResponse.error) @@ -804,13 +825,13 @@ export class GameData { }) as SessionSaveData; } - saveAll(scene: BattleScene, skipVerification: boolean = false, sync: boolean = false): Promise { + saveAll(scene: BattleScene, skipVerification?: boolean): Promise { return new Promise(resolve => { Utils.executeIf(!skipVerification, updateUserInfo).then(success => { if (success !== null && !success) return resolve(false); - if (sync) - this.scene.ui.savingIcon.show(); + this.scene.ui.savingIcon.show(); + const data = this.getSystemSaveData(); const sessionData = this.getSessionSaveData(scene); const maxIntAttrValue = Math.pow(2, 31); @@ -822,12 +843,11 @@ export class GameData { sessionSlotId: scene.sessionSlotId }; - if (!bypassLogin && sync) { + if (!bypassLogin) { Utils.apiPost('savedata/updateall', JSON.stringify(request, (k: any, v: any) => typeof v === 'bigint' ? v <= maxIntAttrValue ? Number(v) : v.toString() : v), undefined, true) .then(response => response.text()) .then(error => { - if (sync) - this.scene.ui.savingIcon.hide(); + this.scene.ui.savingIcon.hide(); if (error) { if (error.startsWith('client version out of date')) { this.scene.clearPhaseQueue(); @@ -839,18 +859,14 @@ export class GameData { console.error(error); return resolve(false); } - localStorage.removeItem('data'); - localStorage.removeItem(`sessionData${scene.sessionSlotId ? scene.sessionSlotId : ''}`); resolve(true); }); } else { - const encFunc = bypassLogin - ? (data: string) => btoa(data) - : (data: string) => AES.encrypt(data, saveKey); + localStorage.setItem('data_bak', localStorage.getItem('data')); - localStorage.setItem('data', encFunc(JSON.stringify(systemData, (k: any, v: any) => typeof v === 'bigint' ? v <= maxIntAttrValue ? Number(v) : v.toString() : v))); + localStorage.setItem('data', btoa(JSON.stringify(systemData, (k: any, v: any) => typeof v === 'bigint' ? v <= maxIntAttrValue ? Number(v) : v.toString() : v))); - localStorage.setItem(`sessionData${scene.sessionSlotId ? scene.sessionSlotId : ''}`, encFunc(JSON.stringify(sessionData))); + localStorage.setItem(`sessionData${scene.sessionSlotId ? scene.sessionSlotId : ''}`, btoa(JSON.stringify(sessionData))); console.debug('Session data saved'); @@ -894,12 +910,8 @@ export class GameData { }); } else { const data = localStorage.getItem(dataKey); - if (data) { - const decFunc = bypassLogin - ? (data: string) => atob(data) - : (data: string) => AES.decrypt(data, saveKey).toString(enc.Utf8); - handleData(decFunc(data)); - } + if (data) + handleData(atob(data)); resolve(!!data); } }); @@ -967,7 +979,7 @@ export class GameData { return this.scene.ui.showText(`Your ${dataName} data could not be loaded. It may be corrupted.`, null, () => this.scene.ui.showText(null, 0), Utils.fixedInt(1500)); this.scene.ui.showText(`Your ${dataName} data will be overridden and the page will reload. Proceed?`, null, () => { this.scene.ui.setOverlayMode(Mode.CONFIRM, () => { - if (!bypassLogin && dataType < GameDataType.SETTINGS && localStorage.getItem(dataKey)) { + if (!bypassLogin && dataType < GameDataType.SETTINGS) { updateUserInfo().then(success => { if (!success) return displayError(`Could not contact the server. Your ${dataName} data could not be imported.`); @@ -978,15 +990,11 @@ export class GameData { console.error(error); return displayError(`An error occurred while updating ${dataName} data. Please contact the administrator.`); } - localStorage.removeItem(dataKey); window.location = window.location; }); }); } else { - const encFunc = bypassLogin || dataType === GameDataType.SETTINGS - ? (data: string) => btoa(data) - : (data: string) => AES.encrypt(data, saveKey); - localStorage.setItem(dataKey, encFunc(dataStr)); + localStorage.setItem(dataKey, btoa(dataStr)); window.location = window.location; } }, () => {