diff --git a/src/app/screens/more-event-pokemon/more-event-pokemon.component.pug b/src/app/screens/more-event-pokemon/more-event-pokemon.component.pug index 0d8cc30..26f3bfd 100644 --- a/src/app/screens/more-event-pokemon/more-event-pokemon.component.pug +++ b/src/app/screens/more-event-pokemon/more-event-pokemon.component.pug @@ -9,182 +9,32 @@ mat-accordion mat-panel-description Events in Japan mat-list - mat-list-item + mat-list-item(*ngFor='let entry of jpRawEvents; let i = index; trackBy: entriesTracking') button( mat-raised-button='' - '(click)'='giveGameFreakMew()' + '(click)'='genPokemonAndGive(entry)' - matTooltip="Level 5 Mew with max DV's" + '[matTooltip]'="entry.desc" matTooltipPosition="left" ) span.im.im-gift2 - span   Game Freak Mew + span   {{entry.title}} - mat-list-item - button( - mat-raised-button='' - '(click)'='giveSpaceWorld99Mew()' - - matTooltip="Level 5 Mew" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Nintendo Space World '99 Mew - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveStampFearow()' - - matTooltip="Level 20 Fearow with Payday" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Pokemon Stamp Fearow - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveStampRapidash()' - - matTooltip="Level 40 Rapidash with Payday" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Pokemon Stamp Rapidash - - mat-list-item - button( - mat-raised-button='' - '(click)'='give98BattleTourPikachu()' - - matTooltip="Level 5 Surfing Pikachu" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Summer '98 Pokemon Battle Tour Pikachu - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveUniversityMagikarp()' - - matTooltip="Level 5 Magikarp with Dragon Rage" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   University Magikarp - - mat-list-item - button( - mat-raised-button='' - '(click)'='give7thNxtGenWrldHbyMew()' - - matTooltip="Level 5 Mew" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   7th Next Generation World Hobby Fair Mew - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveCoroCoroFlyingPikachu()' - - matTooltip="Level 5 Pikachu that knows Fly" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   CoroCoro Flying Pikachu - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveCoroCoroSurfingPikachu()' - - matTooltip="Level 5 Pikachu that knows Surf" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   CoroCoro Surfing Pikachu - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveSpaceWorld97Mew()' - - matTooltip="Level 5 Mew" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Nintendo Space World '97 Mew - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveCoroCoro20thMew()' - - matTooltip="Level 5 Mew" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   CoroCoro 20th Anniversary Mew - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveN64Pikachu()' - - matTooltip="Level 5 Pikachu that knows Thundershock, Growl, and Surf" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Nintendo 64 Pikachu - - mat-list-item - button( - mat-raised-button='' - '(click)'='give4thNxtGenWrldHbyMew()' - - matTooltip="Level 5 Mew" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   4th Next Generation World Hobby Fair Mew - - mat-list-item - button( - mat-raised-button='' - '(click)'='giveLgndPkmnMew()' - - matTooltip="Level 5 Mew" - matTooltipPosition="left" - ) - span.im.im-gift2 - - span   Legendary Pokemon Offer 2 Mew + mat-expansion-panel + mat-expansion-panel-header + mat-panel-title Europe + mat-panel-description Events in Europe - mat-list-item + mat-list + mat-list-item(*ngFor='let entry of euRawEvents; let i = index; trackBy: entriesTracking') button( mat-raised-button='' - '(click)'='giveLgndPkmnMew()' + '(click)'='genPokemonAndGive(entry)' - matTooltip="Level 5 Mew" + '[matTooltip]'="entry.desc" matTooltipPosition="left" ) span.im.im-gift2 - span   Legendary Pokemon Offer 1 Mew + span   {{entry.title}} diff --git a/src/app/screens/more-event-pokemon/more-event-pokemon.component.ts b/src/app/screens/more-event-pokemon/more-event-pokemon.component.ts index d548618..75ae5ac 100644 --- a/src/app/screens/more-event-pokemon/more-event-pokemon.component.ts +++ b/src/app/screens/more-event-pokemon/more-event-pokemon.component.ts @@ -16,10 +16,16 @@ import { GameDataService } from './../../data/gameData.service'; limitations under the License. */ + // @ts-ignore +const _: any = window.require("lodash"); + import { Component, OnInit } from '@angular/core'; import { SaveFileService } from "../../data/savefile.service"; import { PokemonParty } from 'src/app/data/savefile-expanded/fragments/PokemonParty'; import {MatSnackBar} from '@angular/material'; +import { EventPokemon } from 'src/assets/data/eventPokemon'; +import { Pokemon } from 'src/assets/data/pokemon'; +import { Move } from 'src/assets/data/moves'; @Component({ selector: 'more-event-pokemon', @@ -64,6 +70,7 @@ export class MoreEventPokemon implements OnInit { } } + // Random integer inclusive to min and max getRandomInt(min: number, max: number): number { min = Math.ceil(min); max = Math.floor(max); @@ -81,251 +88,177 @@ export class MoreEventPokemon implements OnInit { return pkmn; } - // Gets a Lvl 5 Mew that knows Pound with random DV's and OTID - get mew() { - const pkmn = this.pkmn; - pkmn.species = 21; // Mew - pkmn.type1 = 24; // Psychic - pkmn.type2 = 0xFF; // No 2nd type - pkmn.nickname = "MEW"; - pkmn.level = 5; - pkmn.moves[0] = { - moveID: 1, // Pound - pp: 35, - ppUp: 0, - } - - return pkmn; + // Get all events + get rawEvents(): EventPokemon[] { + return this.fileService.gd.file("eventPokemon").data; } - // Gets a Lvl 5 Pikachu with random DV's and OTID - get pikachu() { - const pkmn = this.pkmn; - pkmn.species = 84; // Pikachu - pkmn.type1 = 23; // Electric - pkmn.type2 = 0xFF; - pkmn.nickname = "PIKACHU"; - pkmn.level = 5; - - return pkmn; + // Get all Japanese events + get jpRawEvents(): EventPokemon[] { + return _.filter(this.rawEvents, ['region', 'Japan']); } - giveGameFreakMew() { - const pkmn = this.mew; - pkmn.otName = "GMFRK"; - pkmn.otID = Number(22796).toString(16).padStart(4, "0").toUpperCase(); - - // 15 for all DV's as per this event - pkmn.dv.attack = 15; - pkmn.dv.defense = 15; - pkmn.dv.special = 15; - pkmn.dv.speed = 15; - - this.givePokemon(pkmn); + // Get all European events + get euRawEvents(): EventPokemon[] { + return _.filter(this.rawEvents, ['region', 'Europe']); } - giveSpaceWorld99Mew() { - const pkmn = this.mew; - pkmn.otName = "MAKHARI"; + // Get all types + get rawTypes(): { + name: string, + ind: number + }[] { + return this.fileService.gd.file("types").data; + } - this.givePokemon(pkmn); + // Get all moves + get rawMoves(): { + name: string, + ind: number, + glitch?: true + }[] { + return this.fileService.gd.file("moves").data; } - giveStampFearow() { - const pkmn = this.pkmn; - pkmn.species = 35; // Fearow - pkmn.type1 = 0; // Normal - pkmn.type2 = 2; // Flying - pkmn.otName = "STAMP"; - pkmn.nickname = "FEAROW"; - pkmn.level = 20; - pkmn.moves[0] = { - moveID: 45, // Growl - pp: 40, - ppUp: 0, - } - pkmn.moves[1] = { - moveID: 43, // Leer - pp: 30, - ppUp: 0, - } - pkmn.moves[2] = { - moveID: 31, // Furry Attack - pp: 20, - ppUp: 0, - } - pkmn.moves[3] = { - moveID: 6, // Pay Day - pp: 20, - ppUp: 0, + getType(typ: string) : number | null { + const allTypes = this.rawTypes; + + for(let i = 0; i < allTypes.length; i++) { + const typeEntry = allTypes[i]; + if(typeEntry.name.toUpperCase() == typ.toUpperCase()) + return typeEntry.ind; } - this.givePokemon(pkmn); + return null; } - giveStampRapidash() { - const pkmn = this.pkmn; - pkmn.species = 164; // Rapidash - pkmn.type1 = 20; // Fire - pkmn.type2 = 0xFF; - pkmn.otName = "STAMP"; - pkmn.nickname = "RAPIDASH"; - pkmn.level = 40; - pkmn.moves[0] = { - moveID: 52, // Ember - pp: 25, - ppUp: 0, - } - pkmn.moves[1] = { - moveID: 83, // Fire Spin - pp: 15, - ppUp: 0, - } - pkmn.moves[2] = { - moveID: 23, // Stomp - pp: 20, - ppUp: 0, - } - pkmn.moves[3] = { - moveID: 6, // Pay Day - pp: 20, - ppUp: 0, + getMove(move: string) : Move | null { + const allMoves = this.rawMoves; + + for(let i = 0; i < allMoves.length; i++) { + const moveEntry = allMoves[i]; + if(moveEntry.name.toUpperCase() == move.toUpperCase()) + return moveEntry; } - this.givePokemon(pkmn); + return null; } - give98BattleTourPikachu() { - const pkmn = this.pikachu; - pkmn.otName = "IMAKUNI"; - pkmn.moves[0] = { - moveID: 57, // Surf - pp: 15, - ppUp: 0, - } - - this.givePokemon(pkmn); + // List tracking + entriesTracking(index: number) { + return index; } - giveUniversityMagikarp() { - const pkmn = this.pkmn; - pkmn.species = 133; // Magikarp - pkmn.type1 = 21; // Water - pkmn.type2 = 0xFF; - pkmn.otName = "TAMAMSH"; - pkmn.nickname = "MAGIKARP"; - pkmn.level = 5; - pkmn.moves[0] = { - moveID: 150, // Splash - pp: 40, - ppUp: 0, - } - pkmn.moves[1] = { - moveID: 82, // Dragon Rage - pp: 10, - ppUp: 0, + findPokemonRecord(name: String): Pokemon | null { + const allPokemon = this.fileService.gd.file("pokemon").data as Pokemon[]; + + for(let i = 0; i < allPokemon.length; i++) { + const pkmnEntry = allPokemon[i]; + if(pkmnEntry.name == name) + return pkmnEntry; } - this.givePokemon(pkmn); + return null; } - give7thNxtGenWrldHbyMew() { - const pkmn = this.mew; - - const otNames = [ - "FUKUOKA", - "CHIBA", - "OSAKA", - "HOKAIDO", - "AICHI" - ]; + convertCase(str: string) { + let newCase: string = _.startCase(_.lowerCase(str)); - pkmn.otName = otNames[this.getRandomInt(0, otNames.length - 1)]; + if(newCase == "Mrmime") + newCase = "Mr.Mime"; + else if(newCase == "Nidoranf") + newCase = "Nidoran"; + else if(newCase == "Nidoranm") + newCase = "Nidoran"; - this.givePokemon(pkmn); + return newCase; } - giveCoroCoroFlyingPikachu() { - const pkmn = this.pikachu; - pkmn.otName = "COROCOR"; - pkmn.moves[0] = { - moveID: 19, // Fly - pp: 15, - ppUp: 0, - } + // Gives the Pokemon + genPokemonAndGive(entry: EventPokemon) { + // Get a blank Pokemon with random DV's and OT ID + const pkmn = this.pkmn; - this.givePokemon(pkmn); - } + // Get Pokemon Record + const nameRecord = this.findPokemonRecord(entry.pokemon); + if(nameRecord == null) + return; - giveCoroCoroSurfingPikachu() { - const pkmn = this.pikachu; - pkmn.otName = "COROCOR"; - pkmn.moves[0] = { - moveID: 57, // Surf - pp: 15, - ppUp: 0, - } + // Assign Species Number + pkmn.species = nameRecord.ind; - this.givePokemon(pkmn); - } + if(nameRecord.catchRate !== undefined) + pkmn.catchRate = nameRecord.catchRate; - giveSpaceWorld97Mew() { - const pkmn = this.mew; + // Assign Types 1 & 2 + if(nameRecord.type1 === undefined || nameRecord.type2 === undefined) + return; + + let typeX = this.getType(nameRecord.type1); + if(typeX === null) + return; - const otNames = [ - "YOSHI", - "LUIGI", - ]; + pkmn.type1 = typeX; - pkmn.otName = otNames[this.getRandomInt(0, otNames.length - 1)]; + typeX = this.getType(nameRecord.type2); + if(typeX === null) + return; - this.givePokemon(pkmn); - } + pkmn.type2 = typeX; - giveCoroCoro20thMew() { - const pkmn = this.mew; + if(pkmn.type1 == pkmn.type2) + pkmn.type2 = 0xFF; - pkmn.otName = "COROCOR"; + // Assign OT Name + let otName = entry.otName; + if(Array.isArray(entry.otName)) + otName = otName[this.getRandomInt(0, otName.length - 1)]; - this.givePokemon(pkmn); - } - - giveN64Pikachu() { - const pkmn = this.pikachu; + // Handled Above + // @ts-ignore + pkmn.otName = otName; - pkmn.otName = "NINTEN" + // OT ID if present, random otherwise + if(entry.otID !== undefined) + pkmn.otID = entry.otID; - pkmn.moves[0] = { - moveID: 84, // Thundershock - pp: 30, - ppUp: 0, - } - pkmn.moves[1] = { - moveID: 45, // Growl - pp: 40, - ppUp: 0, + if(entry.dv != undefined && entry.dv == "max") { + pkmn.dv.attack = 15; + pkmn.dv.defense = 15; + pkmn.dv.special = 15; + pkmn.dv.speed = 15; } - pkmn.moves[2] = { - moveID: 57, // Surf - pp: 15, - ppUp: 0, + else if(entry.dv != undefined && entry.dv.startsWith(":")) { + const dvs = entry.dv.split(":"); + dvs.shift(); + + pkmn.dv.attack = parseInt(dvs[0]); + pkmn.dv.defense = parseInt(dvs[1]); + pkmn.dv.speed = parseInt(dvs[2]); + pkmn.dv.special = parseInt(dvs[3]); } - this.givePokemon(pkmn); - } - - give4thNxtGenWrldHbyMew() { - const pkmn = this.mew; + // Assign Nickname + pkmn.nickname = nameRecord.name.toUpperCase(); - pkmn.otName = "TOKYOBY"; + if(pkmn.nickname == "NIDORAN") + pkmn.nickname = "NIDORAN"; + else if(pkmn.nickname == "NIDORAN") + pkmn.nickname = "NIDORAN"; - this.givePokemon(pkmn); - } + // Assign Level + pkmn.level = (entry.level) ? entry.level : 5; - giveLgndPkmnMew() { - const pkmn = this.mew; + for(let i = 0; i < entry.moves.length; i++) { + const move = entry.moves[i]; + const moveData = this.getMove(move); + if(moveData == null) + return; - pkmn.otName = "COROCOR"; + pkmn.moves[i].moveID = moveData.ind; + if(moveData.pp !== undefined) + pkmn.moves[i].pp = moveData.pp; + } this.givePokemon(pkmn); } diff --git a/src/assets/data/eventPokemon.d.ts b/src/assets/data/eventPokemon.d.ts index 8a57046..56b7739 100644 --- a/src/assets/data/eventPokemon.d.ts +++ b/src/assets/data/eventPokemon.d.ts @@ -26,7 +26,7 @@ export interface EventPokemon { // Pokemon Moves // If Empty use calculated natural moveset - moves?: string[], + moves: string[], // Pokemon Custom OT ID // If not one is randomly chosen @@ -37,7 +37,8 @@ export interface EventPokemon { level?: number = 5, // DV Setup - // right now it's either left out (random) or + // left out (random) // "max" for all 15 DV's + // :##:##:##:## To set specific attack, defense, speed, special in that order dv?: string }; diff --git a/src/assets/data/eventPokemon.json b/src/assets/data/eventPokemon.json index e55f189..c547c1a 100644 --- a/src/assets/data/eventPokemon.json +++ b/src/assets/data/eventPokemon.json @@ -6,14 +6,20 @@ "otName": "GMFRK", "otID": "590C", "dv": "max", - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "Nintendo Space World '99 Mew", "desc": "Level 5 Mew", "pokemon": "Mew", "otName": "MAKHARI", - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "Pokemon Stamp Fearow", @@ -75,7 +81,10 @@ "HOKAIDO", "AICHI" ], - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "CoroCoro Flying Pikachu", @@ -105,14 +114,20 @@ "YOSHI", "LUIGI" ], - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "CoroCoro 20th Anniversary Mew", "desc": "Level 5 Mew", "pokemon": "Mew", "otName": "COROCOR", - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "Nintendo 64 Pikachu", @@ -131,20 +146,335 @@ "desc": "Level 5 Mew", "pokemon": "Mew", "otName": "TOKYOBY", - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "Legendary Pokemon Offer 2 Mew", "desc": "Level 5 Mew", "pokemon": "Mew", "otName": "COROCOR", - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] }, { "title": "Legendary Pokemon Offer 1 Mew", "desc": "Level 5 Mew", "pokemon": "Mew", "otName": "COROCOR", - "region": "Japan" + "region": "Japan", + "moves": [ + "Pound" + ] + }, + { + "title": "Nintendo UK's Pokémon Festival Mew", + "desc": "Level 5 Mew with max DV's", + "pokemon": "Mew", + "otName": "GF", + "otID": "590C", + "dv": "max", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Far, Mor & Børn Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "COPNHGN", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Christmas Present Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": [ + "LEIPZIG", + "COLOGNE", + "MUNICH", + "BERLIN", + "HAMBURG", + "FRNKFRT", + "STTGRT", + "BREMEN", + "HOMBURG", + "ANSBACH", + "HANNVER", + "VIRNHEM" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Sweden Mew on Tour Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": [ + "GTHNBRG", + "GAVLE", + "HALMSTD", + "JNKOPNG", + "KALMAR", + "KRLSTAD", + "LULEA", + "LUND", + "MALMO", + "NRKPING", + "SKOVDE", + "STCKHLM", + "SNDSVLL", + "TRLHTAN", + "UDDEVLA", + "UMEA", + "VAXJO", + "OREBRO", + "OSTRSND" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Tennispalatsi Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "FINLAND", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Norway Pokemon Tour Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "EUROPE", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Club Nintendo Mew", + "desc": "Level 5 Mew with specific seemingly random DV's", + "pokemon": "Mew", + "otName": "EUROPE", + "dv": ":10:1:12:5", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Pokemon 2000 World Championship Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "SYDNEY", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Millennium Dome Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "EUROPE", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "UK and Ireland Pokémon Championship 2000 Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "UK", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Cora Châtelineau Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "BENELUX", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "France Pokémon Tournament Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "PARIS", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Spain Pokémon Tournament Mew", + "desc": "Level 5 Mew with oddly specific DV's", + "pokemon": "Mew", + "otName": "D-J", + "otID": "EAE2", + "dv": ":6:4:3:8", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Mews Flash Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "UK", + "otID": "0DCB", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Pokémon Patrol Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "YOSHIBB", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Nintendo Official Magazine Tour Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": "UK", + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Canadian Pokémon Stadium Tour 2000 Mew", + "desc": "Level 5 Mew with oddly specific DV's", + "pokemon": "Mew", + "dv": ":10:1:12:5", + "otName": [ + "LUIGI", + "YOSHIC" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Pokémon 2000 Stadium Tour Mew", + "desc": "Level 5 Mew with oddly specific DV's", + "pokemon": "Mew", + "dv": ":10:1:12:5", + "otName": [ + "LINKE", + "LINKW", + "LUIGE", + "LUIGW" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Canada Toys \"R\" Us Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": [ + "YOSHIRA", + "YOSHIRB" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "US Toys \"R\" Us Mew", + "desc": "Level 5 Mew with oddly specific DV's", + "pokemon": "Mew", + "dv": ":10:1:12:5", + "otName": [ + "YOSHIRA", + "YOSHIRB" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Nintendo Power Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": [ + "YOSHIRA", + "YOSHIRB" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Pokémon League Nintendo Training Tour '99 Mew", + "desc": "Level 5 Mew", + "pokemon": "Mew", + "otName": [ + "YOSHIRA", + "YOSHIRB" + ], + "region": "Europe", + "moves": [ + "Pound" + ] + }, + { + "title": "Nintendo Power Pikachu", + "desc": "Level 5 Surfing Pikachu", + "pokemon": "Pikachu", + "otName": "NINTEN", + "moves": [ + "Surf" + ], + "region": "Europe" + }, + { + "title": "Poké Tour Mew", + "desc": "Level 5 Mew with oddly specific DV's", + "pokemon": "Mew", + "otName": [ + "NAL", + "AUS" + ], + "dv": ":10:1:12:5", + "moves": [ + "Pound" + ], + "region": "Europe" } ] diff --git a/src/assets/data/moves.d.ts b/src/assets/data/moves.d.ts index ac96b06..5ff6a58 100644 --- a/src/assets/data/moves.d.ts +++ b/src/assets/data/moves.d.ts @@ -1,5 +1,9 @@ export interface Move { name: string, ind: number, + power?: number, + type?: string, + accuracy?: number, + pp?: number, glitch?: boolean } diff --git a/src/assets/data/moves.json b/src/assets/data/moves.json index 75f8b36..6f4dab2 100644 --- a/src/assets/data/moves.json +++ b/src/assets/data/moves.json @@ -1,849 +1,1452 @@ [ { - "name": "Pound", - "ind": 1 + "name": "Pound", + "ind": 1, + "power": 40, + "type": "NORMAL", + "accuracy": 100, + "pp": 35 }, - { - "name": "Karate chop", - "ind": 2 + { + "name": "Karate Chop", + "ind": 2, + "power": 50, + "type": "NORMAL", + "accuracy": 100, + "pp": 25 }, - { - "name": "Doubleslap", - "ind": 3 + { + "name": "Doubleslap", + "ind": 3, + "power": 15, + "type": "NORMAL", + "accuracy": 85, + "pp": 10 }, - { - "name": "Comet punch", - "ind": 4 + { + "name": "Comet Punch", + "ind": 4, + "power": 18, + "type": "NORMAL", + "accuracy": 85, + "pp": 15 }, - { - "name": "Mega punch", - "ind": 5 + { + "name": "Mega Punch", + "ind": 5, + "power": 80, + "type": "NORMAL", + "accuracy": 85, + "pp": 20 }, - { - "name": "Pay day", - "ind": 6 + { + "name": "Pay Day", + "ind": 6, + "power": 40, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, - { - "name": "Fire punch", - "ind": 7 + { + "name": "Fire Punch", + "ind": 7, + "power": 75, + "type": "FIRE", + "accuracy": 100, + "pp": 15 }, - { - "name": "Ice punch", - "ind": 8 + { + "name": "Ice Punch", + "ind": 8, + "power": 75, + "type": "ICE", + "accuracy": 100, + "pp": 15 }, - { - "name": "Thunderpunch", - "ind": 9 + { + "name": "Thunderpunch", + "ind": 9, + "power": 75, + "type": "ELECTRIC", + "accuracy": 100, + "pp": 15 }, - { - "name": "Scratch", - "ind": 10 + { + "name": "Scratch", + "ind": 10, + "power": 40, + "type": "NORMAL", + "accuracy": 100, + "pp": 35 }, - { - "name": "Vicegrip", - "ind": 11 + { + "name": "Vicegrip", + "ind": 11, + "power": 55, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, - { - "name": "Guillotine", - "ind": 12 + { + "name": "Guillotine", + "ind": 12, + "power": 1, + "type": "NORMAL", + "accuracy": 30, + "pp": 5 }, - { - "name": "Razor wind", - "ind": 13 + { + "name": "Razor Wind", + "ind": 13, + "power": 80, + "type": "NORMAL", + "accuracy": 75, + "pp": 10 }, { - "name": "Swords dance", - "ind": 14 + "name": "Swords Dance", + "ind": 14, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Cut", - "ind": 15 + "name": "Cut", + "ind": 15, + "power": 50, + "type": "NORMAL", + "accuracy": 95, + "pp": 30 }, { - "name": "Gust", - "ind": 16 + "name": "Gust", + "ind": 16, + "power": 40, + "type": "NORMAL", + "accuracy": 100, + "pp": 35 }, { - "name": "Wing attack", - "ind": 17 + "name": "Wing Attack", + "ind": 17, + "power": 35, + "type": "FLYING", + "accuracy": 100, + "pp": 35 }, { - "name": "Whirlwind", - "ind": 18 + "name": "Whirlwind", + "ind": 18, + "type": "NORMAL", + "accuracy": 85, + "pp": 20 }, { - "name": "Fly", - "ind": 19 + "name": "Fly", + "ind": 19, + "power": 70, + "type": "FLYING", + "accuracy": 95, + "pp": 15 }, { - "name": "Bind", - "ind": 20 + "name": "Bind", + "ind": 20, + "power": 15, + "type": "NORMAL", + "accuracy": 75, + "pp": 20 }, { - "name": "Slam", - "ind": 21 + "name": "Slam", + "ind": 21, + "power": 80, + "type": "NORMAL", + "accuracy": 75, + "pp": 20 }, { - "name": "Vine whip", - "ind": 22 + "name": "Vine Whip", + "ind": 22, + "power": 35, + "type": "GRASS", + "accuracy": 100, + "pp": 10 }, { - "name": "Stomp", - "ind": 23 + "name": "Stomp", + "ind": 23, + "power": 65, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Double kick", - "ind": 24 + "name": "Double Kick", + "ind": 24, + "power": 30, + "type": "FIGHTING", + "accuracy": 100, + "pp": 30 }, { - "name": "Mega kick", - "ind": 25 + "name": "Mega Kick", + "ind": 25, + "power": 120, + "type": "NORMAL", + "accuracy": 75, + "pp": 5 }, { - "name": "Jump kick", - "ind": 26 + "name": "Jump Kick", + "ind": 26, + "power": 70, + "type": "FIGHTING", + "accuracy": 95, + "pp": 25 }, { - "name": "Rolling kick", - "ind": 27 + "name": "Rolling Kick", + "ind": 27, + "power": 60, + "type": "FIGHTING", + "accuracy": 85, + "pp": 15 }, { - "name": "Sand attack", - "ind": 28 + "name": "Sand Attack", + "ind": 28, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Headbutt", - "ind": 29 + "name": "Headbutt", + "ind": 29, + "power": 70, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Horn attack", - "ind": 30 + "name": "Horn Attack", + "ind": 30, + "power": 65, + "type": "NORMAL", + "accuracy": 100, + "pp": 25 }, { - "name": "Fury attack", - "ind": 31 + "name": "Fury Attack", + "ind": 31, + "power": 15, + "type": "NORMAL", + "accuracy": 85, + "pp": 20 }, { - "name": "Horn drill", - "ind": 32 + "name": "Horn Drill", + "ind": 32, + "power": 1, + "type": "NORMAL", + "accuracy": 30, + "pp": 5 }, { - "name": "Tackle", - "ind": 33 + "name": "Tackle", + "ind": 33, + "power": 35, + "type": "NORMAL", + "accuracy": 95, + "pp": 35 }, { - "name": "Body slam", - "ind": 34 + "name": "Body Slam", + "ind": 34, + "power": 85, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Wrap", - "ind": 35 + "name": "Wrap", + "ind": 35, + "power": 15, + "type": "NORMAL", + "accuracy": 85, + "pp": 20 }, { - "name": "Take down", - "ind": 36 + "name": "Take Down", + "ind": 36, + "power": 90, + "type": "NORMAL", + "accuracy": 85, + "pp": 20 }, { - "name": "Thrash", - "ind": 37 + "name": "Thrash", + "ind": 37, + "power": 90, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Double edge", - "ind": 38 + "name": "Double Edge", + "ind": 38, + "power": 100, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Tail whip", - "ind": 39 + "name": "Tail Whip", + "ind": 39, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Poison sting", - "ind": 40 + "name": "Poison Sting", + "ind": 40, + "power": 15, + "type": "POISON", + "accuracy": 100, + "pp": 35 }, { - "name": "Twineedle", - "ind": 41 + "name": "Twineedle", + "ind": 41, + "power": 25, + "type": "BUG", + "accuracy": 100, + "pp": 20 }, { - "name": "Pin missile", - "ind": 42 + "name": "Pin Missile", + "ind": 42, + "power": 14, + "type": "BUG", + "accuracy": 85, + "pp": 20 }, { - "name": "Leer", - "ind": 43 + "name": "Leer", + "ind": 43, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Bite", - "ind": 44 + "name": "Bite", + "ind": 44, + "power": 60, + "type": "NORMAL", + "accuracy": 100, + "pp": 25 }, { - "name": "Growl", - "ind": 45 + "name": "Growl", + "ind": 45, + "type": "NORMAL", + "accuracy": 100, + "pp": 40 }, { - "name": "Roar", - "ind": 46 + "name": "Roar", + "ind": 46, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Sing", - "ind": 47 + "name": "Sing", + "ind": 47, + "type": "NORMAL", + "accuracy": 55, + "pp": 15 }, { - "name": "Supersonic", - "ind": 48 + "name": "Supersonic", + "ind": 48, + "type": "NORMAL", + "accuracy": 55, + "pp": 20 }, { - "name": "Sonicboom", - "ind": 49 + "name": "Sonicboom", + "ind": 49, + "power": 1, + "type": "NORMAL", + "accuracy": 90, + "pp": 20 }, { - "name": "Disable", - "ind": 50 + "name": "Disable", + "ind": 50, + "type": "NORMAL", + "accuracy": 55, + "pp": 20 }, { - "name": "Acid", - "ind": 51 + "name": "Acid", + "ind": 51, + "power": 40, + "type": "POISON", + "accuracy": 100, + "pp": 30 }, { - "name": "Ember", - "ind": 52 + "name": "Ember", + "ind": 52, + "power": 40, + "type": "FIRE", + "accuracy": 100, + "pp": 25 }, { - "name": "Flamethrower", - "ind": 53 + "name": "Flamethrower", + "ind": 53, + "power": 95, + "type": "FIRE", + "accuracy": 100, + "pp": 15 }, { - "name": "Mist", - "ind": 54 + "name": "Mist", + "ind": 54, + "type": "ICE", + "accuracy": 100, + "pp": 30 }, { - "name": "Water gun", - "ind": 55 + "name": "Water Gun", + "ind": 55, + "power": 40, + "type": "WATER", + "accuracy": 100, + "pp": 25 }, { - "name": "Hydro pump", - "ind": 56 + "name": "Hydro Pump", + "ind": 56, + "power": 120, + "type": "WATER", + "accuracy": 80, + "pp": 5 }, { - "name": "Surf", - "ind": 57 + "name": "Surf", + "ind": 57, + "power": 95, + "type": "WATER", + "accuracy": 100, + "pp": 15 }, { - "name": "Ice beam", - "ind": 58 + "name": "Ice Beam", + "ind": 58, + "power": 95, + "type": "ICE", + "accuracy": 100, + "pp": 10 }, { - "name": "Blizzard", - "ind": 59 + "name": "Blizzard", + "ind": 59, + "power": 120, + "type": "ICE", + "accuracy": 90, + "pp": 5 }, { - "name": "Psybeam", - "ind": 60 + "name": "Psybeam", + "ind": 60, + "power": 65, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 20 }, { - "name": "Bubblebeam", - "ind": 61 + "name": "Bubblebeam", + "ind": 61, + "power": 65, + "type": "WATER", + "accuracy": 100, + "pp": 20 }, { - "name": "Aurora beam", - "ind": 62 + "name": "Aurora Beam", + "ind": 62, + "power": 65, + "type": "ICE", + "accuracy": 100, + "pp": 20 }, { - "name": "Hyper beam", - "ind": 63 + "name": "Hyper Beam", + "ind": 63, + "power": 150, + "type": "NORMAL", + "accuracy": 90, + "pp": 5 }, { - "name": "Peck", - "ind": 64 + "name": "Peck", + "ind": 64, + "power": 35, + "type": "FLYING", + "accuracy": 100, + "pp": 35 }, { - "name": "Drill peck", - "ind": 65 + "name": "Drill Peck", + "ind": 65, + "power": 80, + "type": "FLYING", + "accuracy": 100, + "pp": 20 }, { - "name": "Submission", - "ind": 66 + "name": "Submission", + "ind": 66, + "power": 80, + "type": "FIGHTING", + "accuracy": 80, + "pp": 25 }, { - "name": "Low kick", - "ind": 67 + "name": "Low Kick", + "ind": 67, + "power": 50, + "type": "FIGHTING", + "accuracy": 90, + "pp": 20 }, { - "name": "Counter", - "ind": 68 + "name": "Counter", + "ind": 68, + "power": 1, + "type": "FIGHTING", + "accuracy": 100, + "pp": 20 }, { - "name": "Seismic toss", - "ind": 69 + "name": "Seismic Toss", + "ind": 69, + "power": 1, + "type": "FIGHTING", + "accuracy": 100, + "pp": 20 }, { - "name": "Strength", - "ind": 70 + "name": "Strength", + "ind": 70, + "power": 80, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Absorb", - "ind": 71 + "name": "Absorb", + "ind": 71, + "power": 20, + "type": "GRASS", + "accuracy": 100, + "pp": 20 }, { - "name": "Mega drain", - "ind": 72 + "name": "Mega Drain", + "ind": 72, + "power": 40, + "type": "GRASS", + "accuracy": 100, + "pp": 10 }, { - "name": "Leech seed", - "ind": 73 + "name": "Leech Seed", + "ind": 73, + "type": "GRASS", + "accuracy": 90, + "pp": 10 }, { - "name": "Growth", - "ind": 74 + "name": "Growth", + "ind": 74, + "type": "NORMAL", + "accuracy": 100, + "pp": 40 }, { - "name": "Razor leaf", - "ind": 75 + "name": "Razor Leaf", + "ind": 75, + "power": 55, + "type": "GRASS", + "accuracy": 95, + "pp": 25 }, { - "name": "Solarbeam", - "ind": 76 + "name": "Solarbeam", + "ind": 76, + "power": 120, + "type": "GRASS", + "accuracy": 100, + "pp": 10 }, { - "name": "Poisonpowder", - "ind": 77 + "name": "Poisonpowder", + "ind": 77, + "type": "POISON", + "accuracy": 75, + "pp": 35 }, { - "name": "Stun spore", - "ind": 78 + "name": "Stun Spore", + "ind": 78, + "type": "GRASS", + "accuracy": 75, + "pp": 30 }, { - "name": "Sleep powder", - "ind": 79 + "name": "Sleep Powder", + "ind": 79, + "type": "GRASS", + "accuracy": 75, + "pp": 15 }, { - "name": "Petal dance", - "ind": 80 + "name": "Petal Dance", + "ind": 80, + "power": 70, + "type": "GRASS", + "accuracy": 100, + "pp": 20 }, { - "name": "String shot", - "ind": 81 + "name": "String Shot", + "ind": 81, + "type": "BUG", + "accuracy": 95, + "pp": 40 }, { - "name": "Dragon rage", - "ind": 82 + "name": "Dragon Rage", + "ind": 82, + "power": 1, + "type": "DRAGON", + "accuracy": 100, + "pp": 10 }, { - "name": "Fire spin", - "ind": 83 + "name": "Fire Spin", + "ind": 83, + "power": 15, + "type": "FIRE", + "accuracy": 70, + "pp": 15 }, { - "name": "Thundershock", - "ind": 84 + "name": "Thundershock", + "ind": 84, + "power": 40, + "type": "ELECTRIC", + "accuracy": 100, + "pp": 30 }, { - "name": "Thunderbolt", - "ind": 85 + "name": "Thunderbolt", + "ind": 85, + "power": 95, + "type": "ELECTRIC", + "accuracy": 100, + "pp": 15 }, { - "name": "Thunder wave", - "ind": 86 + "name": "Thunder Wave", + "ind": 86, + "type": "ELECTRIC", + "accuracy": 100, + "pp": 20 }, { - "name": "Thunder", - "ind": 87 + "name": "Thunder", + "ind": 87, + "power": 120, + "type": "ELECTRIC", + "accuracy": 70, + "pp": 10 }, { - "name": "Rock throw", - "ind": 88 + "name": "Rock Throw", + "ind": 88, + "power": 50, + "type": "ROCK", + "accuracy": 65, + "pp": 15 }, { - "name": "Earthquake", - "ind": 89 + "name": "Earthquake", + "ind": 89, + "power": 100, + "type": "GROUND", + "accuracy": 100, + "pp": 10 }, { - "name": "Fissure", - "ind": 90 + "name": "Fissure", + "ind": 90, + "power": 1, + "type": "GROUND", + "accuracy": 30, + "pp": 5 }, { - "name": "Dig", - "ind": 91 + "name": "Dig", + "ind": 91, + "power": 100, + "type": "GROUND", + "accuracy": 100, + "pp": 10 }, { - "name": "Toxic", - "ind": 92 + "name": "Toxic", + "ind": 92, + "type": "POISON", + "accuracy": 85, + "pp": 10 }, { - "name": "Confusion", - "ind": 93 + "name": "Confusion", + "ind": 93, + "power": 50, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 25 }, { - "name": "Psychic m", - "ind": 94 + "name": "Psychic M", + "ind": 94, + "power": 90, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 10 }, { - "name": "Hypnosis", - "ind": 95 + "name": "Hypnosis", + "ind": 95, + "type": "PSYCHIC", + "accuracy": 60, + "pp": 20 }, { - "name": "Meditate", - "ind": 96 + "name": "Meditate", + "ind": 96, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 40 }, { - "name": "Agility", - "ind": 97 + "name": "Agility", + "ind": 97, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 30 }, { - "name": "Quick attack", - "ind": 98 + "name": "Quick Attack", + "ind": 98, + "power": 40, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Rage", - "ind": 99 + "name": "Rage", + "ind": 99, + "power": 20, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Teleport", - "ind": 100 + "name": "Teleport", + "ind": 100, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 20 }, { - "name": "Night shade", - "ind": 101 + "name": "Night Shade", + "ind": 101, + "type": "GHOST", + "accuracy": 100, + "pp": 15 }, { - "name": "Mimic", - "ind": 102 + "name": "Mimic", + "ind": 102, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Screech", - "ind": 103 + "name": "Screech", + "ind": 103, + "type": "NORMAL", + "accuracy": 85, + "pp": 40 }, { - "name": "Double team", - "ind": 104 + "name": "Double Team", + "ind": 104, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Recover", - "ind": 105 + "name": "Recover", + "ind": 105, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Harden", - "ind": 106 + "name": "Harden", + "ind": 106, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Minimize", - "ind": 107 + "name": "Minimize", + "ind": 107, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Smokescreen", - "ind": 108 + "name": "Smokescreen", + "ind": 108, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Confuse ray", - "ind": 109 + "name": "Confuse Ray", + "ind": 109, + "type": "GHOST", + "accuracy": 100, + "pp": 10 }, { - "name": "Withdraw", - "ind": 110 + "name": "Withdraw", + "ind": 110, + "type": "WATER", + "accuracy": 100, + "pp": 40 }, { - "name": "Defense curl", - "ind": 111 + "name": "Defense Curl", + "ind": 111, + "type": "NORMAL", + "accuracy": 100, + "pp": 40 }, { - "name": "Barrier", - "ind": 112 + "name": "Barrier", + "ind": 112, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 30 }, { - "name": "Light screen", - "ind": 113 + "name": "Light Screen", + "ind": 113, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 30 }, { - "name": "Haze", - "ind": 114 + "name": "Haze", + "ind": 114, + "type": "ICE", + "accuracy": 100, + "pp": 30 }, { - "name": "Reflect", - "ind": 115 + "name": "Reflect", + "ind": 115, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 20 }, { - "name": "Focus energy", - "ind": 116 + "name": "Focus Energy", + "ind": 116, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Bide", - "ind": 117 + "name": "Bide", + "ind": 117, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Metronome", - "ind": 118 + "name": "Metronome", + "ind": 118, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Mirror move", - "ind": 119 + "name": "Mirror Move", + "ind": 119, + "type": "FLYING", + "accuracy": 100, + "pp": 20 }, { - "name": "Selfdestruct", - "ind": 120 + "name": "Selfdestruct", + "ind": 120, + "power": 130, + "type": "NORMAL", + "accuracy": 100, + "pp": 5 }, { - "name": "Egg bomb", - "ind": 121 + "name": "Egg Bomb", + "ind": 121, + "power": 100, + "type": "NORMAL", + "accuracy": 75, + "pp": 10 }, { - "name": "Lick", - "ind": 122 + "name": "Lick", + "ind": 122, + "power": 20, + "type": "GHOST", + "accuracy": 100, + "pp": 30 }, { - "name": "Smog", - "ind": 123 + "name": "Smog", + "ind": 123, + "power": 20, + "type": "POISON", + "accuracy": 70, + "pp": 20 }, { - "name": "Sludge", - "ind": 124 + "name": "Sludge", + "ind": 124, + "power": 65, + "type": "POISON", + "accuracy": 100, + "pp": 20 }, { - "name": "Bone club", - "ind": 125 + "name": "Bone Club", + "ind": 125, + "power": 65, + "type": "GROUND", + "accuracy": 85, + "pp": 20 }, { - "name": "Fire blast", - "ind": 126 + "name": "Fire Blast", + "ind": 126, + "power": 120, + "type": "FIRE", + "accuracy": 85, + "pp": 5 }, { - "name": "Waterfall", - "ind": 127 + "name": "Waterfall", + "ind": 127, + "power": 80, + "type": "WATER", + "accuracy": 100, + "pp": 15 }, { - "name": "Clamp", - "ind": 128 + "name": "Clamp", + "ind": 128, + "power": 35, + "type": "WATER", + "accuracy": 75, + "pp": 10 }, { - "name": "Swift", - "ind": 129 + "name": "Swift", + "ind": 129, + "power": 60, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Skull bash", - "ind": 130 + "name": "Skull Bash", + "ind": 130, + "power": 100, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Spike cannon", - "ind": 131 + "name": "Spike Cannon", + "ind": 131, + "power": 20, + "type": "NORMAL", + "accuracy": 100, + "pp": 15 }, { - "name": "Constrict", - "ind": 132 + "name": "Constrict", + "ind": 132, + "power": 10, + "type": "NORMAL", + "accuracy": 100, + "pp": 35 }, { - "name": "Amnesia", - "ind": 133 + "name": "Amnesia", + "ind": 133, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 20 }, { - "name": "Kinesis", - "ind": 134 + "name": "Kinesis", + "ind": 134, + "type": "PSYCHIC", + "accuracy": 80, + "pp": 15 }, { - "name": "Softboiled", - "ind": 135 + "name": "Softboiled", + "ind": 135, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Hi jump kick", - "ind": 136 + "name": "Hi Jump Kick", + "ind": 136, + "power": 85, + "type": "FIGHTING", + "accuracy": 90, + "pp": 20 }, { - "name": "Glare", - "ind": 137 + "name": "Glare", + "ind": 137, + "type": "NORMAL", + "accuracy": 75, + "pp": 30 }, { - "name": "Dream eater", - "ind": 138 + "name": "Dream Eater", + "ind": 138, + "power": 100, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 15 }, { - "name": "Poison gas", - "ind": 139 + "name": "Poison Gas", + "ind": 139, + "type": "POISON", + "accuracy": 55, + "pp": 40 }, { - "name": "Barrage", - "ind": 140 + "name": "Barrage", + "ind": 140, + "power": 15, + "type": "NORMAL", + "accuracy": 85, + "pp": 20 }, { - "name": "Leech life", - "ind": 141 + "name": "Leech Life", + "ind": 141, + "power": 20, + "type": "BUG", + "accuracy": 100, + "pp": 15 }, { - "name": "Lovely kiss", - "ind": 142 + "name": "Lovely Kiss", + "ind": 142, + "type": "NORMAL", + "accuracy": 75, + "pp": 10 }, { - "name": "Sky attack", - "ind": 143 + "name": "Sky Attack", + "ind": 143, + "power": 140, + "type": "FLYING", + "accuracy": 90, + "pp": 5 }, { - "name": "Transform", - "ind": 144 + "name": "Transform", + "ind": 144, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Bubble", - "ind": 145 + "name": "Bubble", + "ind": 145, + "power": 20, + "type": "WATER", + "accuracy": 100, + "pp": 30 }, { - "name": "Dizzy punch", - "ind": 146 + "name": "Dizzy Punch", + "ind": 146, + "power": 70, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Spore", - "ind": 147 + "name": "Spore", + "ind": 147, + "type": "GRASS", + "accuracy": 100, + "pp": 15 }, { - "name": "Flash", - "ind": 148 + "name": "Flash", + "ind": 148, + "type": "NORMAL", + "accuracy": 70, + "pp": 20 }, { - "name": "Psywave", - "ind": 149 + "name": "Psywave", + "ind": 149, + "power": 1, + "type": "PSYCHIC", + "accuracy": 80, + "pp": 15 }, { - "name": "Splash", - "ind": 150 + "name": "Splash", + "ind": 150, + "type": "NORMAL", + "accuracy": 100, + "pp": 40 }, { - "name": "Acid armor", - "ind": 151 + "name": "Acid Armor", + "ind": 151, + "type": "POISON", + "accuracy": 100, + "pp": 40 }, { - "name": "Crabhammer", - "ind": 152 + "name": "Crabhammer", + "ind": 152, + "power": 90, + "type": "WATER", + "accuracy": 85, + "pp": 10 }, { - "name": "Explosion", - "ind": 153 + "name": "Explosion", + "ind": 153, + "power": 170, + "type": "NORMAL", + "accuracy": 100, + "pp": 5 }, { - "name": "Fury swipes", - "ind": 154 + "name": "Fury Swipes", + "ind": 154, + "power": 18, + "type": "NORMAL", + "accuracy": 80, + "pp": 15 }, { - "name": "Bonemerang", - "ind": 155 + "name": "Bonemerang", + "ind": 155, + "power": 50, + "type": "GROUND", + "accuracy": 90, + "pp": 10 }, { - "name": "Rest", - "ind": 156 + "name": "Rest", + "ind": 156, + "type": "PSYCHIC", + "accuracy": 100, + "pp": 10 }, { - "name": "Rock slide", - "ind": 157 + "name": "Rock Slide", + "ind": 157, + "power": 75, + "type": "ROCK", + "accuracy": 90, + "pp": 10 }, { - "name": "Hyper fang", - "ind": 158 + "name": "Hyper Fang", + "ind": 158, + "power": 80, + "type": "NORMAL", + "accuracy": 90, + "pp": 15 }, { - "name": "Sharpen", - "ind": 159 + "name": "Sharpen", + "ind": 159, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Conversion", - "ind": 160 + "name": "Conversion", + "ind": 160, + "type": "NORMAL", + "accuracy": 100, + "pp": 30 }, { - "name": "Tri attack", - "ind": 161 + "name": "Tri Attack", + "ind": 161, + "power": 80, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Super fang", - "ind": 162 + "name": "Super Fang", + "ind": 162, + "power": 1, + "type": "NORMAL", + "accuracy": 90, + "pp": 10 }, { - "name": "Slash", - "ind": 163 + "name": "Slash", + "ind": 163, + "power": 70, + "type": "NORMAL", + "accuracy": 100, + "pp": 20 }, { - "name": "Substitute", - "ind": 164, - "glitch": true + "name": "Substitute", + "ind": 164, + "glitch": true, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Struggle", - "ind": 165, - "glitch": true + "name": "Struggle", + "ind": 165, + "glitch": true, + "power": 50, + "type": "NORMAL", + "accuracy": 100, + "pp": 10 }, { - "name": "Showpic anim", - "ind": 166, - "glitch": true + "name": "Showpic Anim", + "ind": 166, + "glitch": true }, { - "name": "Status affected anim", - "ind": 167, - "glitch": true + "name": "Status Affected Anim", + "ind": 167, + "glitch": true }, { - "name": "Anim a8", - "ind": 168, - "glitch": true + "name": "Anim A 8", + "ind": 168, + "glitch": true }, { - "name": "Anim a9", - "ind": 169, - "glitch": true + "name": "Anim A 9", + "ind": 169, + "glitch": true }, { - "name": "Trade ball drop anim", - "ind": 170, - "glitch": true + "name": "Trade Ball Drop Anim", + "ind": 170, + "glitch": true }, { - "name": "Trade ball shake anim", - "ind": 171, - "glitch": true + "name": "Trade Ball Shake Anim", + "ind": 171, + "glitch": true }, { - "name": "Trade ball tilt anim", - "ind": 172, - "glitch": true + "name": "Trade Ball Tilt Anim", + "ind": 172, + "glitch": true }, { - "name": "Trade ball poof anim", - "ind": 173, - "glitch": true + "name": "Trade Ball Poof Anim", + "ind": 173, + "glitch": true }, { - "name": "Xstatitem anim", - "ind": 174, - "glitch": true + "name": "Xstatitem Anim", + "ind": 174, + "glitch": true }, { - "name": "Anim af", - "ind": 175, - "glitch": true + "name": "Anim Af", + "ind": 175, + "glitch": true }, { - "name": "Anim b0", - "ind": 176, - "glitch": true + "name": "Anim B 0", + "ind": 176, + "glitch": true }, { - "name": "Anim b1", - "ind": 177, - "glitch": true + "name": "Anim B 1", + "ind": 177, + "glitch": true }, { - "name": "Anim b2", - "ind": 178, - "glitch": true + "name": "Anim B 2", + "ind": 178, + "glitch": true }, { - "name": "Anim b3", - "ind": 179, - "glitch": true + "name": "Anim B 3", + "ind": 179, + "glitch": true }, { - "name": "Anim b4", - "ind": 180, - "glitch": true + "name": "Anim B 4", + "ind": 180, + "glitch": true }, { - "name": "Anim b5", - "ind": 181, - "glitch": true + "name": "Anim B 5", + "ind": 181, + "glitch": true }, { - "name": "Anim b6", - "ind": 182, - "glitch": true + "name": "Anim B 6", + "ind": 182, + "glitch": true }, { - "name": "Anim b7", - "ind": 183, - "glitch": true + "name": "Anim B 7", + "ind": 183, + "glitch": true }, { - "name": "Anim b8", - "ind": 184, - "glitch": true + "name": "Anim B 8", + "ind": 184, + "glitch": true }, { - "name": "Anim b9", - "ind": 185, - "glitch": true + "name": "Anim B 9", + "ind": 185, + "glitch": true }, { - "name": "Burn psn anim", - "ind": 186, - "glitch": true + "name": "Burn Psn Anim", + "ind": 186, + "glitch": true }, { - "name": "Anim bb", - "ind": 187, - "glitch": true + "name": "Anim Bb", + "ind": 187, + "glitch": true }, { - "name": "Anim bc", - "ind": 188, - "glitch": true + "name": "Anim Bc", + "ind": 188, + "glitch": true }, { - "name": "Slp anim", - "ind": 189, - "glitch": true + "name": "Slp Anim", + "ind": 189, + "glitch": true }, { - "name": "Anim be", - "ind": 190, - "glitch": true + "name": "Anim Be", + "ind": 190, + "glitch": true }, { - "name": "Conf anim", - "ind": 191, - "glitch": true + "name": "Conf Anim", + "ind": 191, + "glitch": true }, { - "name": "Anim c0", - "ind": 192, - "glitch": true + "name": "Anim C 0", + "ind": 192, + "glitch": true }, { - "name": "Toss anim", - "ind": 193, - "glitch": true + "name": "Toss Anim", + "ind": 193, + "glitch": true }, { - "name": "Shake anim", - "ind": 194, - "glitch": true + "name": "Shake Anim", + "ind": 194, + "glitch": true }, { - "name": "Poof anim", - "ind": 195, - "glitch": true + "name": "Poof Anim", + "ind": 195, + "glitch": true }, { - "name": "Blockball anim", - "ind": 196, - "glitch": true + "name": "Blockball Anim", + "ind": 196, + "glitch": true }, { - "name": "Greattoss anim", - "ind": 197, - "glitch": true + "name": "Greattoss Anim", + "ind": 197, + "glitch": true }, { - "name": "Ultratoss anim", - "ind": 198, - "glitch": true + "name": "Ultratoss Anim", + "ind": 198, + "glitch": true }, { - "name": "Anim c7", - "ind": 199, - "glitch": true + "name": "Anim C 7", + "ind": 199, + "glitch": true }, { - "name": "Hidepic anim", - "ind": 200, - "glitch": true + "name": "Hidepic Anim", + "ind": 200, + "glitch": true }, { - "name": "Rock anim", - "ind": 201, - "glitch": true + "name": "Rock Anim", + "ind": 201, + "glitch": true }, { - "name": "Bait anim", - "ind": 202, - "glitch": true + "name": "Bait Anim", + "ind": 202, + "glitch": true } -] \ No newline at end of file + ] \ No newline at end of file